From 9c9503de4fb1e1b0127f83c8b2b0f645c6ab9e9c Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期四, 21 一月 2021 11:20:53 +0800
Subject: [PATCH] 修改处理报警接口

---
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java |   71 +++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index a2ae000..ee87d4d 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -33,6 +33,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service("interfaceService")
 public class InterfaceServiceImpl implements InterfaceService {
@@ -43,7 +44,8 @@
 	private OpeUseFlowService opeUseFlowService;
 	@Resource
     private SysWarningService sysWarningService;
-
+    @Resource(name = "sysWarningDao")
+    SysWarningDao sysWarningDao;
     @Resource(name = "sysWarehouseDao")
     SysWarehouseDao sysWarehouseDao;
 
@@ -1734,35 +1736,48 @@
     // 人员违规预警接口
     @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);
+        JSONArray dataArr = jsonObject.getJSONArray("data");
+        Iterator<Object> dataIt = dataArr.iterator();
+        while (dataIt.hasNext()) {
+            JSONObject dataJson = JSONObject.parseObject(dataIt.next().toString());
+            // 货柜条码 containerCode String ○
+            // 报警类别 warningId Integer ○
+            if (!dataJson.containsKey("warningId") || !dataJson.containsKey("containerCode")) {
+                throw new ApiException(ApiStatus.PARAM_NO_EXIST);
+            }
+            String containerCode = dataJson.getString("containerCode");
+            String warningId = dataJson.getString("warningId");
+            List<String> warningList = Arrays.asList(warningId.split(","));
+            List<String> warningList1 = new ArrayList<>(Arrays.asList("1","2","3","4","5","6"));
+            List<String> delWarnings = warningList1.stream().filter(o->!warningList.contains(o)).collect(Collectors.toList());//新的不在原有里面的
 
-        List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
-        if (baseMetaList == null || baseMetaList.size() != 1) {
-            throw new ApiException(ApiStatus.PARAM_ERR, ApiStatus.PARAM_ERR.getRetMsg() + "[warningId]");
-        }
+            for (String warning : delWarnings){
+                Map<String, String> metaMap = new HashMap<>();
+                metaMap.put("groupId", "user_violate_type");
+                metaMap.put("metaKey", warning);
 
-        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);
+                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(warning) || "2".equals(warning))) {
+                        SysWarning sysWarning = new SysWarning();
+                        sysWarning.setId(String.valueOf(sysAlarm.getId()));
+                        sysWarning.setStatus(1);
+                        sysWarning.setAlarmId(sysAlarm.getRefId());
+                        sysWarningService.updateSysWarning(sysWarning);
+                    }else {
+                        Map<String,Object> params = new HashMap<>();
+                        params.put("status",1);
+                        params.put("id", String.valueOf(sysAlarm.getId()));
+                        sysWarningDao.updateSysWarning(params);
+                    }
+                }
             }
         }
     }

--
Gitblit v1.9.2