From 30f750d98beccae02b87f5f97d114d030fbccd83 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期六, 06 九月 2025 10:11:13 +0800
Subject: [PATCH] art: WebService接口修改,

---
 src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java |  114 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 91 insertions(+), 23 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 8e69a64..d80623a 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
@@ -7,12 +7,21 @@
 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.LswMaterial;
 import org.jeecg.modules.lsw.entity.LswMaterialInbound;
+import org.jeecg.modules.lsw.entity.LswMaterialInventory;
+import org.jeecg.modules.lsw.entity.LswMaterialOutbound;
 import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
+import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
 import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
+import org.jeecg.modules.mes.entity.MesTransferOrderPrint;
 import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus;
+import org.jeecg.modules.mes.enums.TransferOrderStatusEnum;
 import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
-import org.jeecg.modules.wms.dto.WSResponse;
+import org.jeecg.modules.mes.service.IMesTransferOrderPrintService;
+import org.jeecg.modules.wms.dto.MESResponse;
 import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
 import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
 import org.jeecg.modules.wms.service.MESWebServiceSoap;
@@ -20,17 +29,12 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
 import javax.jws.WebService;
-import javax.xml.ws.RequestWrapper;
-import javax.xml.ws.ResponseWrapper;
 import java.math.BigDecimal;
 
 
 @Slf4j
