diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/NoScanItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/NoScanItemVO.java index f532103c..f49a727c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/NoScanItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/NoScanItemVO.java @@ -49,6 +49,11 @@ public class NoScanItemVO { */ private String batchNo; + /** + * 储位编号 + */ + private String binNo; + /** * 是否需要扫码 */ diff --git a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java index 3690a88e..1bd94e5b 100644 --- a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java +++ b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java @@ -13,9 +13,9 @@ import com.nflg.wms.common.pojo.qo.SRMOrderReceiveQO; import com.nflg.wms.common.pojo.qo.SRMQualityInspectionResult; import com.nflg.wms.repository.entity.*; import com.nflg.wms.repository.service.*; -import com.nflg.wms.srm.receive.pojo.dto.ZWM3A17DTO; -import com.nflg.wms.srm.receive.pojo.dto.ZWM3A17Item1DTO; import com.nflg.wms.srm.receive.pojo.dto.ZWM3A17Item2DTO; +import com.nflg.wms.srm.receive.pojo.dto.ZWM3A18DTO; +import com.nflg.wms.srm.receive.pojo.dto.ZWM3A18Item1DTO; import com.nflg.wms.srm.receive.service.SapService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; @@ -219,40 +219,48 @@ public class SRMController extends BaseController { List inventories = new ArrayList<>(); inventories.add(inventoryDTO); - // 构建SAP入库数据 - ZWM3A17DTO zwm3A17DTO = new ZWM3A17DTO() + // 构建SAP质检入库数据 + ZWM3A18DTO zwm3A18DTO = new ZWM3A18DTO() .setEbeln(data.getPoNum()) - .setUsnam("SRM"); - zwm3A17DTO.getItem1().add(new ZWM3A17Item1DTO() - .setEBELP(data.getPoLineNumber()) - .setMATNR(data.getItemCode()) - .setERFMG(data.getQualifiedQty()) - .setMEINS(data.getUnit()) - .setCHARG(Objects.isNull(data.getMaterialBatch()) ? "" : data.getMaterialBatch()) - .setWERKS(data.getFactory()) - .setLGORT(data.getReceivedWarehouse()) - .setKZKRI("")); + .setUsnam("SRM") + .setMblnr(receiveItem.getMaterialDoc()) + .setMjahr(receiveItem.getMaterialDocYear()); + List item1List = new ArrayList<>(); + item1List.add(new ZWM3A18Item1DTO() + .setErfmg(data.getQualifiedQty().add(data.getUnqualifiedQty())) + .setErfmg1(data.getQualifiedQty()) + .setErfmg2(data.getUnqualifiedQty()) + .setEbelp(data.getPoLineNumber()) + .setMatnr(data.getItemCode()) + .setMeins(data.getUnit()) + .setCharg(Objects.isNull(data.getMaterialBatch()) ? "" : data.getMaterialBatch()) + .setLgort(data.getReceivedWarehouse()) + .setSgtxt("") + .setWerks(data.getFactory())); + zwm3A18DTO.setItem1(item1List); + List item2List = new ArrayList<>(); if (StrUtil.isNotBlank(data.getSerialNum())) { - zwm3A17DTO.getItem2().add(new ZWM3A17Item2DTO() + item2List.add(new ZWM3A17Item2DTO() .setEBELP(data.getPoLineNumber()) - .setFLAG("") + .setFLAG("X") .setSERNR(data.getSerialNum())); } + zwm3A18DTO.setItem2(item2List); // 执行库存入库 log.info("开始本地库存入库, 数量: {}", data.getQualifiedQty()); inventoryService.in(inventories); // 推送到SAP - log.info("开始推送SAP入库, PO: {}, 物料: {}", data.getPoNum(), data.getItemCode()); - Pair, Pair> returnDto = sapService.zwm3a17(zwm3A17DTO); - log.info("SAP入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey().getKey(), returnDto.getValue().getValue()); + log.info("开始推送SAP质检入库, PO: {}, 物料: {}", data.getPoNum(), data.getItemCode()); + Pair returnDto = sapService.zwm3a18(zwm3A18DTO); + log.info("SAP质检入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey(), returnDto.getValue()); // 更新收货明细的物料凭证和入库数量 qcReceiveItemService.lambdaUpdate() .eq(WmsQcReceiveItem::getId, receiveItem.getId()) .set(WmsQcReceiveItem::getInQty, data.getQualifiedQty()) - .set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey().getKey()) - .set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue().getValue()) + .set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey()) + .set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue()) .update(); // 检查并更新收货单完成状态