|
@@ -31,6 +31,7 @@ import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
|
|
import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
|
|
import com.ruoyi.ams.order.mapper.WmsDocOrderHeaderMapper;
|
|
import com.ruoyi.ams.order.service.IActAllocationDetailsService;
|
|
import com.ruoyi.ams.order.service.IActAllocationDetailsService;
|
|
import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
|
|
import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
|
|
|
|
+import com.ruoyi.ams.order.service.UpdateOrderStockingProcess;
|
|
import com.ruoyi.ams.order.vo.CheckOutVO;
|
|
import com.ruoyi.ams.order.vo.CheckOutVO;
|
|
import com.ruoyi.ams.order.vo.PickingListVO;
|
|
import com.ruoyi.ams.order.vo.PickingListVO;
|
|
import com.ruoyi.ams.order.vo.StockOrderVO;
|
|
import com.ruoyi.ams.order.vo.StockOrderVO;
|
|
@@ -108,6 +109,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
|
|
private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
|
|
@Autowired
|
|
@Autowired
|
|
private IBaseSkuService baseSkuService;
|
|
private IBaseSkuService baseSkuService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private UpdateOrderStockingProcess updateOrderStockingProcess;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 查询出库单头
|
|
* 查询出库单头
|
|
@@ -827,7 +830,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
}
|
|
}
|
|
for (String orderNo : orderNoList) {
|
|
for (String orderNo : orderNoList) {
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(orderNo);
|
|
- // 胖蛋是备货单
|
|
|
|
|
|
+ // 判断是备货单
|
|
boolean isBh = wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue());
|
|
boolean isBh = wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue());
|
|
InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
|
|
InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
|
|
if (isBh) {
|
|
if (isBh) {
|
|
@@ -1006,7 +1009,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
if (type == 3) {
|
|
if (type == 3) {
|
|
int num = endLotattVO.getQty().intValue() - endLotattVO.getQtyallocated().intValue();
|
|
int num = endLotattVO.getQty().intValue() - endLotattVO.getQtyallocated().intValue();
|
|
if (toQty.intValue() != num) {
|
|
if (toQty.intValue() != num) {
|
|
- return AjaxResult.error("备货库存中存在未分配数量,必须先操未分配数:" + num);
|
|
|
|
|
|
+ return AjaxResult.error("备货库存中需要操作的数量应该为:" + num);
|
|
}
|
|
}
|
|
endLotattVO.setLotatt14("");
|
|
endLotattVO.setLotatt14("");
|
|
}
|
|
}
|
|
@@ -1116,6 +1119,11 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private int judgmentOfGroupPlateType(InvLotLocIdLotattVO locIdLotattVO) {
|
|
private int judgmentOfGroupPlateType(InvLotLocIdLotattVO locIdLotattVO) {
|
|
|
|
+ // 为空说明是备货出库,但是已经更新备货了
|
|
|
|
+ if (StringUtils.isEmpty(locIdLotattVO.getLotatt15())
|
|
|
|
+ &&StringUtils.isNotEmpty(locIdLotattVO.getLotatt14())) {
|
|
|
|
+ return 3;
|
|
|
|
+ }
|
|
String lotatt15 = locIdLotattVO.getLotatt15();
|
|
String lotatt15 = locIdLotattVO.getLotatt15();
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(lotatt15);
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(lotatt15);
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())
|
|
@@ -1123,14 +1131,14 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.LH.getValue())
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.LH.getValue())
|
|
- && StringUtils.isNotEmpty(locIdLotattVO.getLotatt14())) {
|
|
|
|
- return 2;
|
|
|
|
- }
|
|
|
|
- if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())
|
|
|
|
&& StringUtils.isNotEmpty(locIdLotattVO.getLotatt14())
|
|
&& StringUtils.isNotEmpty(locIdLotattVO.getLotatt14())
|
|
- && new BigDecimal(locIdLotattVO.getQtyallocated()).compareTo(new BigDecimal(locIdLotattVO.getQty())) == 0) {
|
|
|
|
|
|
+ && new BigDecimal(locIdLotattVO.getQtyallocated()).compareTo(new BigDecimal(locIdLotattVO.getQty())) != 0) {
|
|
return 3;
|
|
return 3;
|
|
}
|
|
}
|
|
|
|
+ if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.LH.getValue())
|
|
|
|
+ && StringUtils.isNotEmpty(locIdLotattVO.getLotatt14())) {
|
|
|
|
+ return 2;
|
|
|
|
+ }
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.ZC.getValue())
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.ZC.getValue())
|
|
&& new BigDecimal(locIdLotattVO.getQtyallocated()).compareTo(BigDecimal.ZERO) == 0) {
|
|
&& new BigDecimal(locIdLotattVO.getQtyallocated()).compareTo(BigDecimal.ZERO) == 0) {
|
|
return 4;
|
|
return 4;
|
|
@@ -1153,6 +1161,9 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private AjaxResult verifyThatDisksCanBeGrouped(InvLotLocIdLotattVO locIdLotattVO) {
|
|
private AjaxResult verifyThatDisksCanBeGrouped(InvLotLocIdLotattVO locIdLotattVO) {
|
|
|
|
+ if (StringUtils.isEmpty(locIdLotattVO.getLotatt15())) {
|
|
|
|
+ return AjaxResult.success();
|
|
|
|
+ }
|
|
String lotatt15 = locIdLotattVO.getLotatt15();
|
|
String lotatt15 = locIdLotattVO.getLotatt15();
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(lotatt15);
|
|
WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByOrderNo(lotatt15);
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())
|
|
if (wmsDocOrderHeader.getOrderType().equals(Constant.ORDER_TYP.BH.getValue())
|
|
@@ -1615,67 +1626,73 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
|
|
return codeSkuRelationshipSoVO;
|
|
return codeSkuRelationshipSoVO;
|
|
}
|
|
}
|
|
|
|
|
|
- @Transactional
|
|
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
@Override
|
|
@Override
|
|
public AjaxResult addOrUpdateErp(List<ErpOrderList> erpOrderList) {
|
|
public AjaxResult addOrUpdateErp(List<ErpOrderList> erpOrderList) {
|
|
- String orderNo = "";
|
|
|
|
-// String erpName = erpOrderList.get(0).getOrderName();
|
|
|
|
-// WmsDocOrderHeader header = this.selectWmsDocOrderHeaderByErpNo(erpName);
|
|
|
|
-// if (header != null && StringUtils.isNotEmpty(header.getOrderNo())) {
|
|
|
|
-// orderNo = header.getOrderNo();
|
|
|
|
-// } else {
|
|
|
|
- orderNo = idSequenceUtils.generateId("ORDERNO");
|
|
|
|
-// }
|
|
|
|
- String erpOrderNo = "";
|
|
|
|
- String erpOrderName = "";
|
|
|
|
- int index = 1;
|
|
|
|
- for (ErpOrderList erpOrder : erpOrderList) {
|
|
|
|
- erpOrderName = erpOrder.getOrderName();
|
|
|
|
- erpOrderNo = erpOrder.getOrderNo() + "";
|
|
|
|
- WmsDocOrderDetails details = new WmsDocOrderDetails();
|
|
|
|
- details.setOrderNo(orderNo);
|
|
|
|
- details.setOrderLineNo(BigDecimal.valueOf(index));
|
|
|
|
- details.setLineStatus("00");
|
|
|
|
- details.setQtyOrdered(erpOrder.getQty());
|
|
|
|
- details.setQtyOrderedEach(erpOrder.getQty());
|
|
|
|
- details.setQtyAllocatedEach(BigDecimal.ZERO);
|
|
|
|
- details.setQtyAllocated(BigDecimal.ZERO);
|
|
|
|
- details.setQtySoftAllocated(BigDecimal.ZERO);
|
|
|
|
- details.setQtySoftallocatedEach(BigDecimal.ZERO);
|
|
|
|
- details.setCustomerId(Constant.CUSTOMER_ID);
|
|
|
|
- details.setQtyShippedEach(BigDecimal.ZERO);
|
|
|
|
- details.setQtyShipped(BigDecimal.ZERO);
|
|
|
|
- details.setQtyPicked(BigDecimal.ZERO);
|
|
|
|
- details.setQtyPickedEach(BigDecimal.ZERO);
|
|
|
|
- details.setQtyPacked(BigDecimal.ZERO);
|
|
|
|
- details.setQtyPackedEach(BigDecimal.ZERO);
|
|
|
|
- details.setSku(erpOrder.getIma01()); //品号
|
|
|
|
- details.setdEdi04(erpOrder.getVaild()); //单据状态
|
|
|
|
- details.setdEdi05(erpOrder.getStockId()); //仓库编号
|
|
|
|
- details.setdEdi06(erpOrder.getOrderState()); //是否扫描完成
|
|
|
|
- details.setdEdi07(erpOrderNo); //项次
|
|
|
|
- details.setdEdi08(erpOrder.getOrderType()); //erp单据类型
|
|
|
|
- details.setdEdi09(erpOrder.getInout()); //erp出入库类型
|
|
|
|
- details.setLineStatus("00");
|
|
|
|
- details.setCreateTime(new Date());
|
|
|
|
- details.setCreateBy(erpOrder.getCreateUser());
|
|
|
|
- wmsDocOrderDetailsMapper.insertWmsDocOrderDetails(details);
|
|
|
|
- index++;
|
|
|
|
- }
|
|
|
|
- WmsDocOrderHeader orderHeader = new WmsDocOrderHeader();
|
|
|
|
- orderHeader.setOrderNo(orderNo); //erp单号
|
|
|
|
- if (erpOrderList.get(0).getOrderType().equals("axmt620")) {
|
|
|
|
- orderHeader.setOrderType(Constant.ORDER_TYP.BH.getValue());
|
|
|
|
- } else {
|
|
|
|
- orderHeader.setOrderType(Constant.ORDER_TYP.ZC.getValue());
|
|
|
|
- }
|
|
|
|
- orderHeader.setOrderStatus("00");
|
|
|
|
- orderHeader.setCustomerId(Constant.CUSTOMER_ID);
|
|
|
|
- orderHeader.setEdiSendFlag("N");
|
|
|
|
- orderHeader.setSoReference1(erpOrderName);
|
|
|
|
- orderHeader.setCreateTime(new Date());
|
|
|
|
- orderHeader.setCreateBy("ERP");
|
|
|
|
- wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(orderHeader);
|
|
|
|
|
|
+ try {
|
|
|
|
+ String orderNo = "";
|
|
|
|
+ String erpName = erpOrderList.get(0).getOrderName();
|
|
|
|
+ WmsDocOrderHeader header = this.selectWmsDocOrderHeaderByErpNo(erpName);
|
|
|
|
+ if (header != null && StringUtils.isNotEmpty(header.getOrderNo())) {
|
|
|
|
+ // 更新备货业务
|
|
|
|
+ return updateOrderStockingProcess.startExecution(erpOrderList);
|
|
|
|
+ } else {
|
|
|
|
+ orderNo = idSequenceUtils.generateId("ORDERNO");
|
|
|
|
+ }
|
|
|
|
+ String erpOrderNo = "";
|
|
|
|
+ String erpOrderName = "";
|
|
|
|
+ int index = 1;
|
|
|
|
+ for (ErpOrderList erpOrder : erpOrderList) {
|
|
|
|
+ erpOrderName = erpOrder.getOrderName();
|
|
|
|
+ erpOrderNo = erpOrder.getOrderNo() + "";
|
|
|
|
+ WmsDocOrderDetails details = new WmsDocOrderDetails();
|
|
|
|
+ details.setOrderNo(orderNo);
|
|
|
|
+ details.setOrderLineNo(BigDecimal.valueOf(index));
|
|
|
|
+ details.setLineStatus("00");
|
|
|
|
+ details.setQtyOrdered(erpOrder.getQty());
|
|
|
|
+ details.setQtyOrderedEach(erpOrder.getQty());
|
|
|
|
+ details.setQtyAllocatedEach(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyAllocated(BigDecimal.ZERO);
|
|
|
|
+ details.setQtySoftAllocated(BigDecimal.ZERO);
|
|
|
|
+ details.setQtySoftallocatedEach(BigDecimal.ZERO);
|
|
|
|
+ details.setCustomerId(Constant.CUSTOMER_ID);
|
|
|
|
+ details.setQtyShippedEach(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyShipped(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyPicked(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyPickedEach(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyPacked(BigDecimal.ZERO);
|
|
|
|
+ details.setQtyPackedEach(BigDecimal.ZERO);
|
|
|
|
+ details.setSku(erpOrder.getIma01()); //品号
|
|
|
|
+ details.setdEdi04(erpOrder.getVaild()); //单据状态
|
|
|
|
+ details.setdEdi05(erpOrder.getStockId()); //仓库编号
|
|
|
|
+ details.setdEdi06(erpOrder.getOrderState()); //是否扫描完成
|
|
|
|
+ details.setdEdi07(erpOrderNo); //项次
|
|
|
|
+ details.setdEdi08(erpOrder.getOrderType()); //erp单据类型
|
|
|
|
+ details.setdEdi09(erpOrder.getInout()); //erp出入库类型
|
|
|
|
+ details.setLineStatus("00");
|
|
|
|
+ details.setCreateTime(new Date());
|
|
|
|
+ details.setCreateBy(erpOrder.getCreateUser());
|
|
|
|
+ wmsDocOrderDetailsMapper.insertWmsDocOrderDetails(details);
|
|
|
|
+ index++;
|
|
|
|
+ }
|
|
|
|
+ WmsDocOrderHeader orderHeader = new WmsDocOrderHeader();
|
|
|
|
+ orderHeader.setOrderNo(orderNo); //erp单号
|
|
|
|
+ if (erpOrderList.get(0).getOrderType().equals("axmt620")) {
|
|
|
|
+ orderHeader.setOrderType(Constant.ORDER_TYP.BH.getValue());
|
|
|
|
+ } else {
|
|
|
|
+ orderHeader.setOrderType(Constant.ORDER_TYP.ZC.getValue());
|
|
|
|
+ }
|
|
|
|
+ orderHeader.setOrderStatus("00");
|
|
|
|
+ orderHeader.setCustomerId(Constant.CUSTOMER_ID);
|
|
|
|
+ orderHeader.setEdiSendFlag("N");
|
|
|
|
+ orderHeader.setSoReference1(erpOrderName);
|
|
|
|
+ orderHeader.setCreateTime(new Date());
|
|
|
|
+ orderHeader.setCreateBy("ERP");
|
|
|
|
+ wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(orderHeader);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("ERP同步表插入出库单失败!", e);
|
|
|
|
+ return AjaxResult.error("ERP同步表插入出库单失败!" + e);
|
|
|
|
+ }
|
|
return AjaxResult.success("");
|
|
return AjaxResult.success("");
|
|
}
|
|
}
|
|
|
|
|