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.WSResponse; import org.jeecg.modules.wms.request.*; import org.jeecg.modules.wms.service.MESWebServiceSoap; import org.jeecg.modules.wms.service.WMSWebServiceClient; import org.springframework.beans.factory.annotation.Autowired; 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 { @Autowired private WMSWebServiceClient webServiceClient; private final static String localUrl = "http://localhost:9989/ebservice/ReceiveWMSScanItemList?wsdl"; @ApiOperation(value = "WMS集成测试-接收WMS移库结果", notes = "WMS集成测试-接收WMS移库结果") @PostMapping("/testReceiveWMSScanItemList") public Result testReceiveWMSScanItemList(@RequestBody List 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); } @ApiOperation(value = "WMS集成测试-HelloWord测试", notes = "WMS集成测试-HelloWord测试") @PostMapping("/testHelloWorld") public Result testHelloWorld() { // JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // factory.setAddress(url); // factory.setServiceClass(WebServiceSoap.class); // WebServiceSoap service = (WebServiceSoap) factory.create(); // String response = service.helloWorld(); // return Result.ok(response); // WebServiceSoap port = webService.getWebServiceSoap(); // 2. 获取 CXF 底层 Client 对象 // Client client = ClientProxy.getClient(port); // 3. 获取 HTTPConduit 并设置超时 // HTTPConduit http = (HTTPConduit) client.getConduit(); // HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // // httpClientPolicy.setConnectionTimeout(10 * 1000); // 连接超时 10 秒 // httpClientPolicy.setReceiveTimeout(300 * 1000); // 读取超时 60 秒(重点!) // http.setClient(httpClientPolicy); Map stringObjectMap = webServiceClient.helloWorld(); return Result.ok(stringObjectMap); } @ApiOperation(value = "WMS集成测试-物料拉动", notes = "WMS集成测试-物料拉动") @PostMapping("/receiveReservation") public Result receiveReservation(@RequestBody WebReservationOrder request) { Map stringObjectMap = webServiceClient.receiveReservation(request); return Result.ok(stringObjectMap); } @ApiOperation(value = "WMS集成测试-移库申请", notes = "WMS集成测试-移库申请") @PostMapping("/receiveMESScanItemList") public Result receiveMESScanItemList(@RequestBody List webServiceSendItem) { ArrayOfWebServiceSendItem request = new ArrayOfWebServiceSendItem(); request.setWebServiceSendItem(webServiceSendItem); Map 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 stringObjectMap = webServiceClient.deliOrderDelete(sFactoryCode, sStockRecord); return Result.ok(stringObjectMap); } }