From 19ff5993c13a86934fe29b3a58a88d29258dfda5 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期一, 13 十二月 2021 10:28:47 +0800
Subject: [PATCH] 货柜预警:判断重复插入

---
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java |    6 ++++--
 src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java              |   12 +++++++++---
 src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml               |   13 +++++++++++--
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java b/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java
index 04e8d4e..28c2b0a 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java
@@ -3,17 +3,23 @@
 
 import com.nanometer.smartlab.entity.SysAlarm;
 
+import java.sql.Timestamp;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ibatis.annotations.Param;
 import org.springframework.dao.DataAccessException;
 
 public interface SysAlarmDao {
 
     public void insertSysAlarm(SysAlarm sysAlarm) throws DataAccessException;
-    
+
     public List<SysAlarm> getSysAlarmList(Map params);
-    
+
     public int getSysAlarmTotalCount(Map params);
-    
+
+    int selectOne(@Param("containerCode") String containerCode,
+                  @Param("controllerCode") String controllerCode,
+                  @Param("warningId") String warningId,
+                  @Param("warningTime")Timestamp warningTime);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml
index 3a06d33..47727b9 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml
@@ -28,9 +28,9 @@
     insert into sys_alarm(container_code, warning_id, warning_time, warning_level, controller_code)
     values (#{containerCode}, #{warningId}, #{warningTime}, #{warningLevel}, #{controllerCode})
   </insert>
-  
+
   <select id="getSysAlarmList" parameterType="java.util.Map" resultMap="SysAlarm">
-	select sw.*,bm2.meta_value as type,sl.name as typeName,bm.meta_value as warningName from sys_alarm as sw 
+	select sw.*,bm2.meta_value as type,sl.name as typeName,bm.meta_value as warningName from sys_alarm as sw
 	left join sys_laboratory_container as slc on sw.container_code = slc.container_code
 	left join sys_laboratory as sl on slc.laboratory_id = sl.id
 	left join base_meta as bm on sw.warning_id = bm.id
@@ -47,4 +47,13 @@
     select count(1) from sys_alarm
     <include refid="queryWhereSql"/>
   </select>
+    <select id="selectOne" resultType="java.lang.Integer">
+        select count(0)
+        from sys_alarm
+        where container_code = #{containerCode}
+        and warning_id = #{warningId}
+        and controller_code =#{controllerCode}
+        and warning_time = #{warningTime}
+
+    </select>
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index 12cd5b6..faa782d 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -1353,9 +1353,11 @@
             } catch (ParseException e) {
                 throw new ApiException(ApiStatus.PARAM_ERR);
             }
-
+            //判断是否重复
+            if (sysAlarmDao.selectOne(containerCode, controllerCode, sysAlarm.getWarningId(), sysAlarm.getWarningTime()) > 0) {
+                continue;
+            }
             sysAlarmDao.insertSysAlarm(sysAlarm);
-
             try {
                 if (enable && "01".equals(warningId)) {
                     SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(LaboratoryContainer.getLaboratoryId());

--
Gitblit v1.9.2