From c0f154bf627e355b2a1b5e89c41ae391b3b7e2a6 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 07 五月 2026 10:02:08 +0800
Subject: [PATCH] 修改报警记录方式

---
 version/db/new.sql                                                                               |    4 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java                 |    1 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java                  |    5 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java          |    5 ++
 zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml                           |   19 +++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java |   12 ++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java            |    4 ++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java                 |   41 ++++++++++++++------
 8 files changed, 78 insertions(+), 13 deletions(-)

diff --git a/version/db/new.sql b/version/db/new.sql
index 6339ce1..f8a0078 100644
--- a/version/db/new.sql
+++ b/version/db/new.sql
@@ -108,3 +108,7 @@
 
 alter table sys_user_login
     change system system_name varchar(255) null comment '鐧诲綍绯荤粺';
+
+
+ALTER TABLE `rcs_ctu_stable`.`man_veh_fault_rec`
+    ADD COLUMN `code` varchar(255) NULL COMMENT '鍦扮爜' AFTER `fault_data`;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
index 2f62b40..b41ac70 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -143,6 +143,7 @@
             assert detail.getErrorTime() != null;
             if (DateUtils.diffToSeconds(detail.getErrorTime(), now) > 10) {
                 detail.setError(MapDataConstant.EMPTY_OF_ERROR);
+                faultProcessor.reset(agvId);
             }
         }
         if (!agvDetailService.updateById(detail)) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
index 3a012b1..e794dc9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -47,20 +47,29 @@
 
             Long agvId = agvService.getAgvId(vehicle);
 
-            VehFaultRec vehFaultRec = new VehFaultRec();
-            vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
-            vehFaultRec.setAgvId(agvId);
-            vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
-            vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
-            vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined");
-            vehFaultRec.setFaultLev(agv_04_up.getFaultLevel());
-            vehFaultRec.setFaultData(GsonUtils.toJson(Cools.add("data1", agv_04_up.getData1()).add("data2", agv_04_up.getData2())));
-            vehFaultRec.setHappenTime(new Date());
-            vehFaultRec.setProtocol(RadixTools.bytesToHexStr(agv_04_up.writeToBytes()));
-            vehFaultRec.setState(VehFaultRecStateType.PENDING.name());
+            VehFaultRec vehFaultRec = vehFaultRecService.getTopVehFaultRec(agvId, String.valueOf(agv_04_up.getFaultId()));
+            if (null == vehFaultRec) {
+                vehFaultRec = new VehFaultRec();
+                vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
+                vehFaultRec.setAgvId(agvId);
+                vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
+                vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
+                vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined");
+                vehFaultRec.setFaultLev(agv_04_up.getFaultLevel());
+                vehFaultRec.setFaultData(GsonUtils.toJson(Cools.add("data1", agv_04_up.getData1()).add("data2", agv_04_up.getData2())));
+                vehFaultRec.setHappenTime(new Date());
+                vehFaultRec.setProtocol(RadixTools.bytesToHexStr(agv_04_up.writeToBytes()));
+                vehFaultRec.setState(VehFaultRecStateType.PENDING.name());
+                vehFaultRec.setCode(agv_04_up.getQrCode());
 
-            if (!vehFaultRecService.save(vehFaultRec)) {
-                News.error("{}鍙疯溅杈嗘晠闅滐紒璁板綍鏁呴殰淇℃伅澶辫触......", dto.getVehicle());
+                if (!vehFaultRecService.save(vehFaultRec)) {
+                    log.error("{}鍙疯溅杈嗘晠闅滐紒璁板綍鏁呴殰淇℃伅澶辫触......", dto.getVehicle());
+                }
+            } else {
+                vehFaultRec.setUpdateTime(new Date());
+                if (!vehFaultRecService.updateById(vehFaultRec)) {
+                    log.error("{}鍙疯溅杈嗘晠闅滐紒鏇存柊鏁呴殰淇℃伅澶辫触......", dto.getVehicle());
+                }
             }
 
         } catch (Exception e) {
@@ -68,4 +77,10 @@
         }
     }
 
+    @Async
+    public void reset(Long agvId) {
+        vehFaultRecService.resetError(agvId);
+    }
+
+
 }
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java
index 0cca695..2786fe4 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java
@@ -78,6 +78,11 @@
      */
     @ApiModelProperty(value= "鏁呴殰绫诲瀷")
     private String type;
+    /**
+     * 鍦伴潰鐮�
+     */
+    @ApiModelProperty(value= "鍦伴潰鐮�")
+    private String code;
 
     /**
      * 鍘熷鎶ユ枃
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java
index 896eecc..8c82e9c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java
@@ -5,4 +5,8 @@
 
 public interface VehFaultRecMapper extends BaseMapper<VehFaultRec> {
 
+    VehFaultRec getTopVehFaultRec(Long agvId, String faultNo);
+
+    int resetError(Long agvId);
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java
index dff1d2d..f971121 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java
@@ -5,4 +5,9 @@
 
 public interface VehFaultRecService extends IService<VehFaultRec> {
 
+    VehFaultRec getTopVehFaultRec(Long agvId, String faultNo);
+
+    int resetError(Long agvId);
+
+
 }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java
index 0fff936..652e635 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java
@@ -9,4 +9,16 @@
 @Service("vehFaultRecService")
 public class VehFaultRecServiceImpl extends ServiceImpl<VehFaultRecMapper, VehFaultRec> implements VehFaultRecService {
 
+
+    @Override
+    public VehFaultRec getTopVehFaultRec(Long agvId, String faultNo) {
+        return baseMapper.getTopVehFaultRec(agvId, faultNo);
+    }
+
+    @Override
+    public int resetError(Long agvId) {
+        return baseMapper.resetError(agvId);
+    }
+
+
 }
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml
index 4f1113c..7760f97 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml
@@ -23,4 +23,23 @@
         </where>
     </sql>
 
+
+    <update id="resetError">
+        UPDATE man_veh_fault_rec
+        SET reset_time = now(),
+            duration = (UNIX_TIMESTAMP(reset_time) - UNIX_TIMESTAMP(happen_time))
+        WHERE agv_id = #{agvId}
+          and reset_time is null
+    </update>
+
+    <select id="getTopVehFaultRec" resultType="com.zy.acs.manager.manager.entity.VehFaultRec">
+        SELECT *
+        FROM man_veh_fault_rec
+        WHERE agv_id = #{agvId}
+          and fault_no = #{faultNo}
+          and reset_time is null
+        ORDER BY happen_time DESC LIMIT 1
+    </select>
+
+
 </mapper>

--
Gitblit v1.9.1