From 881b15d5c56fd27d244f77cf2fb27ad95cfedd01 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 18 八月 2025 18:14:02 +0800
Subject: [PATCH] art: WMS接口测试相关代码添加,增加API接口日志

---
 src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java          |   18 ++
 src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java           |   34 +++---
 src/main/java/org/jeecg/common/aspect/ApiLogAspect.java                       |   10 +
 src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java |   75 +++++++++++++++
 src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java    |    3 
 src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java         |   71 +++++++++-----
 src/main/java/org/jeecg/modules/wms/dto/WSResponse.java                       |    6 
 src/main/java/org/jeecg/modules/wms/WMSWebService.java                        |    7 
 src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java           |    6 
 src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java          |   36 +++++++
 10 files changed, 208 insertions(+), 58 deletions(-)

diff --git a/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java b/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java
index 2651f1a..a3539e8 100644
--- a/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java
+++ b/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java
@@ -4,7 +4,6 @@
 import com.alibaba.fastjson.parser.Feature;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.sap.conn.jco.*;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
@@ -83,6 +82,13 @@
                     break;
                 case WMS:
                     dto.setRequestMethod("Webservice");
+                    if (result instanceof Map) {
+                        Map<String, Object> map = (Map<String, Object>) result;
+                        dto.setResponseCode(map.get("ztype").toString());
+                        dto.setResponseMessage(map.get("zmess").toString());
+                        dto.setRequestBody(map.get("importParameters") == null ? null : map.get("importParameters").toString());
+                        dto.setResponseBody(parseSAPResponseResult(map.get("result")));
+                    }
                     break;
                 case FEI_SHU:
                     dto.setRequestMethod("Http");
@@ -146,6 +152,8 @@
             } catch (JsonProcessingException e) {
                 throw new JeecgBootException(e);
             }
