From a27f1b573fc5cf9a3b78e2eacb56e44310f83456 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 27 八月 2025 12:17:01 +0800
Subject: [PATCH] art: 添加入库逻辑,SAP订单同步参数动态配置

---
 src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java |   66 +++++++++++++++++++++++++++++---
 1 files changed, 59 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java b/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
index ff68abc..8e69a64 100644
--- a/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
+++ b/src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -5,7 +5,12 @@
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.aspect.annotation.ApiLog;
 import org.jeecg.common.constant.ApiLogCategoryEnum;
+import org.jeecg.modules.base.entity.LineSideWarehouse;
+import org.jeecg.modules.base.service.ILineSideWarehouseService;
+import org.jeecg.modules.lsw.entity.LswMaterialInbound;
+import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
 import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
+import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus;
 import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
 import org.jeecg.modules.wms.dto.WSResponse;
 import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
@@ -21,6 +26,7 @@
 import javax.jws.WebService;
 import javax.xml.ws.RequestWrapper;
 import javax.xml.ws.ResponseWrapper;
+import java.math.BigDecimal;
 
 
 @Slf4j
@@ -30,6 +36,10 @@
 
     @Autowired
     private IMesMaterialTransferRequestService materialTransferRequestService;
+    @Autowired
+    private ILineSideWarehouseService lineSideWarehouseService;
+    @Autowired
+    private ILswMaterialInboundService materialInboundService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -45,16 +55,58 @@
             response.setErrorDesc("浼犲叆鐨勫弬鏁颁负绌猴紒");
             return response;
         }
-        for(WMSWebServiceSendItem item : request.getWmsWebServiceSendItemList()) {
-            if(StringUtils.isNotBlank(item.getReservationOrder())) {
+        String errorCode = "N";
+        int errorCount = 0;
+        int successCount = 0;
+        StringBuilder errorMsg = new StringBuilder();
+        for (WMSWebServiceSendItem item : request.getWmsWebServiceSendItemList()) {
+            if (StringUtils.isNotBlank(item.getReservationOrder())) {
                 //鐗╂枡鎷夊姩鍥炶皟
                 MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
-                if(transferRequest == null) {
-                    response.setErrorCode("N");
-                    response.setErrorDesc("鏍规嵁棰勭暀鍙锋湭鎵惧埌鐗╂枡鎷夊姩鍗曪紒");
-                    return response;
+                if (transferRequest == null) {
+                    errorCount++;
+                    errorMsg.append("鏍规嵁棰勭暀鍙穂").append(item.getReservationOrder()).append("]鏈壘鍒扮墿鏂欐媺鍔ㄥ崟锛�");
+                    continue;
                 }
-            }else if(StringUtils.isNotBlank(item.getAlign())){
+                LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferRequest.getTargetWarehouseId());
+                if(warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
+                    errorCount++;
+                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒");
+                    continue;
+                }
+                if(!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
+                    errorCount++;
+                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅尮閰嶏紒");
+                    continue;
+                }
+                if(StringUtils.isBlank(item.getTrackLot())) {
+                    errorCount++;
+                    errorMsg.append("鎵规鍙穂").append(item.getTrackLot()).append("]涓嶈兘涓虹┖锛�");
+                    continue;
+                }
+                transferRequest.setRequestStatus(MaterialTransferRequestStatus.CHECKED_IN.name());
+                //璁$畻瀹為檯鎷夊姩鏁伴噺
+                BigDecimal actualQuantity = transferRequest.getActualQuantity() == null ? item.getQuantity() : transferRequest.getActualQuantity().add(item.getQuantity());
+                transferRequest.setActualQuantity(actualQuantity);
+
+                //娣诲姞鍏ュ簱淇℃伅
+                LswMaterialInbound inbound = new LswMaterialInbound();
+                inbound.setWarehouseId(transferRequest.getTargetWarehouseId());
+                inbound.setReceiver("WMS");
+                inbound.setMaterialNumber(transferRequest.getMaterialNumber());
+                inbound.setMaterialName(transferRequest.getMaterialName());
+                inbound.setBatchNumber(item.getTrackLot());
+                inbound.setQuantity(item.getQuantity());
+                inbound.setFactoryId(warehouse.getFactoryId());
+                boolean b = materialInboundService.inboundMaterial(inbound);
+                if(!b) {
+                    errorCount++;
+                    errorMsg.append("棰勭暀鍙穂").append(item.getReservationOrder()).append("]鍏ュ簱澶辫触锛�");
+                    continue;
+                }
+                //鏇存柊鐗╂枡鎷夊姩鍗�
+                materialTransferRequestService.updateById(transferRequest);
+            } else if (StringUtils.isNotBlank(item.getAlign())) {
                 //绉诲簱鍗曞洖璋�
             }
         }

--
Gitblit v1.9.3