From b44955171ff4416a9041fd6b674800bfc4d8ee16 Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期一, 18 八月 2025 11:41:20 +0800
Subject: [PATCH] 安灯处理 ,安灯已处理列表,安灯数据模型 增加字段,安灯发起:新增发起人

---
 src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java      |   13 +++
 src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java                          |    3 
 src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml           |  125 +++++++++++++++++++++++--------
 src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java   |    5 +
 src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java                           |    3 
 src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java              |    8 ++
 src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java |   14 +++
 src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java                  |    9 ++
 src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java             |   18 ++++
 src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java           |    8 ++
 src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java          |   34 ++++++++
 11 files changed, 207 insertions(+), 33 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 921719b..f1b74a5 100644
--- a/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java
+++ b/src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java
@@ -102,7 +102,18 @@
         return Result.OK(list);
     }
 
-
+    /**
+     * APP瀹夌伅宸插鐞嗗垪琛ㄦ煡璇�
+     *
+     * @param factoryId
+     * @return
+     */
+    @ApiOperation(value = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ", notes = "瀹夌伅鍝嶅簲-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/queryUserAndonHandelList")
+    public Result<List<AndonButtonDTO>> queryUserAndonHandelList(@RequestParam("factoryId") String factoryId) {
+        List<AndonButtonDTO> list = andonButtonConfigService.queryUserAndonHandelList(factoryId);
+        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 3fbbe9c..9132c9f 100644
--- a/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java
+++ b/src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java
@@ -12,6 +12,8 @@
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.andon.entity.AndonOrder;
 import org.jeecg.modules.andon.service.IAndonOrderService;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -33,6 +35,8 @@
 public class AndonOrderController extends JeecgController<AndonOrder, IAndonOrderService> {
     @Autowired
     private IAndonOrderService andonOrderService;
+
+
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -87,6 +91,20 @@
         return Result.OK("鍝嶅簲鎴愬姛锛�");
     }
 
+
+    /**
+     * APP瀹夌伅澶勭悊鎿嶄綔
+     *
+     *
+     * @return
+     */
+    @ApiOperation(value = "APP瀹夌伅澶勭悊鎿嶄綔", notes = "APP瀹夌伅澶勭悊鎿嶄綔")
+    @PostMapping(value = "/AndonHandel")
+    public Result<String> AndonHandel(@RequestBody AndonOrder andonOrder) {
+        return andonOrderService.handleAndonOrder(andonOrder);
+    }
+
+
     /**
      * 缂栬緫
      *
diff --git a/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java b/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java
index 8c82ac8..044b1dd 100644
--- a/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java
+++ b/src/main/java/org/jeecg/modules/andon/dto/AndonButtonDTO.java
@@ -77,4 +77,7 @@
     @ApiModelProperty(value = "宸ュ崟鐘舵��")
     private String orderStatus;
 
+    @ApiModelProperty(value = "瀹夌伅鍙戣捣浜�")
+    private String operator;
+
 }
diff --git a/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java b/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java
index bdee167..e7e0331 100644
--- a/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java
+++ b/src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java
@@ -68,6 +68,7 @@
     private String buttonId;
 	/**瀹夌伅浜�*/
 	@Excel(name = "瀹夌伅浜�", width = 15)
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
     @ApiModelProperty(value = "瀹夌伅浜�")
     private String operator;
 	/**瀹夌伅鏃堕棿*/
@@ -82,6 +83,7 @@
     @ApiModelProperty(value = "瀹夌伅绛夌骇")
     private String andonLevel;
 	/**鍝嶅簲浜�*/
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
 	@Excel(name = "鍝嶅簲浜�", width = 15)
     @ApiModelProperty(value = "鍝嶅簲浜�")
     private String responder;
@@ -92,6 +94,7 @@
     @ApiModelProperty(value = "鍝嶅簲鏃堕棿")
     private Date responseTime;
 	/**澶勭悊浜�*/
+    @Dict(dictTable = "sys_user", dicCode = "id", dicText = "username")
 	@Excel(name = "澶勭悊浜�", width = 15)
     @ApiModelProperty(value = "澶勭悊浜�")
     private String processor;
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 47fab66..dbf50f1 100644
--- a/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java
+++ b/src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java
@@ -36,6 +36,14 @@
      */
     List<AndonButtonDTO> queryUserAndonRespondList(String factoryId);
 
+
+    /**
+     * 澶勭悊瀹夌伅鍒楄〃
+     * @param factoryId
+     * @return
+     */
+    List<AndonButtonDTO> queryUserAndonHandelList(String factoryId);
+
 }
 
 
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 fa2b139..0475bda 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
@@ -27,6 +27,7 @@
         on arc.button_id = abc.id
         where arc.factory_id=#{factoryId};
     </select>
+
     <select id="queryUserAndonCallList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">
         select arc.id,
                abc.id          as buttonId,
@@ -68,37 +69,6 @@
                  and ao.factory_id = arc.factory_id
                  and ao.order_status = '1') = 1
     </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 != '3') 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-->
-<!--            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 != '3'-->
-<!--            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 != '3') = 1-->
-<!--    </select>-->
 
     <select id="queryUserAndonRespondList" resultType="org.jeecg.modules.andon.dto.AndonButtonDTO">
         select arc.id,
@@ -128,7 +98,12 @@
                       WHERE ao.button_id = arc.button_id
                         and ao.factory_id = arc.factory_id
                         and ao.order_status = '2'