+        } else if (result instanceof String) {
+            return result.toString();
         } else {
             try {
                 String json = objectMapper.writeValueAsString(result);
diff --git a/src/main/java/org/jeecg/modules/wms/WMSWebService.java b/src/main/java/org/jeecg/modules/wms/WMSWebService.java
index bc9d3f2..d66b206 100644
--- a/src/main/java/org/jeecg/modules/wms/WMSWebService.java
+++ b/src/main/java/org/jeecg/modules/wms/WMSWebService.java
@@ -7,6 +7,8 @@
 import javax.xml.ws.WebServiceClient;
 import javax.xml.ws.WebServiceFeature;
 import javax.xml.ws.Service;
+
+import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.wms.service.WebServiceSoap;
 import org.springframework.stereotype.Component;
 
@@ -16,6 +18,7 @@
  * Generated source version: 3.5.5
  *
  */
+@Slf4j
 @Component
 @WebServiceClient(name = "WebService",
                   wsdlLocation = "classpath:/wsdl/WebService.asmx.wsdl",
@@ -32,9 +35,7 @@
         try {
             url = new URL("classpath:/wsdl/WebService.asmx.wsdl");
         } catch (MalformedURLException e) {
-            java.util.logging.Logger.getLogger(WMSWebService.class.getName())
-                .log(java.util.logging.Level.INFO,
-                     "Can not initialize the default wsdl from {0}", "classpath:/wsdl/WebService.asmx.wsdl");
+            log.error("Can not initialize the default wsdl from {}", "classpath:/wsdl/WebService.asmx.wsdl");
         }
         WSDL_LOCATION = url;
     }
diff --git a/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java b/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
index 08d60e0..9732f55 100644
--- a/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
+++ b/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
@@ -3,44 +3,38 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
-import org.apache.cxf.transport.http.HTTPConduit;
-import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.wms.WMSWebService;
 import org.jeecg.modules.wms.dto.WSResponse;
-import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
+import org.jeecg.modules.wms.request.*;
 import org.jeecg.modules.wms.service.MESWebServiceSoap;
-import org.jeecg.modules.wms.service.WebServiceSoap;
+import org.jeecg.modules.wms.service.WMSWebServiceClient;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
 
 @Api(tags = "WMS闆嗘垚娴嬭瘯")
 @RestController
 @RequestMapping("/wms/client")
 @Slf4j
 public class WMSTestController {
-    @Value("${webservice.url}")
-    private String url;
     @Autowired
-    private WMSWebService webService;
+    private WMSWebServiceClient webServiceClient;
 
-    private final static String localUrl = "http://localhost:9989/jeecg-boot/webservice/ReceiveWMSScanItemList?wsdl";
+    private final static String localUrl = "http://localhost:9989/ebservice/ReceiveWMSScanItemList?wsdl";
 
 
     @ApiOperation(value = "WMS闆嗘垚娴嬭瘯-鎺ユ敹WMS绉诲簱缁撴灉", notes = "WMS闆嗘垚娴嬭瘯-鎺ユ敹WMS绉诲簱缁撴灉")
     @PostMapping("/testReceiveWMSScanItemList")
-    public Result<?> testReceiveWMSScanItemList() {
+    public Result<?> testReceiveWMSScanItemList(@RequestBody List<WMSWebServiceSendItem> list) {
         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
         factory.setAddress(localUrl);
         factory.setServiceClass(MESWebServiceSoap.class);
         MESWebServiceSoap service = (MESWebServiceSoap) factory.create();
         ReceiveWMSScanItemList request = new ReceiveWMSScanItemList();
+        request.setWmsWebServiceSendItemList(list);
         WSResponse response = service.receiveWMSScanItemList(request);
         return Result.ok(response);
     }
@@ -54,20 +48,45 @@
 //        WebServiceSoap service = (WebServiceSoap) factory.create();
 //        String response = service.helloWorld();
 //        return Result.ok(response);
-        WebServiceSoap port = webService.getWebServiceSoap12();
+//        WebServiceSoap port = webService.getWebServiceSoap();
         // 2. 鑾峰彇 CXF 搴曞眰 Client 瀵硅薄
-        Client client = ClientProxy.getClient(port);
+//        Client client = ClientProxy.getClient(port);
 
         // 3. 鑾峰彇 HTTPConduit 骞惰缃秴鏃�
-        HTTPConduit http = (HTTPConduit) client.getConduit();
-        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
+//        HTTPConduit http = (HTTPConduit) client.getConduit();
+//        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
+//
+//        httpClientPolicy.setConnectionTimeout(10 * 1000); // 杩炴帴瓒呮椂 10 绉�
+//        httpClientPolicy.setReceiveTimeout(300 * 1000);   // 璇诲彇瓒呮椂 60 绉掞紙閲嶇偣锛侊級
 
-        httpClientPolicy.setConnectionTimeout(10 * 1000); // 杩炴帴瓒呮椂 10 绉�
-        httpClientPolicy.setReceiveTimeout(300 * 1000);   // 璇诲彇瓒呮椂 60 绉掞紙閲嶇偣锛侊級
-
-        http.setClient(httpClientPolicy);
-        String result = port.helloWorld();
-        return Result.ok(result);
+//        http.setClient(httpClientPolicy);
+        Map<String, Object> stringObjectMap = webServiceClient.helloWorld();
+        return Result.ok(stringObjectMap);
 
     }
+
+    @ApiOperation(value = "WMS闆嗘垚娴嬭瘯-鐗╂枡鎷夊姩", notes = "WMS闆嗘垚娴嬭瘯-鐗╂枡鎷夊姩")
+    @PostMapping("/receiveReservation")
+    public Result<?> receiveReservation(@RequestBody WebReservationOrder request) {
+        Map<String, Object> stringObjectMap = webServiceClient.receiveReservation(request);
+        return Result.ok(stringObjectMap);
+
+    }
+
+    @ApiOperation(value = "WMS闆嗘垚娴嬭瘯-绉诲簱鐢宠", notes = "WMS闆嗘垚娴嬭瘯-绉诲簱鐢宠")
+    @PostMapping("/receiveMESScanItemList")
+    public Result<?> receiveMESScanItemList(@RequestBody List<WebServiceSendItem> webServiceSendItem) {
+        ArrayOfWebServiceSendItem request = new ArrayOfWebServiceSendItem();
+        request.setWebServiceSendItem(webServiceSendItem);
+        Map<String, Object> stringObjectMap = webServiceClient.receiveMESScanItemList(request);
+        return Result.ok(stringObjectMap);
+    }
+
+    @ApiOperation(value = "WMS闆嗘垚娴嬭瘯-绉诲簱鐢宠鎾ら攢", notes = "WMS闆嗘垚娴嬭瘯-绉诲簱鐢宠鎾ら攢")
+    @PostMapping("/deliOrderDelete")
+    public Result<?> deliOrderDelete(@RequestParam String sFactoryCode, @RequestParam String sStockRecord) {
+        Map<String, Object> stringObjectMap = webServiceClient.deliOrderDelete(sFactoryCode, sStockRecord);
+        return Result.ok(stringObjectMap);
+    }
+
 }
diff --git a/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java b/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java
index 0d55fcf..873f3ca 100644
--- a/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java
+++ b/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java
@@ -33,14 +33,14 @@
 @Getter
 @Setter
 @XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "WSResponse", propOrder = {
+@XmlType(name = "WSResponse",  propOrder = {
         "errorCode",
         "errorDesc"
 })
 public class WSResponse {
 
-    @XmlElement(name = "ErrorCode")
+    @XmlElement(name = "ErrorCode", namespace = "http://tempuri.org/")
     protected String errorCode;
-    @XmlElement(name = "ErrorDesc")
+    @XmlElement(name = "ErrorDesc", namespace = "http://tempuri.org/")
     protected String errorDesc;
 }
diff --git a/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java b/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java
index 98f4d53..df29981 100644
--- a/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java
+++ b/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java
@@ -66,4 +66,7 @@
         return this.webServiceSendItem;
     }
 
+    public void setWebServiceSendItem(List<WebServiceSendItem> webServiceSendItem) {
+        this.webServiceSendItem = webServiceSendItem;
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java b/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java
index d38ae84..d3e2ece 100644
--- a/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java
+++ b/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java
@@ -4,10 +4,7 @@
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.*;
 
 
 /**
@@ -38,5 +35,6 @@
 @Setter
 public class ReceiveReservation {
 
+    @XmlElement(name = "oWebReservationOrder")
     protected WebReservationOrder oWebReservationOrder;
 }
diff --git a/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java b/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java
index 2f962be..017faae 100644
--- a/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java
+++ b/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java
@@ -8,6 +8,7 @@
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
+import java.io.Serializable;
 import java.math.BigDecimal;
 
 
@@ -40,12 +41,21 @@
 })
 @Getter
 @Setter
-public class WebReservationOrder {
+public class WebReservationOrder implements Serializable {
 
-    @XmlElement(name = "FactoryCode")
+    @XmlElement(name = "FactoryCode", namespace = "http://tempuri.org/")
     protected String factoryCode;
-    @XmlElement(name = "ReservationOrder")
+    @XmlElement(name = "ReservationOrder", namespace = "http://tempuri.org/")
     protected String reservationOrder;
-    @XmlElement(name = "Total", required = true)
+    @XmlElement(name = "Total", required = true, namespace = "http://tempuri.org/")
     protected BigDecimal total;
+
+    @Override
+    public String toString() {
+        return "WebReservationOrder{" +
+                "factoryCode='" + factoryCode + '\'' +
+                ", reservationOrder='" + reservationOrder + '\'' +
+                ", total=" + total +
+                '}';
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java b/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java
index ab7e44e..329b80e 100644
--- a/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java
+++ b/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java
@@ -70,38 +70,38 @@
 @Setter
 public class WebServiceSendItem {
 
-    @XmlElement(name = "FactoryCode")
+    @XmlElement(name = "FactoryCode", namespace = "http://tempuri.org/")
     protected String factoryCode;
-    @XmlElement(name = "SkuCode")
+    @XmlElement(name = "SkuCode", namespace = "http://tempuri.org/")
     protected String skuCode;
-    @XmlElement(name = "Align")
+    @XmlElement(name = "Align", namespace = "http://tempuri.org/")
     protected String align;
-    @XmlElement(name = "Pallet")
+    @XmlElement(name = "Pallet", namespace = "http://tempuri.org/")
     protected String pallet;
-    @XmlElement(name = "PackageNo")
+    @XmlElement(name = "PackageNo", namespace = "http://tempuri.org/")
     protected String packageNo;
-    @XmlElement(name = "TrackLot")
+    @XmlElement(name = "TrackLot", namespace = "http://tempuri.org/")
     protected long trackLot;
-    @XmlElement(name = "Series")
+    @XmlElement(name = "Series", namespace = "http://tempuri.org/")
     protected long series;
-    @XmlElement(name = "MesStockID")
+    @XmlElement(name = "MesStockID", namespace = "http://tempuri.org/")
     protected String mesStockID;
-    @XmlElement(name = "Quantity", required = true)
+    @XmlElement(name = "Quantity", required = true, namespace = "http://tempuri.org/")
     protected BigDecimal quantity;
-    @XmlElement(name = "SapTrackLot")
+    @XmlElement(name = "SapTrackLot", namespace = "http://tempuri.org/")
     protected String sapTrackLot;
-    @XmlElement(name = "Section")
+    @XmlElement(name = "Section", namespace = "http://tempuri.org/")
     protected String section;
-    @XmlElement(name = "DestSection")
+    @XmlElement(name = "DestSection", namespace = "http://tempuri.org/")
     protected String destSection;
-    @XmlElement(name = "SupplierCode")
+    @XmlElement(name = "SupplierCode", namespace = "http://tempuri.org/")
     protected String supplierCode;
-    @XmlElement(name = "SupplierTrackLot")
+    @XmlElement(name = "SupplierTrackLot", namespace = "http://tempuri.org/")
     protected String supplierTrackLot;
-    @XmlElement(name = "StageID")
+    @XmlElement(name = "StageID", namespace = "http://tempuri.org/")
     protected String stageID;
-    @XmlElement(name = "Remark")
+    @XmlElement(name = "Remark", namespace = "http://tempuri.org/")
     protected String remark;
-    @XmlElement(name = "OrderCode")
+    @XmlElement(name = "OrderCode", namespace = "http://tempuri.org/")
     protected String orderCode;
 }
diff --git a/src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java b/src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java
new file mode 100644
index 0000000..df2a6ea
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java
@@ -0,0 +1,36 @@
+package org.jeecg.modules.wms.service;
+
+import org.jeecg.modules.wms.request.ArrayOfWebServiceSendItem;
+import org.jeecg.modules.wms.request.WebReservationOrder;
+
+import java.util.Map;
+
+public interface WMSWebServiceClient {
+    /**
+     * 娴嬭瘯杩為�氭帴鍙�
+     * @return
+     */
+    Map<String, Object> helloWorld();
+
+    /**
+     * 鐗╂枡鎷夊姩
+     * @param oWebReservationOrder
+     * @return
+     */
+    Map<String, Object> receiveReservation(WebReservationOrder oWebReservationOrder);
+
+    /**
+     * 绉诲簱鐢宠
+     * @param oMESScanItemList
+     * @return
+     */
+    Map<String, Object> receiveMESScanItemList(ArrayOfWebServiceSendItem oMESScanItemList);
+
+    /**
+     * 鎾ら攢绉诲簱鐢宠
+     * @param sFactoryCode
+     * @param sStockRecord
+     * @return
+     */
+    Map<String, Object> deliOrderDelete(String sFactoryCode, String sStockRecord);
+}
diff --git a/src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java b/src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java
new file mode 100644
index 0000000..db42e31
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java
@@ -0,0 +1,75 @@
+package org.jeecg.modules.wms.service.impl;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.aspect.annotation.ApiLog;
+import org.jeecg.common.constant.ApiLogCategoryEnum;
+import org.jeecg.modules.wms.WMSWebService;
+import org.jeecg.modules.wms.dto.WSResponse;
+import org.jeecg.modules.wms.request.ArrayOfWebServiceSendItem;
+import org.jeecg.modules.wms.request.WebReservationOrder;
+import org.jeecg.modules.wms.service.WMSWebServiceClient;
+import org.jeecg.modules.wms.service.WebServiceSoap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class WMSWebServiceClientImpl implements WMSWebServiceClient {
+    @Autowired
+    private WMSWebService webService;
+
+    @Override
+    @ApiLog(apiName = "WMS娴嬭瘯杩為�氭帴鍙�(HelloWorld)", apiCategory = ApiLogCategoryEnum.WMS)
+    public Map<String, Object> helloWorld() {
+        Map<String, Object> resultMap = new HashMap<>();
+        WebServiceSoap port = webService.getWebServiceSoap();
+        String result = port.helloWorld();
+        resultMap.put("zmess", "璇锋眰鎴愬姛");
+        resultMap.put("ztype", 200);
+        resultMap.put("importParameters", null);
+        resultMap.put("result", result);
+        return resultMap;
+    }
+
+    @Override
+    @ApiLog(apiName = "鐗╂枡鎷夊姩(receiveReservation)", apiCategory = ApiLogCategoryEnum.WMS)
+    public Map<String, Object> receiveReservation(WebReservationOrder oWebReservationOrder) {
+        Map<String, Object> resultMap = new HashMap<>();
+        WebServiceSoap port = webService.getWebServiceSoap();
+        WSResponse result = port.receiveReservation(oWebReservationOrder);
+        resultMap.put("zmess", "璇锋眰鎴愬姛");
+        resultMap.put("ztype", 200);
+        resultMap.put("importParameters", oWebReservationOrder);
+        resultMap.put("result", result);
+        return resultMap;
+    }
+
+    @Override
+    @ApiLog(apiName = "绉诲簱鐢宠(receiveMESScanItemList)", apiCategory = ApiLogCategoryEnum.WMS)
+    public Map<String, Object> receiveMESScanItemList(ArrayOfWebServiceSendItem oMESScanItemList) {
+        Map<String, Object> resultMap = new HashMap<>();
+        WebServiceSoap port = webService.getWebServiceSoap();
+        WSResponse result = port.receiveMESScanItemList(oMESScanItemList);
+        resultMap.put("zmess", "璇锋眰鎴愬姛");
+        resultMap.put("ztype", 200);
+        resultMap.put("importParameters", oMESScanItemList);
+        resultMap.put("result", result);
+        return resultMap;
+    }
+
+    @Override
+    @ApiLog(apiName = "鎾ら攢绉诲簱鐢宠(deliOrderDelete)", apiCategory = ApiLogCategoryEnum.WMS)
+    public Map<String, Object> deliOrderDelete(String sFactoryCode, String sStockRecord) {
+        Map<String, Object> resultMap = new HashMap<>();
+        WebServiceSoap port = webService.getWebServiceSoap();
+        WSResponse result = port.deliOrderDelete(sFactoryCode, sStockRecord);
+        resultMap.put("zmess", "璇锋眰鎴愬姛");
+        resultMap.put("ztype", 200);
+        resultMap.put("importParameters", sStockRecord);
+        resultMap.put("result", result);
+        return resultMap;
+    }
+}

--
Gitblit v1.9.3