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