-                   FOR XML PATH ('')), 1, 1, '')    as orderStatus
+                   FOR XML PATH ('')), 1, 1, '')    as orderStatus,
+               (SELECT TOP 1 ao.operator
+                FROM andon_order ao
+                WHERE ao.button_id = arc.button_id
+                  and ao.factory_id = arc.factory_id
+                  and ao.order_status = '2')         as operator
         from andon_response_config arc
                  left join andon_button_config abc
                            on arc.button_id = abc.id
@@ -141,4 +116,90 @@
                  and ao.factory_id = arc.factory_id
                  and ao.order_status = '2') = 1
     </select>
+<!--    <select id="queryUserAndonRespondList" 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 = '2')        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 = '2'-->
+<!--                   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 = '2'-->
+<!--                   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 = '2') = 1-->
+<!--    </select>-->
+
+
+    <select id="queryUserAndonHandelList" 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 = '3')        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 = '3'
+                   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 = '3'
+                   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 = '3') = 1
+    </select>
+
+
 </mapper>
\ No newline at end of file
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 dca5f8f..500343c 100644
--- a/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java
+++ b/src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java
@@ -37,4 +37,12 @@
      */
     List<AndonButtonDTO> queryUserAndonRespondList(String factoryId);
 
+
+    /**
+     * 鏌ヨ鐢ㄦ埛鍙戣捣瀹夌伅澶勭悊鍒楄〃
+     * @param factoryId
+     * @return
+     */
+    List<AndonButtonDTO> queryUserAndonHandelList(String factoryId);
+
 }
diff --git a/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java b/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java
index 08a9fa5..c4485d3 100644
--- a/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java
+++ b/src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.andon.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.andon.entity.AndonOrder;
 
 import java.util.List;
@@ -22,4 +23,12 @@
      */
     String getPrimaryResponder(AndonOrder andonOrder);
 
+
+
+    /**
+     * 澶勭悊瀹夌伅宸ュ崟
+     * @param andonOrder
+     * @return
+     */
+    Result<String> handleAndonOrder(AndonOrder andonOrder);
 }
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 e6b670a..3dc9212 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
@@ -39,5 +39,10 @@
         return baseMapper.queryUserAndonRespondList(factoryId);
     }
 
+    @Override
+    public List<AndonButtonDTO> queryUserAndonHandelList(String factoryId) {
+        return baseMapper.queryUserAndonHandelList(factoryId);
+    }
+
 
 }
diff --git a/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java b/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java
index e12effd..e9b6a34 100644
--- a/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java
@@ -3,12 +3,14 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.andon.entity.AndonResponseConfig;
 import org.jeecg.modules.andon.mapper.AndonResponseConfigMapper;
 import org.jeecg.modules.andon.service.IAndonOrderService;
 import org.jeecg.modules.andon.entity.AndonOrder;
 import org.jeecg.modules.andon.mapper.AndonOrderMapper;
 import org.jeecg.modules.feishu.service.FeishuUserService;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -60,4 +62,36 @@
         return config.getFirsterResponder();
     }
 
+    @Override
+    public Result<String> handleAndonOrder(AndonOrder andonOrder) {
+
+        // 璁剧疆宸ュ崟鐘舵�佷负澶勭悊涓�
+        andonOrder.setOrderStatus("3");
+
+        // 鑾峰彇鍝嶅簲鑰呯敤鎴峰悕
+        String responderUsername = andonOrder.getResponder();
+
+        // 楠岃瘉鍝嶅簲鑰呯敤鎴峰悕涓嶄负绌�
+        if (StringUtils.isBlank(responderUsername)) {
+            return Result.error("鍝嶅簲鑰呬俊鎭笉鑳戒负绌�");
+        }
+
+        // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴蜂俊鎭�
+        SysUser sysUser = sysUserService.getOne(
+                new QueryWrapper<SysUser>().eq("username", responderUsername)
+        );
+
+        // 楠岃瘉鐢ㄦ埛鏄惁瀛樺湪
+        if (sysUser == null) {
+            return Result.error("鎵句笉鍒扮敤鎴峰悕涓� " + responderUsername + " 鐨勭敤鎴�");
+        }
+        // 璁剧疆鍝嶅簲鑰匢D
+        andonOrder.setResponder(sysUser.getId());
+        andonOrder.setProcessor(sysUser.getId());
+        // 鏇存柊宸ュ崟淇℃伅
+        this.updateById(andonOrder);
+
+        return Result.OK("澶勭悊鎴愬姛");
+    }
+
 }
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 926ae5f..f6f23ae 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
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.andon.dto.AndonButtonDTO;
 import org.jeecg.modules.andon.entity.AndonButtonConfig;
 import org.jeecg.modules.andon.entity.AndonOrder;
@@ -61,6 +63,10 @@
             throw new IllegalArgumentException("璇锋眰鍙傛暟涓嶈兘涓虹┖");
         }
         /**
+         * 璁剧疆瀹夌伅浜�
+         */
+
+        /**
          * 2. 鑾峰彇鍝嶅簲閰嶇疆
          */
         AndonResponseConfig andonResponseConfig = this.getById(andonButtonDTO.getId());
@@ -70,6 +76,14 @@
             log.warn("鏈壘鍒癐D涓篬{}]鐨勫畨鐏鍗�");
             throw new IllegalArgumentException("鏈壘鍒板搴旂殑瀹夌伅璁㈠崟");
         }
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (loginUser != null) {
+            log.warn("鏈壘鍒板綋鍓嶇敤鎴�");
+
+        }
+        assert loginUser != null;
+        andonOrder.setResponder(loginUser.getId());
         String orderStatus = andonOrder.getOrderStatus();
         andonButtonDTO.setOrderStatus(orderStatus);
         if (andonResponseConfig == null) {

--
Gitblit v1.9.3