新火炬后端单体项目初始化代码
zhangherong
4 天以前 881b15d5c56fd27d244f77cf2fb27ad95cfedd01
art: WMS接口测试相关代码添加,增加API接口日志
已添加2个文件
已修改8个文件
266 ■■■■ 文件已修改
src/main/java/org/jeecg/common/aspect/ApiLogAspect.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/WMSWebService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/WSResponse.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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;
    }
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);
    }
}
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;
}
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;
    }
}
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;
}
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 +
                '}';
    }
}
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;
}
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);
}
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;
    }
}