|
@@ -16,6 +16,7 @@ import com.ruoyi.ams.order.service.UpdateOrderStockingProcess;
|
|
|
import com.ruoyi.base.constant.Constant;
|
|
|
import com.ruoyi.base.service.IBaseLocationInfoService;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -116,7 +117,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
}
|
|
|
}
|
|
|
// 是否作废
|
|
|
- if (erpOrderList.get(0).getVaild().equalsIgnoreCase("X")) {
|
|
|
+ if (erpOrderList.get(0).getValid().equalsIgnoreCase("X")) {
|
|
|
return documentVoided(orderNo);
|
|
|
}
|
|
|
// 转换ERP单据为WMS明细
|
|
@@ -129,9 +130,46 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
updateQuantityAndStatusOfDocuments(markerListMap);
|
|
|
// 更新库存
|
|
|
updateInventory(markerListMap);
|
|
|
+ // 更新备货之后,检查哪些托盘上有非备货的库存,并且更新到备货单备注中
|
|
|
+ Set<String> palletsEndNotInStocks = checkThePalletIsNotInStock(orderNo);
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ for (String palletsEndNotInStock : palletsEndNotInStocks) {
|
|
|
+ builder.append(palletsEndNotInStock).append(",");
|
|
|
+ }
|
|
|
+ recordRemark(orderNo, builder.toString() + "需要呼出重组!");
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新备货之后,检查哪些托盘上有非备货的库存
|
|
|
+ *
|
|
|
+ * @param orderNo
|
|
|
+ * @return 托盘号
|
|
|
+ */
|
|
|
+ private Set<String> checkThePalletIsNotInStock(String orderNo) {
|
|
|
+ Set<String> palletsEnd = new HashSet<>();
|
|
|
+ Set<String> pallets = new HashSet<>();
|
|
|
+ InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
|
|
|
+ invLocIdSearchFrom.setLotatt14(orderNo);
|
|
|
+ List<InvLotLocIdLotattVO> invLotLocIdLotattVOList = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
|
|
|
+ for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattVOList) {
|
|
|
+ pallets.add(invLotLocIdLotattVO.getLotatt07());
|
|
|
+ }
|
|
|
+ for (String pallet : pallets) {
|
|
|
+ InvLocIdSearchFrom invLocIdSearch = new InvLocIdSearchFrom();
|
|
|
+ invLocIdSearchFrom.setLotatt07(pallet);
|
|
|
+ List<InvLotLocIdLotattVO> invLotLocIdLotattList = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearch);
|
|
|
+ for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattList) {
|
|
|
+ if (invLotLocIdLotattVO.getQty().compareTo(invLotLocIdLotattVO.getQtyallocated()) != 0
|
|
|
+ || StringUtils.isEmpty(invLotLocIdLotattVO.getLotatt14())) {
|
|
|
+ palletsEnd.add(pallet);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return palletsEnd;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 变更出库明细和单头
|
|
|
*
|
|
@@ -356,7 +394,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
headerUpdate.setOrderStatus(orderStatus);
|
|
|
headerUpdate.setRemark("已发生更新备货流程!");
|
|
|
wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
|
|
|
- recordChangeData(orderNo, "增加:" + JSON.toJSONString(value));
|
|
|
+ recordChangeData(orderNo, "减少:" + JSON.toJSONString(value));
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
@@ -391,14 +429,14 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom();
|
|
|
invLocIdSearchFrom.setLotatt14(orderNo);
|
|
|
invLocIdSearchFrom.setSku(details.getSku());
|
|
|
- invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_INV.getValue().toString());
|
|
|
- // 查出仓储区
|
|
|
- List<InvLotLocIdLotattVO> idLotattVOListInv = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
|
|
|
invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue().toString());
|
|
|
// 查出虚拟区
|
|
|
List<InvLotLocIdLotattVO> idLotattVOListVir = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
|
|
|
- if (idLotattVOListVir.size() > 0) {
|
|
|
- idLotattVOListInv.addAll(idLotattVOListVir);
|
|
|
+ invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.ZONE_INV.getValue().toString());
|
|
|
+ // 查出仓储区
|
|
|
+ List<InvLotLocIdLotattVO> idLotattVOListInv = invLotLocIdService.selectInvLocIdLotattList(invLocIdSearchFrom);
|
|
|
+ if (idLotattVOListInv.size() > 0) {
|
|
|
+ idLotattVOListVir.addAll(idLotattVOListInv);
|
|
|
}
|
|
|
for (InvLotLocIdLotattVO invLotLocId : idLotattVOListInv) {
|
|
|
if (qtyOrdered.compareTo(BigDecimal.ZERO.doubleValue()) == 0) {
|
|
@@ -421,7 +459,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
lotLocIdUpdate.setQtyallocated(new BigDecimal(qtyallocated).subtract(new BigDecimal(qtyOrdered)));
|
|
|
qtyOrdered = BigDecimal.ZERO.doubleValue();
|
|
|
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
lotLocIdUpdate.setQtyallocated(BigDecimal.ZERO);
|
|
|
// 修改lotatt14为空
|
|
|
invLotAttService.updateInvLotAttLotatt14IsNull(invLotLocId.getLotnum());
|
|
@@ -583,7 +621,7 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
details.setQtyPacked(BigDecimal.ZERO);
|
|
|
details.setQtyPackedEach(BigDecimal.ZERO);
|
|
|
details.setSku(erpOrder.getIma01()); //品号
|
|
|
- details.setdEdi04(erpOrder.getVaild());//单据状态
|
|
|
+ details.setdEdi04(erpOrder.getValid());//单据状态
|
|
|
details.setdEdi05(erpOrder.getStockId());//仓库编号
|
|
|
details.setdEdi06(erpOrder.getOrderState());//是否扫描完成
|
|
|
details.setdEdi07(erpOrderNo); //项次
|
|
@@ -596,6 +634,23 @@ public class UpdateOrderStockingProcessImpl implements UpdateOrderStockingProces
|
|
|
return detailsArrayList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 记录单头备注
|
|
|
+ *
|
|
|
+ * @param orderNo
|
|
|
+ */
|
|
|
+ public void recordRemark(String orderNo, String data) {
|
|
|
+ String record = "";
|
|
|
+ WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectDocOrderHeaderByOrderNo(orderNo);
|
|
|
+ if (wmsDocOrderHeader.getRemark() != null) {
|
|
|
+ record = wmsDocOrderHeader.getRemark();
|
|
|
+ }
|
|
|
+ WmsDocOrderHeader headerUpdate = new WmsDocOrderHeader();
|
|
|
+ headerUpdate.setOrderNo(orderNo);
|
|
|
+ headerUpdate.setRemark(record + "--" + data);
|
|
|
+ wmsDocOrderHeaderService.updateWmsDocOrderHeader(headerUpdate);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 记录变更数据到单头
|
|
|
*
|