From 5739b9e9d5346a7f6d89043c038226e9e5707c7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 12 Jun 2026 16:00:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms):=20=E5=AE=9E=E7=8E=B0SAP=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E5=85=A5=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将ZWM3A17DTO替换为ZWM3A18DTO用于质检入库数据传输 - 更新导入包路径从ZWM3A17相关类到ZWM3A18相关类 - 修改SAP接口调用从zwm3a17方法改为zwm3a18方法 - 重构质检入库数据构建逻辑,新增物料凭证号和年份字段 - 添加质检数量、合格数量、不合格数量的处理逻辑 - 更新日志信息从"入库"改为"质检入库" - 优化数据传输对象的字段映射和设置方式 - 调整物料凭证回写逻辑以适配新的接口返回格式 --- .../srm/receive/controller/QmsController.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java index d722dd79..be18d590 100644 --- a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java +++ b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/QmsController.java @@ -11,8 +11,8 @@ import com.nflg.wms.common.pojo.qo.WmsIncomingInspectionTaskCallbackQO; import com.nflg.wms.common.util.VUtil; 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.ZWM3A18DTO; +import com.nflg.wms.srm.receive.pojo.dto.ZWM3A18Item1DTO; import com.nflg.wms.common.pojo.qo.PdiInspectionTaskCallbackQO; import com.nflg.wms.srm.receive.service.SapService; import com.nflg.wms.srm.receive.util.NoUtil; @@ -147,40 +147,40 @@ public class QmsController extends BaseController { List inventories = new ArrayList<>(); inventories.add(inventoryDTO); - // 构建SAP入库数据 - ZWM3A17DTO zwm3A17DTO = new ZWM3A17DTO() + // 构建SAP质检入库数据 + ZWM3A18DTO zwm3A18DTO = new ZWM3A18DTO() .setEbeln(qo.getPurchaseOrderNo()) - .setUsnam("SRM"); - zwm3A17DTO.getItem1().add(new ZWM3A17Item1DTO() - .setEBELP(receiveItem.getPoLineNumber()) - .setMATNR(receiveItem.getItemCode()) - .setERFMG(BigDecimal.valueOf(qo.getQualifiedQty())) - .setMEINS(receiveItem.getUomCode()) - .setCHARG(inventoryDTO.getBatchNo()) - .setWERKS(qo.getFactory()) - .setLGORT(receiveItem.getReceivedWarehouse()) - .setKZKRI("")); -// if (StrUtil.isNotBlank(data.getSerialNum())) { -// zwm3A17DTO.getItem2().add(new ZWM3A17Item2DTO() -// .setEBELP(data.getPoLineNumber()) -// .setFLAG("") -// .setSERNR(data.getSerialNum())); -// } + .setUsnam("SRM") + .setMblnr(receiveItem.getMaterialDoc()) + .setMjahr(receiveItem.getMaterialDocYear()); + List item1List = new ArrayList<>(); + item1List.add(new ZWM3A18Item1DTO() + .setErfmg(BigDecimal.valueOf(qo.getInspectionQty())) + .setErfmg1(BigDecimal.valueOf(qo.getQualifiedQty())) + .setErfmg2(BigDecimal.valueOf(qo.getUnqualifiedQty())) + .setEbelp(receiveItem.getPoLineNumber()) + .setMatnr(receiveItem.getItemCode()) + .setMeins(receiveItem.getUomCode()) + .setCharg(inventoryDTO.getBatchNo()) + .setLgort(receiveItem.getReceivedWarehouse()) + .setSgtxt("") + .setWerks(qo.getFactory())); + zwm3A18DTO.setItem1(item1List); // 执行库存入库 log.info("开始本地库存入库, 数量: {}", qo.getQualifiedQty()); inventoryService.in(inventories); // 推送到SAP - log.info("开始推送SAP入库, PO: {}, 物料: {}", qo.getPurchaseOrderNo(), qo.getMaterialNo()); - Pair, Pair> returnDto = sapService.zwm3a17(zwm3A17DTO); - log.info("SAP入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey().getKey(), returnDto.getValue().getValue()); + log.info("开始推送SAP质检入库, PO: {}, 物料: {}", qo.getPurchaseOrderNo(), qo.getMaterialNo()); + Pair returnDto = sapService.zwm3a18(zwm3A18DTO); + log.info("SAP质检入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey(), returnDto.getValue()); // 更新收货明细的物料凭证和入库数量 qcReceiveItemService.lambdaUpdate() .eq(WmsQcReceiveItem::getId, receiveItem.getId()) .set(WmsQcReceiveItem::getInQty, qo.getQualifiedQty()) - .set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey().getKey()) - .set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue().getValue()) + .set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey()) + .set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue()) .update(); // 检查并更新收货单完成状态