diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 000366b..67a0783 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -75,6 +75,17 @@ return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId(), DictEnum.DEVICE_EXCEPTION)); } + @ApiOperation("历史报警详情") + @PostMapping("/deviceAlarmDetail") + @ResponseBody + public ReturnDTO deviceAlarmDetail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); + } + + @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody 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 594aeb7..c80c613 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 @@ -36,6 +36,8 @@ AlarmRecordDetailDTO historyAlarmDetail(@Param("id") Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(@Param("id") Long id); + void updateCell(@Param("devCode") String devCode,@Param("onLineStatus") String onLineStatus, @Param("cell") String cell); Page pop(Page page, @Param("deptIdStr") String deptIdStr); 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 1149977..d06600c 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 @@ -198,6 +198,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, + lr.ledgerName, lr.DEPTID, lr.id as ledgerId, lr.type as watchObject, @@ -216,10 +217,47 @@ AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = 0 and rd.id=#{id} + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@ + + + SELECT - rd.*, + rd.* FROM alarm_records rd LEFT JOIN bus_ledger_all_view lr ON lr.ledgerCode = rd.LEDGER_CODE where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 - and rd.PROCESS_STATUS ]]> 3 - and rd.PROCESS_STATUS 3 + and (rd.PROCESS_STATUS ]]> 3 + or rd.PROCESS_STATUS 3) and lr.DEPTID in (${deptIdStr}) - ORDER BY rd.ALARM_TIME DESC + ORDER BY rd.PROCESS_STATUS asc ,rd.ALARM_TIME DESC @@ -495,7 +534,6 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER as tagNumber, - rd.LEDGER_NUMBER as tagNumber, lr.DEPTID, lr.ledgerName, ay.ALARM_TYPE, diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java index 9e63423..308fa32 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDetailDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("台账位号") private String ledgerNumber; + @ApiModelProperty("台账名称") + private String ledgerName; + @ApiModelProperty("报警类型") private Long alarmTypeId; @@ -60,9 +63,12 @@ @ApiModelProperty("创建事件") private Date ts; - @ApiModelProperty("报警位置") + @ApiModelProperty("详细地址") private String position; + @ApiModelProperty("位置") + private String address; + @ApiModelProperty("是否误报(0:是,1:否)") private String realAlarm; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java new file mode 100644 index 0000000..797476d --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmDetailDTO.java @@ -0,0 +1,71 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceAlarmDetailDTO { + + @ApiModelProperty("报警id") + private Long id; + + @ApiModelProperty("设备编号") + private String devCode; + + + @ApiModelProperty("报警类别") + private String alarmCategory; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("安装时间") + private Date installDate; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("详细地址") + private String position; + + @ApiModelProperty("位置") + private String address; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + private String tagNumber; + private String ledgerName; + + @ApiModelProperty("负责人") + private String principal; + + @ApiModelProperty("解除时长") + private String cancelDuration; + + @ApiModelProperty("处置时长") + private String processDuration; + + @ApiModelProperty("设备类型名称") + private String devTypeName; + + @ApiModelProperty("报警等级名称") + private String alarmLevelName; + + private Long deptid; + +} 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 d852016..1f7f5da 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 @@ -44,6 +44,8 @@ AlarmRecordDetailDTO historyAlarmDetail(Long id); + DeviceAlarmDetailDTO deviceAlarmDetail(Long id); + List changeProcessStatus(List ids); boolean processAppContent(Map resultParams); 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 259f8e5..5fe196e 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 @@ -22,10 +22,8 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.*; -import com.casic.missiles.modular.alarm.entity.AlarmRecords; -import com.casic.missiles.modular.alarm.entity.ApprovalLog; -import com.casic.missiles.modular.alarm.entity.RemindLog; -import com.casic.missiles.modular.alarm.entity.SuspendLog; +import com.casic.missiles.modular.alarm.entity.*; +import com.casic.missiles.modular.alarm.service.IAlarmLevelControlService; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.modular.system.model.User; @@ -61,6 +59,7 @@ private final RemindLogMapper remindLogMapper; private final AbstractDeptService abstractDeptService; private final AbstractDictService abstractDictService; + private final IAlarmLevelControlService iAlarmLevelControlService; private final WebSocket webSocket; private final PoolConfig threadPoolTaskExecutor; @@ -132,11 +131,24 @@ detailDTO.setRealAlarmName(DictEnum.REAL_ALARM.equals(detailDTO.getRealAlarm()) ? "否" : "是"); detailDTO.setCancelDuration(TimeConverter(detailDTO.getCancelDuration())); detailDTO.setDeptName(getDeptNamesByDeptId(detailDTO.getDeptid())); + detailDTO.setAddress(detailDTO.getLedgerNumber().concat("|").concat(detailDTO.getLedgerName())); detailDTO.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", detailDTO.getAlarmCategory())); return detailDTO; } @Override + public DeviceAlarmDetailDTO deviceAlarmDetail(Long id) { + + DeviceAlarmDetailDTO alarmDetail = this.baseMapper.deviceAlarmDetail(id); + alarmDetail.setCancelDuration(TimeConverter(alarmDetail.getCancelDuration())); + alarmDetail.setProcessDuration(TimeConverter(alarmDetail.getProcessDuration())); + alarmDetail.setDeptName(getDeptNamesByDeptId(alarmDetail.getDeptid())); + alarmDetail.setAddress(alarmDetail.getTagNumber().concat("|").concat(alarmDetail.getLedgerName())); + alarmDetail.setAlarmCategory(abstractDictService.getDictNameByCode("alarmCategory", alarmDetail.getAlarmCategory())); + return alarmDetail; + } + + @Override public Page deviceAlarmHistoryListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { Page deviceAlarmListPage = this.baseMapper.deviceAlarmHistoryListPage(page, request, dataScope, getDeptIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); @@ -381,7 +393,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); List deptList = abstractDeptService.list(queryWrapper); - List nameList = deptList.stream().map(Dept::getFullName).collect(Collectors.toList()); + List nameList = deptList.stream().filter(dept->ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); return String.join("/", nameList); } @@ -501,6 +513,7 @@ @Override public boolean saveAlarms(String devCode, String data, String upTime, List busWellDTOList, AlarmRuleResponseDTO alarmRuleResponseDTO, String typeName) { + Long alarmId=0L; for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { AlarmRecords alarmRecords = new AlarmRecords(devCode, busLedgerDTO.getLedgerCode(), @@ -509,22 +522,30 @@ alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getPlace(), "0"); this.save(alarmRecords); + alarmId=alarmRecords.getId(); } catch (Exception e) { e.printStackTrace(); return false; } } + final Long alarmIds= alarmId; //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleResponseDTO.getAlarmLevelId()); JSONObject msg = new JSONObject(); msg.put("alarmType", alarmRuleResponseDTO.getAlarmTypeName()); + msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("alarmTime", upTime); msg.put("status", "未读"); msg.put("value", data); msg.put("typeName", typeName); + msg.put("alarmLevel", null != alarmLevelControl ? alarmLevelControl.getAlarmLevel() : ""); + msg.put("isSound", null != alarmLevelControl ? alarmLevelControl.getIsSound() : ""); + msg.put("isSend", null != alarmLevelControl ? alarmLevelControl.getIsSend() : ""); + msg.put("alarmNoteMethod", null != alarmLevelControl ? alarmLevelControl.getAlarmNoteMethod() : ""); webSocket.sendAllMessage(msg.toJSONString()); } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index a53296b..62dfa4d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -78,5 +78,13 @@ return ReturnUtil.success(iBusLedgerService.detail(idDTO.getId())); } + @PostMapping("/synDept") + @ResponseBody + public ReturnDTO synDept() { + + return ReturnUtil.success(iBusLedgerService.synDept()); + } + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java index e518623..4d4f8fb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.SynDeptDTO; import com.casic.missiles.modular.device.entity.BusGrid; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; @@ -32,4 +33,7 @@ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type); BusLedger detail(@Param("id") Long id); + + @Select("SELECT b.ORG_ID,b.ORG_CODE,b.ORG_NAME,b.PARENT_ID FROM `bus_sync_org_relation` b WHERE b.DEL_FLAG =0 and b.PARENT_ID = #{syncId} ") + List synDept(@Param("syncId") String syncId); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml index 67560d1..6d37e3a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerMapper.xml @@ -39,13 +39,9 @@