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