From fe891f627a483eb6298f12eca60cf7f274e31c88 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期三, 20 八月 2025 16:54:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java | 2 src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java | 18 + src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java | 34 +- .gitignore | 1 src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java | 14 src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java | 2 src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java | 20 src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java | 35 ++ src/main/java/org/jeecg/modules/wms/WMSWebService.java | 7 src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java | 27 ++ src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java | 13 src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java | 75 ++++++ src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java | 8 src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java | 5 src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java | 71 +++-- src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java | 8 src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java | 6 src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java | 151 ++++++++++++ src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java | 4 src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java | 36 +++ src/main/java/org/jeecg/common/aspect/ApiLogAspect.java | 10 src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml | 59 +--- src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java | 2 src/main/java/org/jeecg/modules/wms/dto/WSResponse.java | 6 src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java | 55 ++++ 25 files changed, 523 insertions(+), 146 deletions(-) diff --git a/.gitignore b/.gitignore index b7838ca..a8837ab 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ os_del_doc.cmd .svn derby.log +.gitignore \ No newline at end of file diff --git a/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java b/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java index 2651f1a..a3539e8 100644 --- a/src/main/java/org/jeecg/common/aspect/ApiLogAspect.java +++ b/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); diff --git a/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java b/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java index f1b74a5..81b45b1 100644 --- a/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java +++ b/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java @@ -11,6 +11,7 @@ import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonButtonConfig; import org.jeecg.modules.andon.service.IAndonButtonConfigService; import org.jeecg.modules.andon.service.impl.AndonOrderServiceImpl; @@ -84,8 +85,8 @@ */ @ApiOperation(value = "瀹夌伅鍙戣捣-鍒嗛〉鍒楄〃鏌ヨ", notes = "瀹夌伅鍙戣捣-鍒嗛〉鍒楄〃鏌ヨ") @GetMapping(value = "/queryUserAndonCallList") - public Result<List<AndonButtonDTO>> queryUserAndonCallList(@RequestParam("factoryId") String factoryId) { - List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonCallList(factoryId); + public Result<List<AndonOrdeDto>> queryUserAndonCallList(@RequestParam("factoryId") String factoryId, @RequestParam("orderStatus") String orderStatus) { + List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonCallList(factoryId,orderStatus); return Result.OK(list); } @@ -97,8 +98,8 @@ */ @ApiOperation(value = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ", notes = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ") @GetMapping(value = "/queryUserAndonRespondList") - public Result<List<AndonButtonDTO>> queryUserAndonRespondList(@RequestParam("factoryId") String factoryId) { - List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonRespondList(factoryId); + public Result<List<AndonOrdeDto>> queryUserAndonRespondList(@RequestParam("factoryId") String factoryId, @RequestParam("orderStatus") String orderStatus) { + List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonRespondList(factoryId,orderStatus); return Result.OK(list); } @@ -110,8 +111,8 @@ */ @ApiOperation(value = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ", notes = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ") @GetMapping(value = "/queryUserAndonHandelList") - public Result<List<AndonButtonDTO>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId) { - List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonHandelList(factoryId); + public Result<List<AndonOrdeDto>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId ,@RequestParam("orderStatus") String orderStatus) { + List<AndonOrdeDto> list = andonButtonConfigService.queryUserAndonHandelList(factoryId,orderStatus); return Result.OK(list); } /** diff --git a/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java b/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java index 9132c9f..2b8e922 100644 --- a/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java +++ b/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java @@ -6,12 +6,16 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonOrder; import org.jeecg.modules.andon.service.IAndonOrderService; +import org.jeecg.modules.andon.service.IAndonResponseConfigService; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.sql.Date; import java.util.Arrays; /** @@ -37,6 +42,8 @@ private IAndonOrderService andonOrderService; + @Autowired + private IAndonResponseConfigService andonResponseConfigService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -71,21 +78,62 @@ @ApiOperation(value = "瀹夌伅宸ュ崟-娣诲姞", notes = "瀹夌伅宸ュ崟-娣诲姞") @PostMapping(value = "/add") public Result<String> add(@RequestBody AndonOrder andonOrder) { + // 鏍规嵁button_id鏌ヨ瀵瑰簲鐨勪骇绾縄D + if (andonOrder.getButtonId() != null) { + String productionLineId = andonResponseConfigService.getProductionLineIdByButtonId(andonOrder.getButtonId()); + if (productionLineId != null) { + andonOrder.setFactoryId(productionLineId); + } + } andonOrderService.save(andonOrder); return Result.OK("娣诲姞鎴愬姛锛�"); } /** + * 娣诲姞 + * + * @param andonOrder + * @return + */ + @AutoLog(value = "瀹夌伅APP宸ュ崟-娣诲姞") + @ApiOperation(value = "瀹夌伅APP宸ュ崟-娣诲姞", notes = "瀹夌伅APP宸ュ崟-娣诲姞") + @PostMapping(value = "/app/add") + public Result<String> appAdd(@RequestBody AndonOrder andonOrder) { + // 鏍规嵁button_id鏌ヨ瀵瑰簲鐨勪骇绾縄D + andonOrder.setAndonLevel("1"); + andonOrder.setFactoryId(andonOrder.getFactoryId()); + andonOrder.setOperator(andonOrder.getOperator()); + String Responder = andonResponseConfigService.getResponderByButtonId(andonOrder.getButtonId(),andonOrder.getFactoryId()); + andonOrder.setResponder(Responder); + andonOrder.setProcessor(Responder); + andonOrder.setOperateTime(new java.sql.Timestamp(System.currentTimeMillis())); + andonOrderService.save(andonOrder); + // 鍒涘缓AndonOrderDto瀵硅薄骞跺鍒跺睘鎬� + AndonOrdeDto andonOrderDto = new AndonOrdeDto(); + // 澶嶅埗蹇呰灞炴�у埌Dto瀵硅薄 + andonOrderDto.setId(andonOrder.getId()); + andonOrderDto.setButtonId(andonOrder.getButtonId()); + andonOrderDto.setFactoryId(andonOrder.getFactoryId()); + andonOrderDto.setOperator(andonOrder.getOperator()); + andonOrderDto.setResponder(andonOrder.getResponder()); + andonOrderDto.setProcessor(andonOrder.getProcessor()); + andonOrderDto.setAndonLevel(andonOrder.getAndonLevel()); + andonOrderDto.setOperateTime(andonOrder.getOperateTime()); + andonResponseConfigService.sendAndonNotification(andonOrderDto); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** * APP瀹夌伅鍝嶅簲鎿嶄綔 * - * @param orderId + * @param id * @return */ @ApiOperation(value = "APP瀹夌伅鍝嶅簲鎿嶄綔", notes = "APP瀹夌伅鍝嶅簲鎿嶄綔") @GetMapping(value = "/AndonRespond") - public Result<String> AndonRespond(@RequestParam("orderId") String orderId) { - AndonOrder andonOrder = andonOrderService.getById(orderId); + public Result<String> AndonRespond(@RequestParam("id") String id) { + AndonOrder andonOrder = andonOrderService.getById(id); andonOrder.setOrderStatus("2"); andonOrderService.updateById(andonOrder); return Result.OK("鍝嶅簲鎴愬姛锛�"); @@ -94,7 +142,6 @@ /** * APP瀹夌伅澶勭悊鎿嶄綔 - * * * @return */ diff --git a/src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java b/src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java index 976af22..5fa20d7 100644 --- a/src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java +++ b/src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java @@ -11,6 +11,7 @@ import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonResponseConfig; import org.jeecg.modules.andon.service.IAndonResponseConfigService; import org.springframework.beans.factory.annotation.Autowired; @@ -68,9 +69,8 @@ @AutoLog(value = "瀹夌伅宸ュ崟-鍙戦�侀涔︽秷鎭�") @ApiOperation(value = "瀹夌伅宸ュ崟-鍙戦�侀涔︽秷鎭�", notes = "瀹夌伅宸ュ崟-鍙戦�侀涔︽秷鎭�") @PostMapping(value = "/sendMessage") - public Result<String> sendMessage(@RequestBody AndonButtonDTO andonButtonDTO) { + public Result<String> sendMessage(@RequestBody AndonOrdeDto andonButtonDTO) { try { - andonButtonDTO.setBlinkingFlag(1); // 璋冪敤鏈嶅姟灞傚鐞嗕笟鍔¢�昏緫 andonResponseConfigService.sendAndonNotification(andonButtonDTO); return Result.OK("娣诲姞鎴愬姛锛�"); diff --git a/src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java b/src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java new file mode 100644 index 0000000..413a18e --- /dev/null +++ b/src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java @@ -0,0 +1,151 @@ +package org.jeecg.modules.andon.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +@Data +public class AndonOrdeDto { + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鏇存柊鏃ユ湡") + private Date updateTime; + /**鍒犻櫎鏍囪*/ + + @ApiModelProperty(value = "鍒犻櫎鏍囪") + @TableLogic + private Integer delFlag; + /**浜х嚎ID*/ + + @ApiModelProperty(value = "浜х嚎ID") + @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name") + private String factoryId; + /**瀹夌伅绫诲瀷*/ + + @ApiModelProperty(value = "瀹夌伅绫诲瀷") + @Dict(dictTable = "andon_button_config", dicCode = "id", dicText = "button_name") + private String buttonId; + /**瀹夌伅浜�*/ + + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") + @ApiModelProperty(value = "瀹夌伅浜�") + private String operator; + /**瀹夌伅鏃堕棿*/ + + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "瀹夌伅鏃堕棿") + private Date operateTime; + /**瀹夌伅绛夌骇*/ + + @Dict(dicCode = "andon_level") + @ApiModelProperty(value = "瀹夌伅绛夌骇") + private String andonLevel; + /**鍝嶅簲浜�*/ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") + + @ApiModelProperty(value = "鍝嶅簲浜�") + private String responder; + /**鍝嶅簲鏃堕棿*/ + + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鍝嶅簲鏃堕棿") + private Date responseTime; + /**澶勭悊浜�*/ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username") + + @ApiModelProperty(value = "澶勭悊浜�") + private String processor; + /**澶勭悊瀹屾垚鏃堕棿*/ + + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "澶勭悊瀹屾垚鏃堕棿") + private Date processTime; + /**瀹夌伅鐘舵��*/ + + @Dict(dicCode = "order_status") + @ApiModelProperty(value = "瀹夌伅鐘舵��") + private String orderStatus; + /**闂鎻忚堪*/ + + @ApiModelProperty(value = "闂鎻忚堪") + private String problemDescreption; + /**澶勭悊缁撴灉鎻忚堪*/ + + @ApiModelProperty(value = "澶勭悊缁撴灉鎻忚堪") + private String resolutionDescreption; + @ApiModelProperty(value = "涓�绾у搷搴斾汉openId") + private String responderOpenId; + + @ApiModelProperty(value = "浜岀骇鍝嶅簲浜簅penId") + private String secondResponderOpenId; + + @ApiModelProperty(value = "涓夌骇鍝嶅簲浜簅penId") + private String thirdResponderOpenId; + + + + @ApiModelProperty(value = "涓夌骇鍝嶅簲浜�") + private String thirdResponder; + + + + @ApiModelProperty(value = "浜岀骇鍝嶅簲浜�") + private String secondResponder; + /**浜х嚎鍚嶇О*/ + @ApiModelProperty(value = "浜х嚎鍚嶇О") + private String factoryName; + + /**浜х嚎鍚嶇О*/ + @ApiModelProperty(value = "宸ュ巶鍚嶇О") + private String parentFactoryName; + + /**涓�绾у搷搴旀椂闀�*/ + @ApiModelProperty(value = "涓�绾у搷搴旀椂闀�") + private Integer upgradeResponseDuration; + + + /**鎸夐挳鍚嶇О*/ + @ApiModelProperty(value = "鎸夐挳鍚嶇О") + private String buttonName; + + + + /** + * 瀹夌伅浜哄悕绉� + */ + @ApiModelProperty(value = "瀹夌伅浜哄悕绉�") + private String operatorName; + + /**浜岀骇鍝嶅簲鏃堕暱*/ + @ApiModelProperty(value = "浜岀骇鍝嶅簲鏃堕暱") + private Integer secondUpgradeResponseDuration; + + /**涓夌骇绾у搷搴旀椂闀�*/ + @ApiModelProperty(value = "涓夌骇鍝嶅簲鏃堕暱") + private Integer thirdUpgradeResponseDuration; +} diff --git a/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java b/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java index dbf50f1..26f8842 100644 --- a/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java +++ b/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonButtonConfig; import java.util.List; @@ -27,22 +28,21 @@ * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonCallList(String factoryId); + List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus); /** * 鍝嶅簲瀹夌伅鍒楄〃 * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonRespondList(String factoryId); - + List<AndonOrdeDto> queryUserAndonRespondList(String factoryId, String orderStatus); /** * 澶勭悊瀹夌伅鍒楄〃 * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonHandelList(String factoryId); + List<AndonOrdeDto> queryUserAndonHandelList(String factoryId, String orderStatus); } diff --git a/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml b/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml index 0475bda..48ff89d 100644 --- a/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml +++ b/src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml @@ -28,49 +28,26 @@ where arc.factory_id=#{factoryId}; </select> - <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO"> - select arc.id, - abc.id as buttonId, - abc.button_name as buttonName, - abc.button_code as buttonCode, - (select count(1) - from andon_order ao - where ao.button_id = arc.button_id - and ao.factory_id = arc.factory_id - and ao.order_status = '1') as blinkingFlag, - STUFF((SELECT ',' + CAST (ao.id AS VARCHAR) - FROM andon_order ao - WHERE ao.button_id = arc.button_id - and ao.factory_id = arc.factory_id - and ao.order_status = '1' - FOR XML PATH ('')), 1, 1, '') as orderIds, - bf.factory_name as factoryName, - parent_bf.factory_name as parentFactoryName, - abc.upgrade_response_duration as upgradeResponseDuration, - abc.second_upgrade_response_duration as secondUpgradeResponseDuration, - arc.firster_responder as responder, - arc.second_responder, - arc.third_responder, - STUFF((SELECT ',' + ao.order_status - FROM andon_order ao - WHERE ao.button_id = arc.button_id - and ao.factory_id = arc.factory_id - and ao.order_status = '1' - FOR XML PATH ('')), 1, 1, '') as orderStatus - from andon_response_config arc - left join andon_button_config abc - on arc.button_id = abc.id - left join base_factory bf on arc.factory_id = bf.id - left join base_factory parent_bf on bf.parent_id = parent_bf.id - where arc.factory_id=#{factoryId} - and (select count (1) - from andon_order ao - where ao.button_id = arc.button_id - and ao.factory_id = arc.factory_id - and ao.order_status = '1') = 1 + <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonOrdeDto"> + SELECT + ao.*, + bf.factory_name as factoryName, + parent_bf.factory_name as parentFactoryName, + abc.button_name as buttonName, + abc.upgrade_response_duration as upgradeResponseDuration, + abc.second_upgrade_response_duration as secondUpgradeResponseDuration, + su.username as operatorName + FROM andon_order ao + LEFT JOIN base_factory bf ON ao.factory_id = bf.id + LEFT JOIN base_factory parent_bf ON bf.parent_id = parent_bf.id + LEFT JOIN andon_button_config abc ON ao.button_id = abc.id + LEFT JOIN sys_user su ON ao.operator = su.id + WHERE ao.factory_id = #{factoryId} + AND ao.del_flag = 0 + AND ao.order_status = #{orderStatus} </select> - <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO"> + <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonOrdeDto"> select arc.id, abc.id as buttonId, abc.button_name as buttonName, diff --git a/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java b/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java index 500343c..1ff6772 100644 --- a/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java +++ b/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonButtonConfig; import java.util.List; @@ -28,21 +29,20 @@ * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonCallList(String factoryId); + List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus); /** * 鏌ヨ鐢ㄦ埛鍙戣捣瀹夌伅鍝嶅簲鍒楄〃 * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonRespondList(String factoryId); - + List<AndonOrdeDto> queryUserAndonRespondList(String factoryId,String orderStatus); /** * 鏌ヨ鐢ㄦ埛鍙戣捣瀹夌伅澶勭悊鍒楄〃 * @param factoryId * @return */ - List<AndonButtonDTO> queryUserAndonHandelList(String factoryId); + List<AndonOrdeDto> queryUserAndonHandelList(String factoryId,String orderStatus); } diff --git a/src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java b/src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java index 58aa6bb..ff3ccd3 100644 --- a/src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java +++ b/src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; +import org.jeecg.modules.andon.entity.AndonOrder; import org.jeecg.modules.andon.entity.AndonResponseConfig; import java.util.List; @@ -17,11 +19,34 @@ + /** + * 鏍规嵁button_id鑾峰彇浜х嚎ID + * @param buttonId + * @return + */ + String getProductionLineIdByButtonId(String buttonId); + + /** + * 鏍规嵁button_id鑾峰彇鍝嶅簲浜� + * @param buttonId + * @return + */ + String getResponderByButtonId(String buttonId,String factoryId); + + + /** + * 鏍规嵁button_id鍜宖actory_id鑾峰彇鍝嶅簲閰嶇疆瀵硅薄 + * @param buttonId 鎸夐挳ID + * @param factoryId 宸ュ巶/浜х嚎ID + * @return AndonResponseConfig 鍝嶅簲閰嶇疆瀵硅薄 + */ + AndonResponseConfig getResponseConfigByButtonIdAndFactoryId(String buttonId, String factoryId); + /** * 鍙戦�佸畨鐏�氱煡 * @param andonButtonDTO 瀹夌伅鎸夐挳DTO * @return 缁撴灉 */ - void sendAndonNotification(AndonButtonDTO andonButtonDTO); + void sendAndonNotification(AndonOrdeDto andonButtonDTO); } diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java index 3dc9212..c1eea0f 100644 --- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java +++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java @@ -1,7 +1,9 @@ package org.jeecg.modules.andon.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import liquibase.pro.packaged.S; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonButtonConfig; import org.jeecg.modules.andon.mapper.AndonButtonConfigMapper; import org.jeecg.modules.andon.service.IAndonButtonConfigService; @@ -30,18 +32,18 @@ } @Override - public List<AndonButtonDTO> queryUserAndonCallList(String factoryId) { - return baseMapper.queryUserAndonCallList(factoryId); + public List<AndonOrdeDto> queryUserAndonCallList(String factoryId, String orderStatus) { + return baseMapper.queryUserAndonCallList(factoryId, orderStatus); } @Override - public List<AndonButtonDTO> queryUserAndonRespondList(String factoryId) { - return baseMapper.queryUserAndonRespondList(factoryId); + public List<AndonOrdeDto> queryUserAndonRespondList(String factoryId, String orderStatus) { + return baseMapper.queryUserAndonRespondList(factoryId, orderStatus); } @Override - public List<AndonButtonDTO> queryUserAndonHandelList(String factoryId) { - return baseMapper.queryUserAndonHandelList(factoryId); + public List<AndonOrdeDto> queryUserAndonHandelList(String factoryId, String orderStatus) { + return baseMapper.queryUserAndonHandelList(factoryId, orderStatus); } diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java index f6f23ae..5129363 100644 --- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java +++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java @@ -6,6 +6,7 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.andon.entity.AndonButtonConfig; import org.jeecg.modules.andon.entity.AndonOrder; import org.jeecg.modules.andon.entity.AndonResponseConfig; @@ -51,10 +52,35 @@ return baseMapper.getAndonResponseConfigByFactoryIdAndButtonId(factoryId, buttonId); } + @Override + public String getProductionLineIdByButtonId(String buttonId) { + QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("button_id", buttonId); + AndonResponseConfig config = this.getOne(queryWrapper); + return config != null ? config.getFactoryId() : null; + } + + @Override + public String getResponderByButtonId(String buttonId,String factoryId) { + QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("button_id", buttonId); + queryWrapper.eq("factory_id", factoryId); // 鍋囪factory_id瀵瑰簲浜х嚎ID + AndonResponseConfig config = this.getOne(queryWrapper, false); + return config != null ? config.getFirsterResponder() : null; + } + + @Override + public AndonResponseConfig getResponseConfigByButtonIdAndFactoryId(String buttonId, String factoryId) { + QueryWrapper<AndonResponseConfig> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("button_id", buttonId); + queryWrapper.eq("factory_id", factoryId); + // 浣跨敤false鍙傛暟锛屽綋鏌ヨ鍒板鏉¤褰曟椂涓嶄細鎶涘嚭寮傚父锛岃�屾槸杩斿洖绗竴鏉� + return this.getOne(queryWrapper, false); + } @Override - public void sendAndonNotification(AndonButtonDTO andonButtonDTO) { + public void sendAndonNotification(AndonOrdeDto andonButtonDTO) { /** * 1. 楠岃瘉宸ュ崟鐘舵�� */ @@ -62,16 +88,13 @@ log.warn("璇锋眰鍙傛暟涓虹┖"); throw new IllegalArgumentException("璇锋眰鍙傛暟涓嶈兘涓虹┖"); } - /** - * 璁剧疆瀹夌伅浜� - */ /** * 2. 鑾峰彇鍝嶅簲閰嶇疆 */ - AndonResponseConfig andonResponseConfig = this.getById(andonButtonDTO.getId()); + AndonResponseConfig andonResponseConfig = getResponseConfigByButtonIdAndFactoryId(andonButtonDTO.getButtonId(), andonButtonDTO.getFactoryId()); - AndonOrder andonOrder = andonOrderService.getById(andonButtonDTO.getOrderIds()); + AndonOrder andonOrder = andonOrderService.getById(andonButtonDTO.getId()); if (andonOrder == null) { log.warn("鏈壘鍒癐D涓篬{}]鐨勫畨鐏鍗�"); throw new IllegalArgumentException("鏈壘鍒板搴旂殑瀹夌伅璁㈠崟"); diff --git a/src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java b/src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java index 9d4268d..a275e49 100644 --- a/src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java +++ b/src/main/java/org/jeecg/modules/base/service/impl/FactoryServiceImpl.java @@ -192,7 +192,7 @@ 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, "3"); queryWrapper.in(Factory::getId, list); queryWrapper.orderByAsc(Factory::getSorter); return super.list(queryWrapper); diff --git a/src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java b/src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java index 92d6b09..4492d4d 100644 --- a/src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java +++ b/src/main/java/org/jeecg/modules/feishu/service/FeishuUserService.java @@ -5,7 +5,7 @@ import org.jeecg.common.util.PasswordUtil; import org.jeecg.common.util.RestUtil; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.andon.dto.AndonButtonDTO; +import org.jeecg.modules.andon.dto.AndonOrdeDto; import org.jeecg.modules.mes.entity.FeishuUser; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysUserService; @@ -139,7 +139,7 @@ * 2. 涓�绾у搷搴旀椂闀垮悗妫�鏌ョ姸鎬侊紝鏈鐞嗗垯鍙戦�佷簩绾� * 3. 浜岀骇鍝嶅簲鏃堕暱鍚庢鏌ョ姸鎬侊紝鏈鐞嗗垯鍙戦�佷笁绾� */ - public boolean sendAndonNotification(String accessToken, AndonButtonDTO andonOrde) { + public boolean sendAndonNotification(String accessToken, AndonOrdeDto andonOrde) { try { String currentTime = sdf.format(new Date()); log.info("銆恵}銆戣Е鍙戜竴绾у搷搴旓紙鍒濈骇鍝嶅簲锛夛紝瀹夌伅ID: {}", currentTime, andonOrde.getId()); @@ -178,7 +178,7 @@ * 鍙戦�佹寚瀹氱骇鍒殑閫氱煡 * @param level 1-涓�绾э紝2-浜岀骇锛�3-涓夌骇 */ - private boolean sendLevelNotification(String accessToken, AndonButtonDTO andonOrde, int level) { + private boolean sendLevelNotification(String accessToken, AndonOrdeDto andonOrde, int level) { try { String levelDesc = getLevelDesc(level); String openId = getResponderOpenId(andonOrde, level); @@ -250,7 +250,7 @@ * @param currentLevel 褰撳墠绾у埆 * @param delayMinutes 寤惰繜鍒嗛挓鏁帮紙鐢卞綋鍓嶇骇鍒搷搴旀椂闀垮喅瀹氾級 */ - private void scheduleNextLevelNotification(String accessToken, AndonButtonDTO andonOrde, int currentLevel, int delayMinutes) { + private void scheduleNextLevelNotification(String accessToken, AndonOrdeDto andonOrde, int currentLevel, int delayMinutes) { int nextLevel = currentLevel + 1; if (nextLevel > 3) { log.info("宸插埌杈炬渶楂樼骇鍒�氱煡锛屾棤闇�缁х画璋冨害锛屽畨鐏疘D: {}", andonOrde.getId()); @@ -306,7 +306,7 @@ /** * 鏋勫缓閫氱煡鍐呭锛堜紭鍖栧垎闅旂锛屾彁鍗囧彲璇绘�э級 */ - private String buildNotificationContent(AndonButtonDTO andonOrde, int level) { + private String buildNotificationContent(AndonOrdeDto andonOrde, int level) { // 鑾峰彇宸ュ巶鍚嶇О鍜屼骇绾垮悕绉帮紝鍋氱┖鍊间繚鎶� String parentFactoryName = andonOrde.getParentFactoryName() != null ? andonOrde.getParentFactoryName() : "鏈煡宸ュ巶"; String factoryName = andonOrde.getFactoryName() != null ? andonOrde.getFactoryName() : "鏈煡浜х嚎"; @@ -358,7 +358,7 @@ /** * 楠岃瘉閫氱煡鐩稿叧鍙傛暟 */ - private boolean validateNotificationParams(AndonButtonDTO andonOrde) { + private boolean validateNotificationParams(AndonOrdeDto andonOrde) { if (andonOrde == null) { log.error("瀹夌伅璁㈠崟淇℃伅涓虹┖"); return false; @@ -401,7 +401,7 @@ } // 宸ュ叿鏂规硶锛氳幏鍙栧搷搴斾汉openId - private String getResponderOpenId(AndonButtonDTO andonOrde, int level) { + private String getResponderOpenId(AndonOrdeDto andonOrde, int level) { switch (level) { case 1: return andonOrde.getResponderOpenId(); case 2: return andonOrde.getSecondResponderOpenId(); @@ -411,7 +411,7 @@ } // 宸ュ叿鏂规硶锛氳幏鍙栧搷搴斾汉鍚嶇О - private String getResponderName(AndonButtonDTO andonOrde, int level) { + private String getResponderName(AndonOrdeDto andonOrde, int level) { String name = null; switch (level) { case 1: @@ -430,7 +430,7 @@ } // 宸ュ叿鏂规硶锛氳幏鍙栧搷搴旀椂闀匡紙涓�绾�=浜岀骇寤惰繜锛屼簩绾�=涓夌骇寤惰繜锛� - private int getResponseDuration(AndonButtonDTO andonOrde, int level) { + private int getResponseDuration(AndonOrdeDto andonOrde, int level) { int duration = 0; switch (level) { case 1: @@ -449,7 +449,7 @@ } // 宸ュ叿鏂规硶锛氬垽鏂寚瀹氱骇鍒搷搴斾汉鏄惁鏈夋晥 - private boolean hasValidResponder(AndonButtonDTO andonOrde, int level) { + private boolean hasValidResponder(AndonOrdeDto andonOrde, int level) { String openId = getResponderOpenId(andonOrde, level); return openId != null && !openId.isEmpty(); } diff --git a/src/main/java/org/jeecg/modules/wms/WMSWebService.java b/src/main/java/org/jeecg/modules/wms/WMSWebService.java index bc9d3f2..d66b206 100644 --- a/src/main/java/org/jeecg/modules/wms/WMSWebService.java +++ b/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; } diff --git a/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java b/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java index 08d60e0..9732f55 100644 --- a/src/main/java/org/jeecg/modules/wms/controller/WMSTestController.java +++ b/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); + } + } diff --git a/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java b/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java index 0d55fcf..873f3ca 100644 --- a/src/main/java/org/jeecg/modules/wms/dto/WSResponse.java +++ b/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; } diff --git a/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java b/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java index 98f4d53..1567fbb 100644 --- a/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java +++ b/src/main/java/org/jeecg/modules/wms/request/ArrayOfWebServiceSendItem.java @@ -34,7 +34,7 @@ }) public class ArrayOfWebServiceSendItem { - @XmlElement(name = "WebServiceSendItem", nillable = true) + @XmlElement(name = "WebServiceSendItem", nillable = true, namespace = "http://tempuri.org/") protected List<WebServiceSendItem> webServiceSendItem; /** @@ -66,4 +66,7 @@ return this.webServiceSendItem; } + public void setWebServiceSendItem(List<WebServiceSendItem> webServiceSendItem) { + this.webServiceSendItem = webServiceSendItem; + } } diff --git a/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java b/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java index 8977c4b..b7207a9 100644 --- a/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java +++ b/src/main/java/org/jeecg/modules/wms/request/ReceiveMESScanItemList.java @@ -35,6 +35,6 @@ @Setter public class ReceiveMESScanItemList { - @XmlElement(name = "oMESScanItemList") + @XmlElement(name = "oMESScanItemList", namespace = "http://tempuri.org/") protected ArrayOfWebServiceSendItem omesScanItemList; } diff --git a/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java b/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java index d38ae84..d3e2ece 100644 --- a/src/main/java/org/jeecg/modules/wms/request/ReceiveReservation.java +++ b/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; } diff --git a/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java b/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java index 2f962be..017faae 100644 --- a/src/main/java/org/jeecg/modules/wms/request/WebReservationOrder.java +++ b/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 + + '}'; + } } diff --git a/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java b/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java index ab7e44e..329b80e 100644 --- a/src/main/java/org/jeecg/modules/wms/request/WebServiceSendItem.java +++ b/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; } diff --git a/src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java b/src/main/java/org/jeecg/modules/wms/service/WMSWebServiceClient.java new file mode 100644 index 0000000..df2a6ea --- /dev/null +++ b/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); +} diff --git a/src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java b/src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java index 84aba91..4d9887d 100644 --- a/src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java +++ b/src/main/java/org/jeecg/modules/wms/service/WebServiceSoap.java @@ -46,7 +46,7 @@ WSResponse receiveMESScanItemList( @WebParam(name = "oMESScanItemList", targetNamespace = "http://tempuri.org/") - ArrayOfWebServiceSendItem oMESScanItemList + ArrayOfWebServiceSendItem omesScanItemList ); @WebMethod(operationName = "DeliOrderDelete", action = "http://tempuri.org/DeliOrderDelete") diff --git a/src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java b/src/main/java/org/jeecg/modules/wms/service/impl/WMSWebServiceClientImpl.java new file mode 100644 index 0000000..db42e31 --- /dev/null +++ b/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; + } +} -- Gitblit v1.9.3