新火炬后端单体项目初始化代码
zhangherong
2 天以前 d9d2594bea7cbd9c961dbabdfd30d1e5c74d1b6e
art: WMS接口转HTTP
已添加1个文件
已修改8个文件
308 ■■■■ 文件已修改
src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/ReceiveWMSScanItemListController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/MESResponse.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/dto/ReceiveWMSScanItemListResponse.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/ReceiveWMSScanItemList.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/MESWebServiceSoap.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java
@@ -1,36 +1,36 @@
package org.jeecg.modules.wms.config;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
@Configuration
public class WebServiceServerConfig {
    @Autowired
    private Bus bus;
    @Autowired
    private MESWebServiceSoap mesWebServiceSoap;
    @Bean(name = "cxfServlet")  // æ³¨å…¥servlet bean name不能dispatcherServlet ,否则会覆盖dispatcherServlet
    public ServletRegistrationBean<CXFServlet> cxfServlet() {
        return new ServletRegistrationBean<>(new CXFServlet(), "/webservice/*");
    }
    @Bean
    public Endpoint endpoint() {
        // å‚数二,是SEI实现类对象
        Endpoint endpoint = new EndpointImpl(bus, mesWebServiceSoap);
        // å‘布服务
        endpoint.publish("/MESWebService");
        return endpoint;
    }
}
//package org.jeecg.modules.wms.config;
//
//import org.apache.cxf.Bus;
//import org.apache.cxf.jaxws.EndpointImpl;
//import org.apache.cxf.transport.servlet.CXFServlet;
//import org.jeecg.modules.wms.service.MESWebServiceSoap;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import javax.xml.ws.Endpoint;
//
//
//@Configuration
//public class WebServiceServerConfig {
//    @Autowired
//    private Bus bus;
//    @Autowired
//    private MESWebServiceSoap mesWebServiceSoap;
//
//    @Bean(name = "cxfServlet")  // æ³¨å…¥servlet bean name不能dispatcherServlet ,否则会覆盖dispatcherServlet
//    public ServletRegistrationBean<CXFServlet> cxfServlet() {
//        return new ServletRegistrationBean<>(new CXFServlet(), "/webservice/*");
//    }
//
//    @Bean
//    public Endpoint endpoint() {
//        // å‚数二,是SEI实现类对象
//        Endpoint endpoint = new EndpointImpl(bus, mesWebServiceSoap);
//        // å‘布服务
//        endpoint.publish("/MESWebService");
//
//        return endpoint;
//    }
//}
src/main/java/org/jeecg/modules/wms/controller/ReceiveWMSScanItemListController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.wms.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.wms.dto.MESResponse;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
import org.jeecg.modules.wms.service.MESWebServiceSoap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "MES对外接口")
@RestController
@RequestMapping("/api/mes")
@Slf4j
public class ReceiveWMSScanItemListController {
    @Autowired
    private MESWebServiceSoap mesWebServiceSoap;
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
    @PostMapping("/receiveWMSScanItemList")
    public MESResponse receiveWMSScanItemList(@RequestBody List<WMSWebServiceSendItem> list) {
        return mesWebServiceSoap.receiveWMSScanItemList(list);
    }
}
src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
@@ -23,22 +23,6 @@
    @Autowired
    private WMSWebServiceClient webServiceClient;
    private final static String localUrl = "http://localhost:9989/webservice/MESWebService?wsdl";
    @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果")
    @PostMapping("/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);
        MESResponse response = service.receiveWMSScanItemList(request);
        return Result.ok(response);
    }
    @ApiOperation(value = "WMS集成测试-HelloWord测试", notes = "WMS集成测试-HelloWord测试")
    @PostMapping("/testHelloWorld")
    public Result<?> testHelloWorld() {
src/main/java/org/jeecg/modules/wms/dto/MESResponse.java
@@ -1,23 +1,14 @@
package org.jeecg.modules.wms.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MESResponse",  propOrder = {
        "errorCode",
        "errorDesc"
}, namespace = "http://xhj008.server.webservice.com/")
public class MESResponse {
    @XmlElement(name = "ErrorCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ErrorCode")
    protected String errorCode;
    @XmlElement(name = "ErrorDesc", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ErrorDesc")
    protected String errorDesc;
}
src/main/java/org/jeecg/modules/wms/dto/ReceiveWMSScanItemListResponse.java
@@ -1,18 +1,18 @@
package org.jeecg.modules.wms.dto;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "receiveWMSScanItemListResult"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlRootElement(name = "ReceiveWMSScanItemListResponse", namespace = "http://xhj008.server.webservice.com/")
@Getter
@Setter
public class ReceiveWMSScanItemListResponse {
    @XmlElement(name = "ReceiveWMSScanItemListResult", namespace = "http://xhj008.server.webservice.com/")
    protected MESResponse receiveWMSScanItemListResult;
}
//package org.jeecg.modules.wms.dto;
//
//import lombok.Getter;
//import lombok.Setter;
//
//import javax.xml.bind.annotation.*;
//
//@XmlAccessorType(XmlAccessType.FIELD)
//@XmlType(name = "", propOrder = {
//        "receiveWMSScanItemListResult"
//}, namespace = "http://xhj008.server.webservice.com/")
//@XmlRootElement(name = "ReceiveWMSScanItemListResponse", namespace = "http://xhj008.server.webservice.com/")
//@Getter
//@Setter
//public class ReceiveWMSScanItemListResponse {
//    @XmlElement(name = "ReceiveWMSScanItemListResult", namespace = "http://xhj008.server.webservice.com/")
//    protected MESResponse receiveWMSScanItemListResult;
//}
src/main/java/org/jeecg/modules/wms/request/ReceiveWMSScanItemList.java
@@ -1,21 +1,21 @@
package org.jeecg.modules.wms.request;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.*;
import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "wmsWebServiceSendItemList"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlRootElement(name = "ReceiveWMSScanItemList", namespace = "http://xhj008.server.webservice.com/")
@Getter
@Setter
public class ReceiveWMSScanItemList {
    @XmlElementWrapper(name = "ArrayOfWMSWebServiceSendItem", namespace = "http://xhj008.server.webservice.com/")
    @XmlElement(name = "WMSWebServiceSendItem", nillable = true, namespace = "http://xhj008.server.webservice.com/")
    protected List<WMSWebServiceSendItem> wmsWebServiceSendItemList;
}
//package org.jeecg.modules.wms.request;
//
//import lombok.Getter;
//import lombok.Setter;
//
//import javax.xml.bind.annotation.*;
//import java.util.List;
//
//@XmlAccessorType(XmlAccessType.FIELD)
//@XmlType(name = "", propOrder = {
//        "wmsWebServiceSendItemList"
//}, namespace = "http://xhj008.server.webservice.com/")
//@XmlRootElement(name = "ReceiveWMSScanItemList", namespace = "http://xhj008.server.webservice.com/")
//@Getter
//@Setter
//public class ReceiveWMSScanItemList {
//
//    @XmlElementWrapper(name = "ArrayOfWMSWebServiceSendItem", namespace = "http://xhj008.server.webservice.com/")
//    @XmlElement(name = "WMSWebServiceSendItem", nillable = true, namespace = "http://xhj008.server.webservice.com/")
//    protected List<WMSWebServiceSendItem> wmsWebServiceSendItemList;
//}
src/main/java/org/jeecg/modules/wms/request/WMSWebServiceSendItem.java
@@ -1,92 +1,68 @@
package org.jeecg.modules.wms.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.math.BigDecimal;
@Getter
@Setter
@XmlType(name = "WMSWebServiceSendItem", propOrder = {
        "factoryCode",
        "skuCode",
        "reservationOrder",
        "align",
        "pallet",
        "packageNo",
        "trackLot",
        "series",
        "mesStockID",
        "quantity",
        "sapTrackLot",
        "section",
        "destSection",
        "supplierCode",
        "supplierTrackLot",
        "stageID",
        "remark",
        "orderCode"
}, namespace = "http://xhj008.server.webservice.com/")
@XmlAccessorType(XmlAccessType.FIELD)
public class WMSWebServiceSendItem {
    /**工厂编码 */
    @XmlElement(name = "FactoryCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("FactoryCode")
    private String factoryCode;
    /** ç‰©æ–™ç¼–码 */
    @XmlElement(name = "SkuCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SkuCode")
    private String skuCode;
    /** é¢„留号 */
    @XmlElement(name = "ReservationOrder", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("ReservationOrder")
    private String reservationOrder;
    /** MES移库单号 */
    @XmlElement(name = "Align", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Align")
    private String align;
    /** æ‰˜å· */
    @XmlElement(name = "Pallet", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Pallet")
    private String pallet;
    /** åŒ…装编码 */
    @XmlElement(name = "PackageNo", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("PackageNo")
    private String packageNo;
    /** æ‰¹æ¬¡å· */
    @XmlElement(name = "TrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("TrackLot")
    private String trackLot;
    /** ç³»åˆ—号 */
    @XmlElement(name = "Series", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Series")
    private String series;
    /** MES库存ID */
    @XmlElement(name = "MesStockID", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("MesStockID")
    private String mesStockID;
    /** æ•°é‡ */
    @XmlElement(name = "Quantity", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Quantity")
    private BigDecimal quantity;
    /** SAP批次号 */
    @XmlElement(name = "SapTrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SapTrackLot")
    private String sapTrackLot;
    /** å‘送库存地 */
    @XmlElement(name = "Section", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Section")
    private String section;
    /** ç›®æ ‡åº“存地 */
    @XmlElement(name = "DestSection", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("DestSection")
    private String destSection;
    /** ä¾›åº”商代码 */
    @XmlElement(name = "SupplierCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SupplierCode")
    private String supplierCode;
    /** ä¾›åº”商批次号 */
    @XmlElement(name = "SupplierTrackLot", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("SupplierTrackLot")
    private String supplierTrackLot;
    /** é˜¶æ®µID */
    @XmlElement(name = "StageID", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("StageID")
    private String stageID;
    /** å¤‡æ³¨ */
    @XmlElement(name = "Remark", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("Remark")
    private String remark;
    /** è®¢å•编码 */
    @XmlElement(name = "OrderCode", namespace = "http://xhj008.server.webservice.com/")
    @JsonProperty("OrderCode")
    private String orderCode;
}
src/main/java/org/jeecg/modules/wms/service/MESWebServiceSoap.java
@@ -1,27 +1,15 @@
package org.jeecg.modules.wms.service;
import org.jeecg.modules.wms.dto.MESResponse;
import org.jeecg.modules.wms.request.ReceiveWMSScanItemList;
import org.jeecg.modules.wms.request.WMSWebServiceSendItem;
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.util.List;
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com/")
public interface MESWebServiceSoap {
    /**
     * æŽ¥æ”¶WMS移库信息
     * @param wmsWebServiceSendItemList
     * @param list
     * @return
     */
    @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/")
    MESResponse receiveWMSScanItemList(
            @WebParam(name = "wmsWebServiceSendItemList", targetNamespace = "http:/xhj008.server.webservice.com/")
            ReceiveWMSScanItemList wmsWebServiceSendItemList);
    MESResponse receiveWMSScanItemList(List<WMSWebServiceSendItem> list);
}
src/main/java/org/jeecg/modules/wms/service/impl/MESWebServiceSoapImpl.java
@@ -23,20 +23,18 @@
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
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;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.jws.WebService;
import java.math.BigDecimal;
import java.util.List;
@Slf4j
@Service("MESWebServiceSoap")
@WebService(name = "MESWebServiceSoap", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.MESWebServiceSoap")
@Service
public class MESWebServiceSoapImpl implements MESWebServiceSoap {
    @Autowired
@@ -57,9 +55,9 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    @ApiLog(apiName = "接收WMS的移库信息(ReceiveWMSScanItemList(MES)", apiCategory = ApiLogCategoryEnum.WMS)
    public MESResponse receiveWMSScanItemList(ReceiveWMSScanItemList request) {
    public MESResponse receiveWMSScanItemList(List<WMSWebServiceSendItem> list) {
        MESResponse response = new MESResponse();
        if (request == null || CollectionUtil.isEmpty(request.getWmsWebServiceSendItemList())) {
        if (CollectionUtil.isEmpty(list)) {
            response.setErrorCode("N");
            response.setErrorDesc("传入的参数为空!");
            return response;
@@ -67,7 +65,7 @@
        int errorCount = 0;
        int successCount = 0;
        StringBuilder errorMsg = new StringBuilder();
        for (WMSWebServiceSendItem item : request.getWmsWebServiceSendItemList()) {
        for (WMSWebServiceSendItem item : list) {
            if (StringUtils.isNotBlank(item.getReservationOrder())) {
                //物料拉动回调
                MesMaterialTransferRequest transferRequest = materialTransferRequestService.queryByReservationCode(item.getReservationOrder());
@@ -164,6 +162,9 @@
                }
                transferOrderPrintService.updateById(transferOrder);
                successCount++;
            } else {
                errorCount++;
                errorMsg.append("移库单和预留号都为空!\n");
            }
        }
        //处理返回结果