| | |
| | | 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; |
| | | // } |
| | | //} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | @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() { |
| | |
| | | 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; |
| | | } |
| | |
| | | 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; |
| | | //} |
| | |
| | | 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; |
| | | //} |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | | } |
| | |
| | | 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 |
| | |
| | | @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; |
| | |
| | | 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()); |
| | |
| | | } |
| | | transferOrderPrintService.updateById(transferOrder); |
| | | successCount++; |
| | | } else { |
| | | errorCount++; |
| | | errorMsg.append("ç§»åºååé¢çå·é½ä¸ºç©ºï¼\n"); |
| | | } |
| | | } |
| | | //å¤çè¿åç»æ |