From 4ac43fa87c355ff4a001110f5de7fe32acfd5289 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期四, 21 一月 2021 10:16:07 +0800
Subject: [PATCH] 添加处理报警接口

---
 src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml          |   12 +++++
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java  |   38 +++++++++++++++++++
 src/main/java/com/nanometer/smartlab/service/InterfaceService.java      |    4 +
 src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java |    6 +--
 src/main/java/com/nanometer/smartlab/api/ApiAction.java                 |   36 ++++++++++++++++++
 src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java         |    5 ++
 src/main/webapp/WEB-INF/test/test.properties                            |    2 
 7 files changed, 95 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
index c13f87d..4ce057e 100644
--- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java
+++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java
@@ -1717,4 +1717,40 @@
             return ResponseModel.getErrInstance("系统出错");
         }
     }
+
+    // 处理人员违规预警接口
+    @ResponseBody
+    @RequestMapping(value = "/delalarmperson")
+    public String delalarmperson(HttpServletRequest request) throws IOException {
+        logger.info("/api/service/delalarmperson");
+        BufferedReader br = request.getReader();
+        String str, data = "";
+        while((str = br.readLine()) != null){
+            data += str;
+        }
+        logger.info("delalarmperson" + data);
+//        String userId = request.getHeader("userId");
+        JSONObject retJSON = new JSONObject();
+        try {
+            interfaceService.delalarmperson(JSONObject.parseObject(data));
+
+            retJSON.put("code", ApiStatus.OK.getRetCode());
+            retJSON.put("message", ApiStatus.OK.getRetMsg());
+        } catch (ApiException e) {
+            retJSON.put("code", e.getApiStatus().getRetCode());
+            retJSON.put("message", e.getErrorMessage());
+        } catch (Exception e) {
+            retJSON.put("code", ApiStatus.SYS_ERR.getRetCode());
+            StackTraceElement[] stackTraceElements = e.getStackTrace();
+
+            StringBuilder sb = new StringBuilder();
+            sb.append(e.toString());
+            for (StackTraceElement stackTraceElement : stackTraceElements) {
+                sb.append("\n");
+                sb.append(stackTraceElement.toString());
+            }
+            retJSON.put("message", ApiStatus.SYS_ERR.getRetMsg() + "--" + sb.toString());
+        }
+        return retJSON.toJSONString();
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
index 007933d..8852b43 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.java
@@ -6,11 +6,14 @@
 import com.nanometer.smartlab.entity.SysAlarmPerson;
 
 import java.sql.Timestamp;
+import java.util.List;
 import java.util.Map;
 
 public interface SysAlarmPersonDao {
-	
+
 	public void insertSysAlarmPerson(SysAlarmPerson sysAlarmPerson) throws DataAccessException;
 
 	int repeatedJudgment(@Param("containerCode") String containerCode, @Param("warningLevel") Integer warningLevel, @Param("warningTime")Timestamp warningTime);
+
+    List<SysAlarmPerson> selectByCode(@Param("containerCode") String containerCode,@Param("warningId") String warningid);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
index 711355f..c5bdf3d 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysAlarmPersonDao.xml
@@ -9,6 +9,7 @@
     <result property="warningLevel" column="warning_level" typeHandler="com.nanometer.smartlab.entity.handler.WarningLevelHandler"></result>
    	<result property="userId" column="user_id"></result>
    	<result property="warningPoint" column="warning_point"></result>
+    <result property="refId" column="daping_alarm_id"/>
   </resultMap>
 
   <insert id="insertSysAlarmPerson" parameterType="com.nanometer.smartlab.entity.SysAlarmPerson">
@@ -24,5 +25,14 @@
       and  warning_time = #{warningTime}
       and  warning_level = #{warningLevel}
   </select>
-
+  <select id="selectByCode" resultType="com.nanometer.smartlab.entity.SysAlarmPerson">
+      select
+       id,
+       container_code as containerCode,
+       warning_id as warningId,
+       daping_alarm_id as refId
+      from sys_warning
+      where container_code = #{containerCode}
+      and  warning_id = #{warningId}
+  </select>
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceService.java b/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
index a1b6143..2553bd7 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceService.java
@@ -23,7 +23,7 @@
     public void synchAllCabinet(JSONArray jsonObject) throws ApiException;
 
     public void alarm(JSONObject jsonObject) throws ApiException;
-    
+
     public void alarmperson(JSONObject jsonObject) throws Exception;
 
     public void cabinetData(JSONArray jsonObject) throws ApiException;
@@ -39,4 +39,6 @@
 	public List<SysUser> getUserListByContainerCode(String containerCode, String startTime,String endTime) throws ApiException;
 
     List<SysUser> getUserListByContainerCodeNew(String containerCode, String startTime, String endTime) throws ApiException;
+
+    public void delalarmperson(JSONObject jsonObject) throws Exception;
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index 7442c85..a2ae000 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -41,6 +41,8 @@
 
 	@Resource
 	private OpeUseFlowService opeUseFlowService;
+	@Resource
+    private SysWarningService sysWarningService;
 
     @Resource(name = "sysWarehouseDao")
     SysWarehouseDao sysWarehouseDao;
@@ -1728,4 +1730,40 @@
     public JSONObject getUserInfo(JSONObject jsonObject) {
         return null;
     }
+
+    // 人员违规预警接口
+    @Override
+    public void delalarmperson(JSONObject jsonObject) throws Exception {
+        String containerCode = jsonObject.getString("containerCode");
+        String warningId = jsonObject.getString("warningId");
+        // 货柜条码 containerCode String ○
+        // 报警类别 warningId Integer ○
+        if (StringUtils.isBlank(containerCode) || StringUtils.isBlank(warningId)) {
+            throw new ApiException(ApiStatus.PARAM_NO_EXIST);
+        }
+        Map<String, String> metaMap = new HashMap<>();
+        metaMap.put("groupId", "user_violate_type");
+        metaMap.put("metaKey", warningId);
+
+        List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
+        if (baseMetaList == null || baseMetaList.size() != 1) {
+            throw new ApiException(ApiStatus.PARAM_ERR, ApiStatus.PARAM_ERR.getRetMsg() + "[warningId]");
+        }
+
+        SysAlarmPerson sysAlarmPerson = new SysAlarmPerson();
+        sysAlarmPerson.setContainerCode(containerCode);
+        sysAlarmPerson.setWarningId(baseMetaList.get(0).getId());
+
+        List<SysAlarmPerson> sysAlarmPersonList = sysAlarmPersonDao.selectByCode(containerCode, baseMetaList.get(0).getId());
+        // 将人员违规预警记录保存到数据库表
+        for (SysAlarmPerson sysAlarm : sysAlarmPersonList) {
+            if (!"".equals(alarmUrl) && StringUtils.isNotBlank(sysAlarm.getRefId()) && ("1".equals(warningId) || "2".equals(warningId))) {
+                SysWarning sysWarning = new SysWarning();
+                sysWarning.setId(String.valueOf(sysAlarm.getId()));
+                sysWarning.setStatus(1);
+                sysWarning.setAlarmId(sysAlarm.getRefId());
+                sysWarningService.updateSysWarning(sysWarning);
+            }
+        }
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
index e593e8d..4a51065 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarningServiceImpl.java
@@ -76,7 +76,6 @@
 
     @Override
     public void updateSysWarning(SysWarning selectedWarning) throws IOException {
-
         try {
             Map<String,Object> params = new HashMap<>();
             params.put("memo", selectedWarning.getMemo());
@@ -87,7 +86,7 @@
             if (StringUtils.isNotBlank(selectedWarning.getAlarmId()) && StringUtils.isNotBlank(alarmUrl)){
                 JSONObject json=new JSONObject();
                 json.put("dataType", "data");
-                    json.put("id", selectedWarning.getAlarmId());
+                json.put("id", selectedWarning.getAlarmId());
                 CloseableHttpClient client2 = HttpClients.createDefault();
                 HttpPost post2 = new HttpPost(alarmUrl);
                 post2.setHeader("Content-Type", "application/json;charset=UTF-8");
@@ -102,8 +101,7 @@
             }else{
                 logger.info("关联daping的告警id为空 ");
             }
-                this.sysWarningDao.updateSysWarning(params);
-
+            this.sysWarningDao.updateSysWarning(params);
         } catch (DataAccessException e) {
             logger.error(e.getMessage(), e);
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
diff --git a/src/main/webapp/WEB-INF/test/test.properties b/src/main/webapp/WEB-INF/test/test.properties
index 230532d..36ee8bd 100644
--- a/src/main/webapp/WEB-INF/test/test.properties
+++ b/src/main/webapp/WEB-INF/test/test.properties
@@ -8,4 +8,4 @@
 institute.url  = http://sinanoaq.com:8050
 institute.app.id = wx81a00e3350861b25
 institute.app.secret = c307d394875af2cbbe25e01b9e43dcb2
-alarm.url =
+alarm.url = http://sinanoaq.com/daping/sendWarnInfo.json

--
Gitblit v1.9.2