-@Service
+@Service("MESWebServiceSoap")
 @WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.MESWebServiceSoap")
 public class MESWebServiceSoapImpl implements MESWebServiceSoap {
 
@@ -40,22 +44,25 @@
     private ILineSideWarehouseService lineSideWarehouseService;
     @Autowired
     private ILswMaterialInboundService materialInboundService;
+    @Autowired
+    private IMesTransferOrderPrintService transferOrderPrintService;
+    @Autowired
+    private ILswMaterialOutboundService materialOutboundService;
+    @Autowired
+    private ILswMaterialInventoryService materialInventoryService;
+    @Autowired
+    private ILswMaterialService materialService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    @WebMethod(operationName = "ReceiveWMSScanItemList", action = "http://xhj008.server.webservice.com/ReceiveWMSScanItemList")
-    @RequestWrapper(localName = "ReceiveWMSScanItemList", targetNamespace = "http://xhj008.server.webservice.com/", className = "ReceiveWMSScanItemList")
-    @ResponseWrapper(localName = "ReceiveWMSScanItemListResponse", targetNamespace = "http://xhj008.server.webservice.com/", className = "ReceiveWMSScanItemListResponse")
-    @WebResult(name = "ReceiveWMSScanItemListResult", targetNamespace = "http://xhj008.server.webservice.com/")
     @ApiLog(apiName = "鎺ユ敹WMS鐨勭Щ搴撲俊鎭�(ReceiveWMSScanItemList(MES)", apiCategory = ApiLogCategoryEnum.WMS)
-    public WSResponse receiveWMSScanItemList(@WebParam(name = "ReceiveWMSScanItemList", targetNamespace = "http://xhj008.server.webservice.com/") ReceiveWMSScanItemList request) {
-        WSResponse response = new WSResponse();
+    public MESResponse receiveWMSScanItemList(ReceiveWMSScanItemList request) {
+        MESResponse response = new MESResponse();
         if (request == null || CollectionUtil.isEmpty(request.getWmsWebServiceSendItemList())) {
             response.setErrorCode("N");
             response.setErrorDesc("浼犲叆鐨勫弬鏁颁负绌猴紒");
             return response;
         }
-        String errorCode = "N";
         int errorCount = 0;
         int successCount = 0;
         StringBuilder errorMsg = new StringBuilder();
@@ -65,23 +72,23 @@
                 MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
                 if (transferRequest == null) {
                     errorCount++;
-                    errorMsg.append("鏍规嵁棰勭暀鍙穂").append(item.getReservationOrder()).append("]鏈壘鍒扮墿鏂欐媺鍔ㄥ崟锛�");
+                    errorMsg.append("鏍规嵁棰勭暀鍙穂").append(item.getReservationOrder()).append("]鏈壘鍒扮墿鏂欐媺鍔ㄥ崟锛乗n");
                     continue;
                 }
                 LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferRequest.getTargetWarehouseId());
-                if(warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
+                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
                     errorCount++;
-                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒");
+                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒\n");
                     continue;
                 }
-                if(!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
+                if (!transferRequest.getMaterialNumber().equals(item.getSkuCode())) {
                     errorCount++;
-                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅尮閰嶏紒");
+                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅尮閰嶏紒\n");
                     continue;
                 }
-                if(StringUtils.isBlank(item.getTrackLot())) {
+                if (StringUtils.isBlank(item.getTrackLot())) {
                     errorCount++;
-                    errorMsg.append("鎵规鍙穂").append(item.getTrackLot()).append("]涓嶈兘涓虹┖锛�");
+                    errorMsg.append("鎵规鍙穂").append(item.getTrackLot()).append("]涓嶈兘涓虹┖锛乗n");
                     continue;
                 }
                 transferRequest.setRequestStatus(MaterialTransferRequestStatus.CHECKED_IN.name());
@@ -99,17 +106,78 @@
                 inbound.setQuantity(item.getQuantity());
                 inbound.setFactoryId(warehouse.getFactoryId());
                 boolean b = materialInboundService.inboundMaterial(inbound);
-                if(!b) {
+                if (!b) {
                     errorCount++;
-                    errorMsg.append("棰勭暀鍙穂").append(item.getReservationOrder()).append("]鍏ュ簱澶辫触锛�");
+                    errorMsg.append("棰勭暀鍙穂").append(item.getReservationOrder()).append("]鍏ュ簱澶辫触锛乗n");
                     continue;
                 }
                 //鏇存柊鐗╂枡鎷夊姩鍗�
                 materialTransferRequestService.updateById(transferRequest);
+                successCount++;
             } else if (StringUtils.isNotBlank(item.getAlign())) {
                 //绉诲簱鍗曞洖璋�
+                MesTransferOrderPrint transferOrder = transferOrderPrintService.queryByOrderCode(item.getAlign());
+                if (transferOrder == null) {
+                    errorCount++;
+                    errorMsg.append("绉诲簱鍗昜").append(item.getAlign()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LswMaterialInventory inventory = materialInventoryService.getById(item.getMesStockID());
+                if (inventory == null) {
+                    errorCount++;
+                    errorMsg.append("搴撳瓨淇℃伅[").append(item.getMesStockID()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LswMaterial material = materialService.queryByMaterialNumber(item.getSkuCode());
+                if(material == null) {
+                    errorCount++;
+                    errorMsg.append("鐗╂枡缂栧彿[").append(item.getSkuCode()).append("]涓嶅瓨鍦紒\n");
+                    continue;
+                }
+                LineSideWarehouse warehouse = lineSideWarehouseService.getById(transferOrder.getOriginalWarehouseId());
+                if (warehouse == null || !warehouse.getWarehouseCode().equals(item.getDestSection())) {
+                    errorCount++;
+                    errorMsg.append("绾胯竟搴揫").append(item.getDestSection()).append("]鏈壘鍒帮紒\n");
+                    continue;
+                }
+                //绉诲簱鍗曟洿鏀�
+                transferOrder.setOrderStatus(TransferOrderStatusEnum.COMPLETED.name());
+                //鎴愬搧鍑哄簱
+                LswMaterialOutbound outbound = new LswMaterialOutbound();
+                outbound.setBatchNumber(inventory.getBatchNumber());
+                outbound.setQuantity(item.getQuantity());
+                outbound.setMaterialNumber(material.getMaterialNumber());
+                outbound.setMaterialName(material.getMaterialName());
+                outbound.setInventoryId(inventory.getId());
+                outbound.setWarehouseId(transferOrder.getOriginalWarehouseId());
+                outbound.setFactoryId(warehouse.getFactoryId());
+                outbound.setOutboundStaff("WMS");
+                boolean b = materialOutboundService.outboundMaterial(outbound);
+                if (!b) {
+                    errorCount++;
+                    errorMsg.append("绉诲簱鍗昜").append(item.getAlign()).append("]鍑哄簱澶辫触锛乗n");
+                    continue;
+                }
+                transferOrderPrintService.updateById(transferOrder);
+                successCount++;
             }
         }
+        //澶勭悊杩斿洖缁撴灉
+        if (errorCount > 0) {
+            response.setErrorCode("N");
+            if (successCount > 0) {
+                String msg = "鎴愬姛鎵ц" + successCount + "鏉★紝澶辫触" + errorCount + "鏉★紒\n";
+                errorMsg.insert(0, msg);
+            } else {
+                String msg = "澶辫触" + errorCount + "鏉★紒\n";
+                errorMsg.insert(0, msg);
+            }
+            response.setErrorDesc(errorMsg.toString());
+        } else {
+            response.setErrorCode("Y");
+            String msg = "鎴愬姛鎵ц" + successCount + "鏉★紒\n";
+            response.setErrorDesc(msg);
+        }
         return response;
     }
 }

--
Gitblit v1.9.3