From 43f0e69715099cfc8c8b8ea5284b874bfad14400 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 19 八月 2025 10:49:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java | 13 + src/main/java/org/jeecg/modules/andon/dto/AndonOrdeDto.java | 151 +++++++++++++++++++++ src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml | 59 ++----- src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java | 14 + src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java | 4 src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java | 8 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/base/service/impl/FactoryServiceImpl.java | 2 src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java | 55 +++++++ src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java | 8 src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java | 27 +++ 12 files changed, 311 insertions(+), 85 deletions(-) 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(); } -- Gitblit v1.9.3