pom.xml
@@ -227,11 +227,11 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <!-- <dependency>--> <!-- <groupId>org.apache.cxf</groupId>--> <!-- <artifactId>cxf-spring-boot-starter-jaxws</artifactId>--> <!-- <version>${cxf.version}</version>--> <!-- </dependency>--> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>${cxf.version}</version> </dependency> <!-- CXF webservice --> <dependency> src/main/java/org/jeecg/JeecgSystemApplication.java
@@ -1,6 +1,7 @@ package org.jeecg; import lombok.extern.slf4j.Slf4j; import org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration; import org.flowable.spring.boot.eventregistry.EventRegistryServicesAutoConfiguration; import org.jeecg.common.util.oConvertUtils; import org.springframework.boot.SpringApplication; @@ -22,7 +23,8 @@ */ @Slf4j @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, MongoAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class, EventRegistryServicesAutoConfiguration.class}) ManagementWebSecurityAutoConfiguration.class, EventRegistryServicesAutoConfiguration.class, CxfAutoConfiguration.class}) public class JeecgSystemApplication extends SpringBootServletInitializer { @Override src/main/java/org/jeecg/config/Swagger2Config.java
@@ -173,6 +173,24 @@ .groupName("MES模å"); } @Bean(value = "defaultApiWMS") public Docket defaultApiWMS() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //æ¤å è·¯å¾ä¸çç±»ï¼æçææ¥å£ææ¡£ .apis(RequestHandlerSelectors.basePackage("org.jeecg.modules.wms")) //å äºApiOperation注解çç±»ï¼æçææ¥å£ææ¡£ .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build() .securitySchemes(Collections.singletonList(securityScheme())) .securityContexts(securityContexts()) .globalOperationParameters(setHeaderToken()) .groupName("WMS模å"); } /*** * oauth2é ç½® * éè¦å¢å swaggerææåè°å°å src/main/java/org/jeecg/modules/base/controller/FactoryController.java
@@ -222,9 +222,9 @@ } @ApiOperation(value = "è·åææäº§çº¿å表", notes = "è·åææäº§çº¿å表") @GetMapping(value = "/queryProductionLineList") public Result<List<FactoryModel>> queryProductionLineList() { List<Factory> factoryList = factoryService.queryProductionLineList(); @GetMapping(value = "/queryUserProductionLineList") public Result<List<FactoryModel>> queryUserProductionLineList() { List<Factory> factoryList = factoryService.queryUserProductionLineList(); List<FactoryModel> factoryModels = factoryList.stream() .map(factory -> new FactoryModel(factory.getId(), factory.getFactoryName())) .collect(Collectors.toList()); src/main/java/org/jeecg/modules/base/service/IFactoryService.java
@@ -50,5 +50,5 @@ * æ¥è¯¢æ¥è¯¢å表 * @return */ List<Factory> queryProductionLineList(); List<Factory> queryUserProductionLineList(); } src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java
@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.base.entity.Factory; import org.jeecg.modules.base.entity.UserFactory; @@ -24,6 +26,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -176,10 +179,21 @@ } @Override public List<Factory> queryProductionLineList() { public List<Factory> queryUserProductionLineList() { //ç¨æ·æ°æ®æé LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return Collections.emptyList(); } String productionIds = sysUser.getProductionIds(); if(StringUtils.isBlank(productionIds)){ return Collections.emptyList(); } List<String> list = Arrays.asList(productionIds.split(",")); LambdaQueryWrapper<Factory> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Factory::getDelFlag, CommonConstant.DEL_FLAG_0); queryWrapper.eq(Factory::getFactoryCategory, "PRODUCTION_LINE"); // queryWrapper.eq(Factory::getFactoryCategory, "PRODUCTION_LINE"); queryWrapper.in(Factory::getId, list); queryWrapper.orderByAsc(Factory::getSorter); return super.list(queryWrapper); } src/main/java/org/jeecg/modules/wms/config/WebServiceClientConfig.java
ÎļþÒÑɾ³ý src/main/java/org/jeecg/modules/wms/config/WebServiceServerConfig.java
@@ -5,7 +5,7 @@ import org.apache.cxf.jaxws.EndpointImpl; import org.apache.cxf.transport.servlet.CXFServlet; import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; import org.springframework.beans.factory.annotation.Autowired; import org.jeecg.modules.wms.service.impl.ReceiveWMSScanItemListServiceImpl; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -15,25 +15,28 @@ @Configuration public class WebServiceServerConfig { @Autowired private ReceiveWMSScanItemListService receiveWMSScanItemListService; @Bean(name = "cxfServer") @Bean(name = Bus.DEFAULT_BUS_ID) public Bus springBus() { return new SpringBus(); } @Bean(name = "cxfServlet") // æ³¨å ¥servlet bean nameä¸è½dispatcherServlet ,å¦åä¼è¦çdispatcherServlet public ServletRegistrationBean<CXFServlet> cxfServlet() { return new ServletRegistrationBean<CXFServlet>(new CXFServlet(), "/webservice/*"); return new ServletRegistrationBean<>(new CXFServlet(), "/webservice/*"); } @Bean public ReceiveWMSScanItemListService receiveWMSScanItemListService() { return new ReceiveWMSScanItemListServiceImpl(); } @Bean public Endpoint endpoint() { // åæ°äºï¼æ¯SEIå®ç°ç±»å¯¹è±¡ Endpoint endpoint = new EndpointImpl(this.springBus(), receiveWMSScanItemListService); Endpoint endpoint = new EndpointImpl(this.springBus(), this.receiveWMSScanItemListService()); // åå¸æå¡ endpoint.publish("/userService"); endpoint.publish("/ReceiveWMSScanItemList"); return endpoint; } } src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package org.jeecg.modules.wms.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.dto.ReceiveMESScanItemListResponse; import org.jeecg.modules.wms.request.ReceiveMESScanItemList; import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; 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; @Api(tags = "WMSéææµè¯") @RestController @RequestMapping("/wms/client") @Slf4j public class WMSTestController { @Value("${webservice.url}") private String url; @Value("${webservice.namespace}") private String namespace; @ApiOperation(value = "WMSéææµè¯-æ¥æ¶WMSç§»åºç»æ", notes = "WMSéææµè¯-æ¥æ¶WMSç§»åºç»æ") @PostMapping("/testReceiveWMSScanItemList") public Result<?> testReceiveWMSScanItemList() { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setAddress(url); factory.setServiceClass(ReceiveWMSScanItemListService.class); ReceiveWMSScanItemListService service = (ReceiveWMSScanItemListService) factory.create(); ReceiveMESScanItemList request = new ReceiveMESScanItemList(); ReceiveMESScanItemListResponse response = service.receiveWMSScanItemList(request); return Result.ok(response); } } src/main/java/org/jeecg/modules/wms/dto/ReceiveMESScanItemListResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package org.jeecg.modules.wms.dto; 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.XmlRootElement; import java.io.Serializable; @Getter @Setter @XmlRootElement(name = "ReceiveMESScanItemListResponse") @XmlAccessorType(XmlAccessType.FIELD) public class ReceiveMESScanItemListResponse implements Serializable { @XmlElement(name = "WSResponse") private WSResponse wsResponse; } src/main/java/org/jeecg/modules/wms/dto/WSResponse.java
@@ -1,6 +1,19 @@ package org.jeecg.modules.wms.dto; public class WSResponse { private String ErrorCode; private String ErrorDesc; 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 java.io.Serializable; @Getter @Setter @XmlAccessorType(XmlAccessType.FIELD) public class WSResponse implements Serializable { @XmlElement(name = "ErrorCode") private String errorCode; @XmlElement(name = "ErrorDesc") private String errorDesc; } src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java
@@ -1,4 +1,19 @@ package org.jeecg.modules.wms.request; public class ReceiveMESScanItemList { import lombok.Getter; import lombok.Setter; import javax.xml.bind.annotation.*; import java.io.Serializable; import java.util.List; @Getter @Setter @XmlRootElement(name = "ReceiveMESScanItemList") @XmlAccessorType(XmlAccessType.FIELD) public class ReceiveMESScanItemList implements Serializable { @XmlElementWrapper(name = "ArrayOfWebServiceSendItem") @XmlElement(name = "WebServiceSendItem") private List<WebServiceSendItem> items; } src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package org.jeecg.modules.wms.request; 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 java.io.Serializable; import java.math.BigDecimal; @Getter @Setter @XmlAccessorType(XmlAccessType.FIELD) public class WebServiceSendItem implements Serializable { /**å·¥åç¼ç */ @XmlElement(name = "FactoryCode") private String factoryCode; /** ç©æç¼ç */ @XmlElement(name = "SkuCode") private String skuCode; /** é¢çå· */ @XmlElement(name = "ReservationOrder") private String reservationOrder; /** 坹齿¹å¼ */ @XmlElement(name = "Align") private String align; /** æå· */ @XmlElement(name = "Pallet") private String pallet; /** å è£ ç¼ç */ @XmlElement(name = "PackageNo") private String packageNo; /** æ¹æ¬¡å· */ @XmlElement(name = "TrackLot") private String trackLot; /** ç³»åå· */ @XmlElement(name = "Series") private String series; /** MESåºåID */ @XmlElement(name = "MesStockID") private String mesStockID; /** æ°é */ @XmlElement(name = "Quantity") private BigDecimal quantity; /** SAPæ¹æ¬¡å· */ @XmlElement(name = "SapTrackLot") private String sapTrackLot; /** åéåºåå° */ @XmlElement(name = "Section") private String section; /** ç®æ åºåå° */ @XmlElement(name = "DestSection") private String destSection; /** ä¾åºå代ç */ @XmlElement(name = "SupplierCode") private String supplierCode; /** ä¾åºåæ¹æ¬¡å· */ @XmlElement(name = "SupplierTrackLot") private String supplierTrackLot; /** é¶æ®µID */ @XmlElement(name = "StageID") private String stageID; /** 夿³¨ */ @XmlElement(name = "Remark") private String remark; /** 订åç¼ç */ @XmlElement(name = "OrderCode") private String orderCode; } src/main/java/org/jeecg/modules/wms/service/ReceiveWMSScanItemListService.java
@@ -1,8 +1,16 @@ package org.jeecg.modules.wms.service; import org.jeecg.modules.wms.dto.ReceiveMESScanItemListResponse; import org.jeecg.modules.wms.request.ReceiveMESScanItemList; import javax.jws.WebService; @WebService @WebService(name = "ReceiveWMSScanItemList", targetNamespace = "http://xhj008.server.webservice.com") public interface ReceiveWMSScanItemListService { /** * æ¥æ¶WMSç§»åºä¿¡æ¯ * @param request * @return */ ReceiveMESScanItemListResponse receiveWMSScanItemList(ReceiveMESScanItemList request); } src/main/java/org/jeecg/modules/wms/service/impl/ReceiveWMSScanItemListServiceImpl.java
@@ -1,14 +1,24 @@ 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.dto.ReceiveMESScanItemListResponse; import org.jeecg.modules.wms.request.ReceiveMESScanItemList; import org.jeecg.modules.wms.service.ReceiveWMSScanItemListService; import org.springframework.stereotype.Service; import javax.jws.WebService; @WebService(name = "ReceiveWMSScanItemListService", targetNamespace = "http://xhj008.server.webservice.com") @Slf4j @Service //@Service @WebService(name = "ReceiveWMSScanItemListService", targetNamespace = "http://xhj008.server.webservice.com", endpointInterface = "org.jeecg.modules.wms.service.ReceiveWMSScanItemListService") public class ReceiveWMSScanItemListServiceImpl implements ReceiveWMSScanItemListService { @Override @ApiLog(apiName = "æ¥æ¶WMSçç§»åºä¿¡æ¯(ReceiveWMSScanItemList(MES)", apiCategory = ApiLogCategoryEnum.WMS) public ReceiveMESScanItemListResponse receiveWMSScanItemList(ReceiveMESScanItemList request) { return new ReceiveMESScanItemListResponse(); } }