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