diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1141659..271d07d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -31,10 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; @@ -283,6 +280,13 @@ return ""; } + /** + * 导出记录-查询整个记录 + * + * @param request + * @param dataScope + * @return + */ @Override public List allList(AlarmRecordDTO request, DataScope dataScope) { @@ -297,6 +301,11 @@ } + /** + * 消除设备异常 + * + * @param devCode + */ @Override public void cancelDeviceAlarm(String devCode) { @@ -310,6 +319,31 @@ this.update(updateWrapper); } + /** + * 根据设备编号查询是否有设备异常告警记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ + @Override + public boolean isDeviceAlarmByCode(String devCode, String alarmThreshold) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "1"); + queryWrapper.eq("ALARM_MSG", alarmThreshold); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.list(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; + } + + /** + * 根据设备编号查询是否有数据异常记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ @Override public boolean isDataAlarmByCode(String devCode, Float alarmThreshold) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -329,6 +363,16 @@ return false; } + /** + * 写入告警记录 + * + * @param devCode + * @param gas + * @param upTime + * @param busWellDTOList + * @param alarmRuleResponseDTO + * @return + */ @Override public boolean saveAlarms(String devCode, String gas, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO) { @@ -348,15 +392,51 @@ return true; } + + @Override + public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { + + for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { + try { + AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), + busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.get().getAlarmTypeId(), + alarmRuleResponseDTO.get().getAlarmTypeName(), + alarmRuleResponseDTO.get().getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(logTime)), + alarmRuleResponseDTO.get().getAlarmThreshold(), busLedgerDTO.getPlace(), "1"); + this.save(alarmRecords); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + return true; + } + + /** + * 消除数据异常记录 + * + * @param devCode + */ @Override public void cancelDataAlarm(String devCode) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - updateWrapper.in("PROCESS_STATUS", Arrays.asList("1","2","3","5","7")); + updateWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); this.update(updateWrapper); } + + /** + * 更新电量、最新状态时间、设备状态 + * + * @param devCode + * @param cell + */ + @Override + public void updateCell(String devCode, String cell) { + this.baseMapper.updateCell(devCode, cell); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1141659..271d07d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -31,10 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; @@ -283,6 +280,13 @@ return ""; } + /** + * 导出记录-查询整个记录 + * + * @param request + * @param dataScope + * @return + */ @Override public List allList(AlarmRecordDTO request, DataScope dataScope) { @@ -297,6 +301,11 @@ } + /** + * 消除设备异常 + * + * @param devCode + */ @Override public void cancelDeviceAlarm(String devCode) { @@ -310,6 +319,31 @@ this.update(updateWrapper); } + /** + * 根据设备编号查询是否有设备异常告警记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ + @Override + public boolean isDeviceAlarmByCode(String devCode, String alarmThreshold) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "1"); + queryWrapper.eq("ALARM_MSG", alarmThreshold); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.list(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; + } + + /** + * 根据设备编号查询是否有数据异常记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ @Override public boolean isDataAlarmByCode(String devCode, Float alarmThreshold) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -329,6 +363,16 @@ return false; } + /** + * 写入告警记录 + * + * @param devCode + * @param gas + * @param upTime + * @param busWellDTOList + * @param alarmRuleResponseDTO + * @return + */ @Override public boolean saveAlarms(String devCode, String gas, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO) { @@ -348,15 +392,51 @@ return true; } + + @Override + public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { + + for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { + try { + AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), + busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.get().getAlarmTypeId(), + alarmRuleResponseDTO.get().getAlarmTypeName(), + alarmRuleResponseDTO.get().getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(logTime)), + alarmRuleResponseDTO.get().getAlarmThreshold(), busLedgerDTO.getPlace(), "1"); + this.save(alarmRecords); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + return true; + } + + /** + * 消除数据异常记录 + * + * @param devCode + */ @Override public void cancelDataAlarm(String devCode) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - updateWrapper.in("PROCESS_STATUS", Arrays.asList("1","2","3","5","7")); + updateWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); this.update(updateWrapper); } + + /** + * 更新电量、最新状态时间、设备状态 + * + * @param devCode + * @param cell + */ + @Override + public void updateCell(String devCode, String cell) { + this.baseMapper.updateCell(devCode, cell); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index a7b5d5e..82dbdf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -1,13 +1,11 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; -import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; -import com.casic.missiles.modular.alarm.entity.AlarmRuleDetail; import com.casic.missiles.modular.alarm.entity.AlarmRuleDevice; -import com.casic.missiles.modular.alarm.service.IAlarmRuleDetailService; import com.casic.missiles.modular.alarm.service.IAlarmRuleDeviceService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import lombok.RequiredArgsConstructor; @@ -15,10 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -92,4 +87,9 @@ } return alarmRuleResponseDTOS; } + + @Override + public List getDeviceAlarmRuleByCode(String devCode) { + return this.baseMapper.getDeviceAlarmRuleByCode(devCode); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1141659..271d07d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -31,10 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; @@ -283,6 +280,13 @@ return ""; } + /** + * 导出记录-查询整个记录 + * + * @param request + * @param dataScope + * @return + */ @Override public List allList(AlarmRecordDTO request, DataScope dataScope) { @@ -297,6 +301,11 @@ } + /** + * 消除设备异常 + * + * @param devCode + */ @Override public void cancelDeviceAlarm(String devCode) { @@ -310,6 +319,31 @@ this.update(updateWrapper); } + /** + * 根据设备编号查询是否有设备异常告警记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ + @Override + public boolean isDeviceAlarmByCode(String devCode, String alarmThreshold) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "1"); + queryWrapper.eq("ALARM_MSG", alarmThreshold); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.list(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; + } + + /** + * 根据设备编号查询是否有数据异常记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ @Override public boolean isDataAlarmByCode(String devCode, Float alarmThreshold) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -329,6 +363,16 @@ return false; } + /** + * 写入告警记录 + * + * @param devCode + * @param gas + * @param upTime + * @param busWellDTOList + * @param alarmRuleResponseDTO + * @return + */ @Override public boolean saveAlarms(String devCode, String gas, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO) { @@ -348,15 +392,51 @@ return true; } + + @Override + public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { + + for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { + try { + AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), + busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.get().getAlarmTypeId(), + alarmRuleResponseDTO.get().getAlarmTypeName(), + alarmRuleResponseDTO.get().getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(logTime)), + alarmRuleResponseDTO.get().getAlarmThreshold(), busLedgerDTO.getPlace(), "1"); + this.save(alarmRecords); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + return true; + } + + /** + * 消除数据异常记录 + * + * @param devCode + */ @Override public void cancelDataAlarm(String devCode) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - updateWrapper.in("PROCESS_STATUS", Arrays.asList("1","2","3","5","7")); + updateWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); this.update(updateWrapper); } + + /** + * 更新电量、最新状态时间、设备状态 + * + * @param devCode + * @param cell + */ + @Override + public void updateCell(String devCode, String cell) { + this.baseMapper.updateCell(devCode, cell); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index a7b5d5e..82dbdf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -1,13 +1,11 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; -import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; -import com.casic.missiles.modular.alarm.entity.AlarmRuleDetail; import com.casic.missiles.modular.alarm.entity.AlarmRuleDevice; -import com.casic.missiles.modular.alarm.service.IAlarmRuleDetailService; import com.casic.missiles.modular.alarm.service.IAlarmRuleDeviceService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import lombok.RequiredArgsConstructor; @@ -15,10 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -92,4 +87,9 @@ } return alarmRuleResponseDTOS; } + + @Override + public List getDeviceAlarmRuleByCode(String devCode) { + return this.baseMapper.getDeviceAlarmRuleByCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index 1231242..84dfdce 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DeviceTypeEnum; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.BusAlarmLedgerDTO; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; @@ -23,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** *

@@ -60,7 +62,7 @@ if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 this.processNormalData(jsonObject, devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 -// this.processAlarmData(jsonObject, devCode); + this.processAlarmData(jsonObject, devCode); } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 try { if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { @@ -84,18 +86,56 @@ } } - - @Transactional - public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.getString("cell"); - JSONArray jsonArray = jsonObject.getJSONArray("datas"); + public List getBusAlarmLedgerList(String devCode) { List busWellDTOList = busWellMapper.getListByDevCode(devCode); + List busLedgerDTOList = new ArrayList<>(); for (BusWellDTO busWellDTO : busWellDTOList) { BusAlarmLedgerDTO busLedgerDTO = new BusAlarmLedgerDTO(); BeanUtils.copyProperties(busWellDTO, busLedgerDTO); busLedgerDTOList.add(busLedgerDTO); } + return busLedgerDTOList; + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); + //获取报警事件 + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + + List busWellDTOList = getBusAlarmLedgerList(devCode); + //若没绑定井,则不产生报警 + if (busWellDTOList != null && busWellDTOList.size() > 0) { + + for (int i = 0; i < jsonArray.size(); i++) { + try { + String alarmEventCode = jsonArray.get(i).toString(); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> alarmEventCode.equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (!alarmDeviceRuleResponseDTO.isPresent()) continue; + //1.查询是否已存在该类报警 + if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; + //2.写入新的报警 + alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + + } catch (Exception e) { + e.printStackTrace(); + log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + } + + + @Transactional + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); + List busWellDTOList = getBusAlarmLedgerList(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); @@ -119,7 +159,7 @@ //写入报警 //1、判断报警是否已存在 if (!alarmRecordsService.isDataAlarmByCode(devCode, Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold()))) { - alarmRecordsService.saveAlarms(devCode, gas, upTime, busLedgerDTOList, alarmRuleResponseDTO); + alarmRecordsService.saveAlarms(devCode, gas, upTime, busWellDTOList, alarmRuleResponseDTO); } break; } @@ -127,6 +167,8 @@ } //5.清数据报警 alarmRecordsService.cancelDataAlarm(devCode); + //6.更新电量 + alarmRecordsService.updateCell(devCode,cell); } catch (Exception e) { e.printStackTrace(); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1141659..271d07d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -31,10 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; @@ -283,6 +280,13 @@ return ""; } + /** + * 导出记录-查询整个记录 + * + * @param request + * @param dataScope + * @return + */ @Override public List allList(AlarmRecordDTO request, DataScope dataScope) { @@ -297,6 +301,11 @@ } + /** + * 消除设备异常 + * + * @param devCode + */ @Override public void cancelDeviceAlarm(String devCode) { @@ -310,6 +319,31 @@ this.update(updateWrapper); } + /** + * 根据设备编号查询是否有设备异常告警记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ + @Override + public boolean isDeviceAlarmByCode(String devCode, String alarmThreshold) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "1"); + queryWrapper.eq("ALARM_MSG", alarmThreshold); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.list(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; + } + + /** + * 根据设备编号查询是否有数据异常记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ @Override public boolean isDataAlarmByCode(String devCode, Float alarmThreshold) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -329,6 +363,16 @@ return false; } + /** + * 写入告警记录 + * + * @param devCode + * @param gas + * @param upTime + * @param busWellDTOList + * @param alarmRuleResponseDTO + * @return + */ @Override public boolean saveAlarms(String devCode, String gas, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO) { @@ -348,15 +392,51 @@ return true; } + + @Override + public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { + + for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { + try { + AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), + busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.get().getAlarmTypeId(), + alarmRuleResponseDTO.get().getAlarmTypeName(), + alarmRuleResponseDTO.get().getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(logTime)), + alarmRuleResponseDTO.get().getAlarmThreshold(), busLedgerDTO.getPlace(), "1"); + this.save(alarmRecords); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + return true; + } + + /** + * 消除数据异常记录 + * + * @param devCode + */ @Override public void cancelDataAlarm(String devCode) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - updateWrapper.in("PROCESS_STATUS", Arrays.asList("1","2","3","5","7")); + updateWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); this.update(updateWrapper); } + + /** + * 更新电量、最新状态时间、设备状态 + * + * @param devCode + * @param cell + */ + @Override + public void updateCell(String devCode, String cell) { + this.baseMapper.updateCell(devCode, cell); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index a7b5d5e..82dbdf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -1,13 +1,11 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; -import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; -import com.casic.missiles.modular.alarm.entity.AlarmRuleDetail; import com.casic.missiles.modular.alarm.entity.AlarmRuleDevice; -import com.casic.missiles.modular.alarm.service.IAlarmRuleDetailService; import com.casic.missiles.modular.alarm.service.IAlarmRuleDeviceService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import lombok.RequiredArgsConstructor; @@ -15,10 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -92,4 +87,9 @@ } return alarmRuleResponseDTOS; } + + @Override + public List getDeviceAlarmRuleByCode(String devCode) { + return this.baseMapper.getDeviceAlarmRuleByCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index 1231242..84dfdce 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DeviceTypeEnum; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.BusAlarmLedgerDTO; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; @@ -23,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** *

@@ -60,7 +62,7 @@ if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 this.processNormalData(jsonObject, devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 -// this.processAlarmData(jsonObject, devCode); + this.processAlarmData(jsonObject, devCode); } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 try { if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { @@ -84,18 +86,56 @@ } } - - @Transactional - public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.getString("cell"); - JSONArray jsonArray = jsonObject.getJSONArray("datas"); + public List getBusAlarmLedgerList(String devCode) { List busWellDTOList = busWellMapper.getListByDevCode(devCode); + List busLedgerDTOList = new ArrayList<>(); for (BusWellDTO busWellDTO : busWellDTOList) { BusAlarmLedgerDTO busLedgerDTO = new BusAlarmLedgerDTO(); BeanUtils.copyProperties(busWellDTO, busLedgerDTO); busLedgerDTOList.add(busLedgerDTO); } + return busLedgerDTOList; + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); + //获取报警事件 + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + + List busWellDTOList = getBusAlarmLedgerList(devCode); + //若没绑定井,则不产生报警 + if (busWellDTOList != null && busWellDTOList.size() > 0) { + + for (int i = 0; i < jsonArray.size(); i++) { + try { + String alarmEventCode = jsonArray.get(i).toString(); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> alarmEventCode.equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (!alarmDeviceRuleResponseDTO.isPresent()) continue; + //1.查询是否已存在该类报警 + if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; + //2.写入新的报警 + alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + + } catch (Exception e) { + e.printStackTrace(); + log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + } + + + @Transactional + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); + List busWellDTOList = getBusAlarmLedgerList(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); @@ -119,7 +159,7 @@ //写入报警 //1、判断报警是否已存在 if (!alarmRecordsService.isDataAlarmByCode(devCode, Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold()))) { - alarmRecordsService.saveAlarms(devCode, gas, upTime, busLedgerDTOList, alarmRuleResponseDTO); + alarmRecordsService.saveAlarms(devCode, gas, upTime, busWellDTOList, alarmRuleResponseDTO); } break; } @@ -127,6 +167,8 @@ } //5.清数据报警 alarmRecordsService.cancelDataAlarm(devCode); + //6.更新电量 + alarmRecordsService.updateCell(devCode,cell); } catch (Exception e) { e.printStackTrace(); diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java index a496d98..80cb223 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java @@ -11,7 +11,7 @@ import java.util.Map; -@Api(tags = "app对接模块") +@Api(tags = "北燃流程处置app对接模块") @RequiredArgsConstructor @RestController @RequestMapping("/api") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java index e3038d2..25a27eb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleController.java @@ -7,12 +7,14 @@ import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.StateDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.entity.AlarmRule; +import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.util.ReturnUtil; @@ -41,6 +43,7 @@ private final AbstractDictService dictService; private final IAlarmRuleService iAlarmRuleService; + private final IAlarmEventProductService eventProductService; @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -99,5 +102,15 @@ } return ReturnUtil.success(iAlarmRuleService.updateBatchById(alarmRules)); } + + @ApiOperation("获取报警事件下拉列表,需传产品id,name取报警名称,value取code") + @PostMapping("/alarmEventList") + @ResponseBody + public ReturnDTO alarmEventList(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(eventProductService.alarmEventList(idDTO.getId())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 553756a..690ac14 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -33,6 +33,8 @@ AlarmRecords view(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("cell") String cell); + Page pop(Page page, @Param("deptIdStr") String deptIdStr); List allList(@Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index f1de75e..33c6b03 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,20 @@ ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); + + @Select("SELECT " + + " ar.PRODUCT_ID, " + + " ar.ALARM_THRESHOLD, " + + " ar.ALARM_TYPE_ID, " + + " ar.ALARM_NAME, " + + " ar.ALARM_LEVEL_ID, " + + " t.ALARM_TYPE as alarmTypeName " + + "FROM " + + " alarm_rule ar " + + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + + "WHERE " + + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 1") + List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml index c9bc57c..668d57a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmEventProductMapper.xml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - ID, PRODUC_ID, EVENT_NAME, EVENT_CODE, TS + ID, PRODUCT_ID, EVENT_NAME, EVENT_CODE, TS diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 418b2ac..7651156 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -334,4 +334,12 @@ ORDER BY rd.ALARM_TIME DESC + + update bus_device set + CELL = #{cell}, + ONLINE_STATE = 1, + LOGTIME = now() + where DEVCODE = #{devCode} and valid >0 + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java new file mode 100644 index 0000000..d7d25d8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable{ + + + + @ApiModelProperty("报警类型id") + private Long alarmTypeId; + + @ApiModelProperty("产品类型id") + private Long productId; + + @ApiModelProperty("报警等级id") + private Long alarmLevelId; + + @ApiModelProperty("报警值") + private String alarmThreshold; + + @ApiModelProperty("报警类型名称") + private String alarmTypeName; + + @ApiModelProperty("报警事件名称") + private String alarmName; + + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java index 4108c9d..83bf42e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmEventProduct.java @@ -32,9 +32,9 @@ @TableId(value = "ID", type = IdType.AUTO) private Long id; - @ApiModelProperty("报警规则主键id") - @TableField("PRODUC_ID") - private Long producId; + @ApiModelProperty("产品主键id") + @TableField("PRODUCT_ID") + private Long productId; @ApiModelProperty("报警事件名称") @TableField("EVENT_NAME") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index a79fe75..e6484b1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -67,7 +67,7 @@ @TableField("`STATUS`") private String status; - @ApiModelProperty("报警消息") + @ApiModelProperty("报警消息,存报警事件code") @TableField("ALARM_MSG") private String alarmMsg; @@ -175,4 +175,21 @@ this.position = position; this.exceptionType = exceptionType; } + public AlarmRecords(String devcode, String ledgerCode, + String ledgerNumber, Long alarmTypeId, + String alarmContent, + Long alarmLevel, Date alarmTime, + String alarmMsg, String position, + String exceptionType) { + this.devcode = devcode; + this.ledgerCode = ledgerCode; + this.ledgerNumber = ledgerNumber; + this.alarmTypeId = alarmTypeId; + this.alarmContent = alarmContent; + this.alarmLevel = alarmLevel; + this.alarmTime = alarmTime; + this.alarmMsg = alarmMsg; + this.position = position; + this.exceptionType = exceptionType; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java index 3654352..37cda91 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmEventProductService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务类 @@ -13,4 +15,6 @@ */ public interface IAlarmEventProductService extends IService { + List alarmEventList(Long productId); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index e72da4c..0578678 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; +import java.util.Optional; /** *

@@ -51,8 +52,14 @@ void cancelDataAlarm(String devCode); + void updateCell(String devCode,String cell); + boolean isDataAlarmByCode(String devCode,Float alarmThreshold); + boolean isDeviceAlarmByCode(String devCode,String alarmThreshold); + boolean saveAlarms(String devCode,String gas,String upTime, List busWellDTOList,AlarmRuleResponseDTO alarmRuleResponseDTO); + boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index d3b2d44..3f3e588 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.alarm.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; @@ -22,4 +23,6 @@ boolean edit(AlarmRule alarmRule); List getByDevCode(String devCode); + + List getDeviceAlarmRuleByCode(String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java index c7aa36c..a7bc4d2 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmEventProductServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.modular.alarm.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.alarm.dao.AlarmEventProductMapper; import com.casic.missiles.modular.alarm.entity.AlarmEventProduct; import com.casic.missiles.modular.alarm.service.IAlarmEventProductService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 产品对应设备异常告警事件 服务实现类 @@ -17,4 +20,10 @@ @Service public class AlarmEventProductServiceImpl extends ServiceImpl implements IAlarmEventProductService { + @Override + public List alarmEventList(Long productId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("PRODUCT_ID", productId); + return this.list(queryWrapper); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1141659..271d07d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -31,10 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; @@ -283,6 +280,13 @@ return ""; } + /** + * 导出记录-查询整个记录 + * + * @param request + * @param dataScope + * @return + */ @Override public List allList(AlarmRecordDTO request, DataScope dataScope) { @@ -297,6 +301,11 @@ } + /** + * 消除设备异常 + * + * @param devCode + */ @Override public void cancelDeviceAlarm(String devCode) { @@ -310,6 +319,31 @@ this.update(updateWrapper); } + /** + * 根据设备编号查询是否有设备异常告警记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ + @Override + public boolean isDeviceAlarmByCode(String devCode, String alarmThreshold) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "1"); + queryWrapper.eq("ALARM_MSG", alarmThreshold); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.list(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; + } + + /** + * 根据设备编号查询是否有数据异常记录 + * + * @param devCode + * @param alarmThreshold + * @return + */ @Override public boolean isDataAlarmByCode(String devCode, Float alarmThreshold) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -329,6 +363,16 @@ return false; } + /** + * 写入告警记录 + * + * @param devCode + * @param gas + * @param upTime + * @param busWellDTOList + * @param alarmRuleResponseDTO + * @return + */ @Override public boolean saveAlarms(String devCode, String gas, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO) { @@ -348,15 +392,51 @@ return true; } + + @Override + public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { + + for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { + try { + AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), + busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.get().getAlarmTypeId(), + alarmRuleResponseDTO.get().getAlarmTypeName(), + alarmRuleResponseDTO.get().getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(logTime)), + alarmRuleResponseDTO.get().getAlarmThreshold(), busLedgerDTO.getPlace(), "1"); + this.save(alarmRecords); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + return true; + } + + /** + * 消除数据异常记录 + * + * @param devCode + */ @Override public void cancelDataAlarm(String devCode) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - updateWrapper.in("PROCESS_STATUS", Arrays.asList("1","2","3","5","7")); + updateWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); this.update(updateWrapper); } + + /** + * 更新电量、最新状态时间、设备状态 + * + * @param devCode + * @param cell + */ + @Override + public void updateCell(String devCode, String cell) { + this.baseMapper.updateCell(devCode, cell); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index a7b5d5e..82dbdf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -1,13 +1,11 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRule; -import com.casic.missiles.modular.alarm.dao.AlarmRuleMapper; -import com.casic.missiles.modular.alarm.entity.AlarmRuleDetail; import com.casic.missiles.modular.alarm.entity.AlarmRuleDevice; -import com.casic.missiles.modular.alarm.service.IAlarmRuleDetailService; import com.casic.missiles.modular.alarm.service.IAlarmRuleDeviceService; import com.casic.missiles.modular.alarm.service.IAlarmRuleService; import lombok.RequiredArgsConstructor; @@ -15,10 +13,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -92,4 +87,9 @@ } return alarmRuleResponseDTOS; } + + @Override + public List getDeviceAlarmRuleByCode(String devCode) { + return this.baseMapper.getDeviceAlarmRuleByCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index 1231242..84dfdce 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DeviceTypeEnum; +import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.AlarmRuleResponseDTO; import com.casic.missiles.modular.alarm.dto.BusAlarmLedgerDTO; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; @@ -23,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** *

@@ -60,7 +62,7 @@ if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 this.processNormalData(jsonObject, devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 -// this.processAlarmData(jsonObject, devCode); + this.processAlarmData(jsonObject, devCode); } else if (mType[2].equals(json.get("mType"))) {//更新下发参数状态 try { if (DeviceTypeEnum.Methane.name().equals(json.get("devType"))) { @@ -84,18 +86,56 @@ } } - - @Transactional - public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.getString("cell"); - JSONArray jsonArray = jsonObject.getJSONArray("datas"); + public List getBusAlarmLedgerList(String devCode) { List busWellDTOList = busWellMapper.getListByDevCode(devCode); + List busLedgerDTOList = new ArrayList<>(); for (BusWellDTO busWellDTO : busWellDTOList) { BusAlarmLedgerDTO busLedgerDTO = new BusAlarmLedgerDTO(); BeanUtils.copyProperties(busWellDTO, busLedgerDTO); busLedgerDTOList.add(busLedgerDTO); } + return busLedgerDTOList; + } + + + public void processAlarmData(JSONObject jsonObject, String devCode) { + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); + //获取报警事件 + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + + List busWellDTOList = getBusAlarmLedgerList(devCode); + //若没绑定井,则不产生报警 + if (busWellDTOList != null && busWellDTOList.size() > 0) { + + for (int i = 0; i < jsonArray.size(); i++) { + try { + String alarmEventCode = jsonArray.get(i).toString(); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> alarmEventCode.equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (!alarmDeviceRuleResponseDTO.isPresent()) continue; + //1.查询是否已存在该类报警 + if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; + //2.写入新的报警 + alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + + } catch (Exception e) { + e.printStackTrace(); + log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); + } + } + } + } + + + @Transactional + public void processNormalData(JSONObject jsonObject, String devCode) { + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); + List busWellDTOList = getBusAlarmLedgerList(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); @@ -119,7 +159,7 @@ //写入报警 //1、判断报警是否已存在 if (!alarmRecordsService.isDataAlarmByCode(devCode, Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold()))) { - alarmRecordsService.saveAlarms(devCode, gas, upTime, busLedgerDTOList, alarmRuleResponseDTO); + alarmRecordsService.saveAlarms(devCode, gas, upTime, busWellDTOList, alarmRuleResponseDTO); } break; } @@ -127,6 +167,8 @@ } //5.清数据报警 alarmRecordsService.cancelDataAlarm(devCode); + //6.更新电量 + alarmRecordsService.updateCell(devCode,cell); } catch (Exception e) { e.printStackTrace(); diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java index a496d98..80cb223 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/appOther/controller/ApiController.java @@ -11,7 +11,7 @@ import java.util.Map; -@Api(tags = "app对接模块") +@Api(tags = "北燃流程处置app对接模块") @RequiredArgsConstructor @RestController @RequestMapping("/api") diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index f17db8f..617bc69 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit; -@Api(tags = "接收设备数据api") +@Api(tags = "sensorhub接收设备数据api") @Slf4j @RequiredArgsConstructor @RestController