diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java new file mode 100644 index 0000000..69805e7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java @@ -0,0 +1,34 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 闸井监测 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface IBusLeakMonitorService extends IService { + + Page pageList(Page page, LeakMonitorRequestDTO request); + + List> mapList(); + + Map>> watchDataByWell(DeviceMonitorRequestDTO requestDTO); + + List latestValue(DeviceMonitorRequestDTO requestDTO); + + List lifecycleRecord(DeviceMonitorRequestDTO requestDTO); + + List repairLog(DeviceMonitorRequestDTO requestDTO); + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java new file mode 100644 index 0000000..69805e7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java @@ -0,0 +1,34 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 闸井监测 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface IBusLeakMonitorService extends IService { + + Page pageList(Page page, LeakMonitorRequestDTO request); + + List> mapList(); + + Map>> watchDataByWell(DeviceMonitorRequestDTO requestDTO); + + List latestValue(DeviceMonitorRequestDTO requestDTO); + + List lifecycleRecord(DeviceMonitorRequestDTO requestDTO); + + List repairLog(DeviceMonitorRequestDTO requestDTO); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java new file mode 100644 index 0000000..6a74e21 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.device.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.modular.device.dao.BusLeakMonitorMapper; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.modular.device.service.IBusLedgerService; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; + +/** + *

+ * 台账管理 服务实现类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class BusLeakMonitorServiceImpl extends ServiceImpl implements IBusLeakMonitorService { + + private final AbstractDictService abstractDictService; + private final IBusLedgerService iBusLedgerService; + private final CommonServer commonServer; + + + @Override + public Page pageList(Page page, LeakMonitorRequestDTO request) { + page.setOptimizeCountSql(false); + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); + List busLedgerList = pageList.getRecords(); + busLedgerList.forEach(busLedger -> { + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid()) ? commonServer.getDeptNamesByDeptId(busLedger.getDeptid()) : ""); // 监控状态字典值 + }); + return pageList; + } + + + @Override + public List> mapList() { + return this.baseMapper.list(commonServer.getDeptIds()); + } + + + @Override + public List latestValue(DeviceMonitorRequestDTO request) { +// Map> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); +// for (DeviceMonitorDTO deviceMonitorDTO : deviceMonitorDTOList) { +// Map map = new HashMap<>(); +// map.put("value",deviceMonitorDTO.getLatestValue()); +// map.put("state",deviceMonitorDTO.getState()); +// map.put("devcode",deviceMonitorDTO.getDevcode()); +// map.put("offDays",deviceMonitorDTO.getOffDays()); +// map.put("alarmContent",deviceMonitorDTO.getAlarmContent()); +// resultMap.put(deviceMonitorDTO.getDevTypeName(), map); +// } + return deviceMonitorDTOList; + } + + @Override + public Map>> watchDataByWell(DeviceMonitorRequestDTO request) { + Map>> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); + List deviceTypeList = deviceMonitorDTOList.stream().map(DeviceMonitorDTO::getDevTypeName).distinct().collect(Collectors.toList()); + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + for (String deviceType : deviceTypeList) { + DeviceDataEnum deviceDataEnum = DeviceDataEnum.typeOf(deviceType); +// resultMap.put(deviceType, this.baseMapper.getWatchData(deviceDataEnum.getTableName(), +// deviceDataEnum.getTableColumns(), deviceDataEnum.getOrderColumn(), request, +// busLedger.getLedgerCode())); + + if (null != deviceDataEnum) { + String[] queryColumns = deviceDataEnum.getQueryColumns().split(",", 4); + resultMap.put(deviceType, this.baseMapper.monitorData(deviceDataEnum.getTableName(), + deviceDataEnum.getTableColumns(), + queryColumns[0], + queryColumns[1], + queryColumns[2], + queryColumns[3], + deviceDataEnum.getOrderColumn(), + request, + busLedger.getLedgerCode())); + } + } + return resultMap; + } + + @Override + public List repairLog(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellNumber = null != busLedger ? busLedger.getTagNumber() : ""; + return this.baseMapper.repairLog(wellNumber); + } + + + @Override + public List lifecycleRecord(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellCode = null != busLedger ? busLedger.getLedgerCode() : ""; + List> alarmTypeMaps = this.baseMapper.alarmType(); + List lifeCycleRecordDTOList = this.baseMapper.lifecycleRecord(wellCode, request); + for (LifeCycleRecordDTO cycleRecordDTO : lifeCycleRecordDTOList) { + cycleRecordDTO.setProcessDuration(TimeConverter(cycleRecordDTO.getProcessDuration())); + cycleRecordDTO.setRealAlarm("0".equals(cycleRecordDTO.getRealAlarm()) ? "是" : "否"); + alarmTypeMaps.forEach(map -> { + if (map.get("ID").toString().equals(cycleRecordDTO.getAlarmTypeId() + "")) { + cycleRecordDTO.setAlarmTypeName(map.get("ALARM_TYPE").toString()); + } + }); + } + return lifeCycleRecordDTOList; + } + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java new file mode 100644 index 0000000..69805e7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java @@ -0,0 +1,34 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 闸井监测 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface IBusLeakMonitorService extends IService { + + Page pageList(Page page, LeakMonitorRequestDTO request); + + List> mapList(); + + Map>> watchDataByWell(DeviceMonitorRequestDTO requestDTO); + + List latestValue(DeviceMonitorRequestDTO requestDTO); + + List lifecycleRecord(DeviceMonitorRequestDTO requestDTO); + + List repairLog(DeviceMonitorRequestDTO requestDTO); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java new file mode 100644 index 0000000..6a74e21 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.device.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.modular.device.dao.BusLeakMonitorMapper; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.modular.device.service.IBusLedgerService; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; + +/** + *

+ * 台账管理 服务实现类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class BusLeakMonitorServiceImpl extends ServiceImpl implements IBusLeakMonitorService { + + private final AbstractDictService abstractDictService; + private final IBusLedgerService iBusLedgerService; + private final CommonServer commonServer; + + + @Override + public Page pageList(Page page, LeakMonitorRequestDTO request) { + page.setOptimizeCountSql(false); + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); + List busLedgerList = pageList.getRecords(); + busLedgerList.forEach(busLedger -> { + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid()) ? commonServer.getDeptNamesByDeptId(busLedger.getDeptid()) : ""); // 监控状态字典值 + }); + return pageList; + } + + + @Override + public List> mapList() { + return this.baseMapper.list(commonServer.getDeptIds()); + } + + + @Override + public List latestValue(DeviceMonitorRequestDTO request) { +// Map> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); +// for (DeviceMonitorDTO deviceMonitorDTO : deviceMonitorDTOList) { +// Map map = new HashMap<>(); +// map.put("value",deviceMonitorDTO.getLatestValue()); +// map.put("state",deviceMonitorDTO.getState()); +// map.put("devcode",deviceMonitorDTO.getDevcode()); +// map.put("offDays",deviceMonitorDTO.getOffDays()); +// map.put("alarmContent",deviceMonitorDTO.getAlarmContent()); +// resultMap.put(deviceMonitorDTO.getDevTypeName(), map); +// } + return deviceMonitorDTOList; + } + + @Override + public Map>> watchDataByWell(DeviceMonitorRequestDTO request) { + Map>> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); + List deviceTypeList = deviceMonitorDTOList.stream().map(DeviceMonitorDTO::getDevTypeName).distinct().collect(Collectors.toList()); + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + for (String deviceType : deviceTypeList) { + DeviceDataEnum deviceDataEnum = DeviceDataEnum.typeOf(deviceType); +// resultMap.put(deviceType, this.baseMapper.getWatchData(deviceDataEnum.getTableName(), +// deviceDataEnum.getTableColumns(), deviceDataEnum.getOrderColumn(), request, +// busLedger.getLedgerCode())); + + if (null != deviceDataEnum) { + String[] queryColumns = deviceDataEnum.getQueryColumns().split(",", 4); + resultMap.put(deviceType, this.baseMapper.monitorData(deviceDataEnum.getTableName(), + deviceDataEnum.getTableColumns(), + queryColumns[0], + queryColumns[1], + queryColumns[2], + queryColumns[3], + deviceDataEnum.getOrderColumn(), + request, + busLedger.getLedgerCode())); + } + } + return resultMap; + } + + @Override + public List repairLog(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellNumber = null != busLedger ? busLedger.getTagNumber() : ""; + return this.baseMapper.repairLog(wellNumber); + } + + + @Override + public List lifecycleRecord(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellCode = null != busLedger ? busLedger.getLedgerCode() : ""; + List> alarmTypeMaps = this.baseMapper.alarmType(); + List lifeCycleRecordDTOList = this.baseMapper.lifecycleRecord(wellCode, request); + for (LifeCycleRecordDTO cycleRecordDTO : lifeCycleRecordDTOList) { + cycleRecordDTO.setProcessDuration(TimeConverter(cycleRecordDTO.getProcessDuration())); + cycleRecordDTO.setRealAlarm("0".equals(cycleRecordDTO.getRealAlarm()) ? "是" : "否"); + alarmTypeMaps.forEach(map -> { + if (map.get("ID").toString().equals(cycleRecordDTO.getAlarmTypeId() + "")) { + cycleRecordDTO.setAlarmTypeName(map.get("ALARM_TYPE").toString()); + } + }); + } + return lifeCycleRecordDTOList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java index 220ea80..767ab16 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java @@ -65,6 +65,7 @@ queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getType()), "TYPE", request.getType()); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getLocationCategory()), "LOCATION_CATEGORY", request.getLocationCategory()); + queryWrapper.eq( "VALID", "1"); Page pipePage = this.page(page, queryWrapper); List pipeList = pipePage.getRecords(); pipeList.forEach(pipe -> { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java new file mode 100644 index 0000000..69805e7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java @@ -0,0 +1,34 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 闸井监测 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface IBusLeakMonitorService extends IService { + + Page pageList(Page page, LeakMonitorRequestDTO request); + + List> mapList(); + + Map>> watchDataByWell(DeviceMonitorRequestDTO requestDTO); + + List latestValue(DeviceMonitorRequestDTO requestDTO); + + List lifecycleRecord(DeviceMonitorRequestDTO requestDTO); + + List repairLog(DeviceMonitorRequestDTO requestDTO); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java new file mode 100644 index 0000000..6a74e21 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.device.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.modular.device.dao.BusLeakMonitorMapper; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.modular.device.service.IBusLedgerService; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; + +/** + *

+ * 台账管理 服务实现类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class BusLeakMonitorServiceImpl extends ServiceImpl implements IBusLeakMonitorService { + + private final AbstractDictService abstractDictService; + private final IBusLedgerService iBusLedgerService; + private final CommonServer commonServer; + + + @Override + public Page pageList(Page page, LeakMonitorRequestDTO request) { + page.setOptimizeCountSql(false); + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); + List busLedgerList = pageList.getRecords(); + busLedgerList.forEach(busLedger -> { + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid()) ? commonServer.getDeptNamesByDeptId(busLedger.getDeptid()) : ""); // 监控状态字典值 + }); + return pageList; + } + + + @Override + public List> mapList() { + return this.baseMapper.list(commonServer.getDeptIds()); + } + + + @Override + public List latestValue(DeviceMonitorRequestDTO request) { +// Map> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); +// for (DeviceMonitorDTO deviceMonitorDTO : deviceMonitorDTOList) { +// Map map = new HashMap<>(); +// map.put("value",deviceMonitorDTO.getLatestValue()); +// map.put("state",deviceMonitorDTO.getState()); +// map.put("devcode",deviceMonitorDTO.getDevcode()); +// map.put("offDays",deviceMonitorDTO.getOffDays()); +// map.put("alarmContent",deviceMonitorDTO.getAlarmContent()); +// resultMap.put(deviceMonitorDTO.getDevTypeName(), map); +// } + return deviceMonitorDTOList; + } + + @Override + public Map>> watchDataByWell(DeviceMonitorRequestDTO request) { + Map>> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); + List deviceTypeList = deviceMonitorDTOList.stream().map(DeviceMonitorDTO::getDevTypeName).distinct().collect(Collectors.toList()); + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + for (String deviceType : deviceTypeList) { + DeviceDataEnum deviceDataEnum = DeviceDataEnum.typeOf(deviceType); +// resultMap.put(deviceType, this.baseMapper.getWatchData(deviceDataEnum.getTableName(), +// deviceDataEnum.getTableColumns(), deviceDataEnum.getOrderColumn(), request, +// busLedger.getLedgerCode())); + + if (null != deviceDataEnum) { + String[] queryColumns = deviceDataEnum.getQueryColumns().split(",", 4); + resultMap.put(deviceType, this.baseMapper.monitorData(deviceDataEnum.getTableName(), + deviceDataEnum.getTableColumns(), + queryColumns[0], + queryColumns[1], + queryColumns[2], + queryColumns[3], + deviceDataEnum.getOrderColumn(), + request, + busLedger.getLedgerCode())); + } + } + return resultMap; + } + + @Override + public List repairLog(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellNumber = null != busLedger ? busLedger.getTagNumber() : ""; + return this.baseMapper.repairLog(wellNumber); + } + + + @Override + public List lifecycleRecord(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellCode = null != busLedger ? busLedger.getLedgerCode() : ""; + List> alarmTypeMaps = this.baseMapper.alarmType(); + List lifeCycleRecordDTOList = this.baseMapper.lifecycleRecord(wellCode, request); + for (LifeCycleRecordDTO cycleRecordDTO : lifeCycleRecordDTOList) { + cycleRecordDTO.setProcessDuration(TimeConverter(cycleRecordDTO.getProcessDuration())); + cycleRecordDTO.setRealAlarm("0".equals(cycleRecordDTO.getRealAlarm()) ? "是" : "否"); + alarmTypeMaps.forEach(map -> { + if (map.get("ID").toString().equals(cycleRecordDTO.getAlarmTypeId() + "")) { + cycleRecordDTO.setAlarmTypeName(map.get("ALARM_TYPE").toString()); + } + }); + } + return lifeCycleRecordDTOList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java index 220ea80..767ab16 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java @@ -65,6 +65,7 @@ queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getType()), "TYPE", request.getType()); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getLocationCategory()), "LOCATION_CATEGORY", request.getLocationCategory()); + queryWrapper.eq( "VALID", "1"); Page pipePage = this.page(page, queryWrapper); List pipeList = pipePage.getRecords(); pipeList.forEach(pipe -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java index c8629bc..b249d8f 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -38,9 +38,9 @@ String TASK_STATUS = "inspectionStatus"; - //离线 - String DEVICE_ONLINE = "1"; //在线 + String DEVICE_ONLINE = "1"; + //离线 String DEVICE_OFFLINE= "0"; //故障 String DEVICE_FAILURE= "3"; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java index 68cdc83..ce3ad92 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/OverViewController.java @@ -5,14 +5,12 @@ import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; -import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; -import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.MessageLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.modular.alarm.service.IMessageLogService; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,5 +92,28 @@ } + @ApiOperation("设备监控列表") + @PostMapping("/deviceMonitorList") + @ResponseBody + public ReturnDTO deviceMonitorList(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iOverViewService.deviceMonitorList(page, requestDTO))); + + } + + @ApiOperation("行政区域视图") + @PostMapping("/areaStatistics") + @ResponseBody + public ReturnDTO areaStatistics() { + return ReturnUtil.success(iOverViewService.areaStatistics()); + } + + @ApiOperation("点位视图") + @PostMapping("/pointStatistics") + @ResponseBody + public ReturnDTO pointStatistics() { + return ReturnUtil.success(iOverViewService.pointStatistics()); + } + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java index 6b82829..2b71237 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/OverViewMapper.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -22,6 +24,8 @@ List overall(@Param("deptStrs") String deptStrs); + List pointStatistics(@Param("deptStrs") String deptStrs); + List deviceStatus(@Param("deptStrs") String deptStrs); List alarmPosition(@Param("alarmType") String alarmType, @@ -33,16 +37,20 @@ @Param("request") AlarmTypeRequestDTO request); List alarmCompany(@Param("alarmType") String alarmType, - @Param("deptStrs") String deptStrs, - @Param("request") AlarmPositionRequestDTO request); - + @Param("deptStrs") String deptStrs, + @Param("request") AlarmPositionRequestDTO request); List monitorStatistics(@Param("deptStrs") String deptStrs); + List areaStatistics(@Param("deptStrs") String deptStrs); + List hazardList(@Param("deptStrs") String deptStrs); @Select("SELECT id as deviceTypeId,WATCH_TYPE FROM `base_device_type` where IS_USED='1'") List deviceTypeList(); + Page deviceMonitorList(Page page, @Param("request") DeviceMonitorRequestDTO request, @Param("deptIdStr") String deptIdStr); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml index 2ebfe57..124331f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/OverViewMapper.xml @@ -30,7 +30,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='1' - + and bv.DEPTID in (${deptStrs}) UNION ALL @@ -39,7 +39,7 @@ LEFT JOIN bus_ledger_all_view bv on bl.LEDGER_ID = bv.id and bv.VALID='1' and bv.type= bl.TYPE where bl.VALID='1' and bl.TYPE='2' - + and bv.DEPTID in (${deptStrs}) @@ -170,7 +170,6 @@ - + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java new file mode 100644 index 0000000..db7cf48 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AreaMonitorDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class AreaMonitorDTO { + + + private int sum; + + private String onlineState; + + private String monitorType; + + private String locationType; + + private String area; + + private Long deviceType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java new file mode 100644 index 0000000..4e6cd72 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorRequestDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceMonitorRequestDTO { + + + @ApiModelProperty("风险类别1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + + @ApiModelProperty("隐患监测:1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线") + private String watchObject; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("监控状态(1:在线,0:离线,2:报警,3:故障)") + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java new file mode 100644 index 0000000..5f9e7ab --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceMonitorResponseDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceMonitorResponseDTO { + + + @ApiModelProperty("位置编号") + private String ledgerCode; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("位置编号") + private String ledgerName; + + @ApiModelProperty("位号") + private String locationType; + @ApiModelProperty("位置编号") + private String devcode; + + @ApiModelProperty("位号") + private String onlineState; + @ApiModelProperty("位置编号") + private String watchObject; + + @ApiModelProperty("位号") + private String watchType; + @ApiModelProperty("位置编号") + private String monitorValue; + + @ApiModelProperty("位号") + private String monitorContent; + @ApiModelProperty("位置编号") + private String cell; + + @ApiModelProperty("位号") + private Date logTime; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("单位名称") + private String deptName; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java index 7bb90f7..bf17c30 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IOverViewService.java @@ -1,8 +1,10 @@ package com.casic.missiles.modular.alarm.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import java.util.List; import java.util.Map; @@ -23,6 +25,12 @@ Map monitorStatistics(); + Map areaStatistics(); + + List pointStatistics(); + + Page deviceMonitorList(Page page,DeviceMonitorRequestDTO requestDTO); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 d059748..b0d00bb 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 @@ -525,7 +525,7 @@ updateWrapper.eq("DEVCODE", devCode); updateWrapper.eq("EXCEPTION_TYPE", "1"); //只有挂起和已处置的才消 - updateWrapper.ge("PROCESS_STATUS", "3"); +// updateWrapper.ge("PROCESS_STATUS", "3"); updateWrapper.eq("STATUS", "1"); updateWrapper.set("STATUS", "0"); updateWrapper.set("CANCEL_TIME", new Date()); @@ -823,15 +823,16 @@ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); this.updateById(alarmRecords); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecords.getId(), "1", + "", "8", + null)); + //添加消息通知 + iMessageLogService.save(new MessageLog(alarmRecords.getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecords.getPosition().concat(alarmRecords.getAlarmMsg()). + concat("报警解除"), alarmRecords.getLedgerNumber())); }); - //添加流程日志 - approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", - "", "8", - null)); - //添加消息通知 - iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). - concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 60a6cc0..4e9ace5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,13 +1,16 @@ package com.casic.missiles.modular.alarm.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; +import com.casic.missiles.modular.device.dto.PointMonitorDTO; import com.casic.missiles.server.CommonServer; +import com.casic.missiles.util.CommonUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,6 +33,9 @@ private final CommonServer commonServer; //2:穿越点,3:占压隐患,4:应急监测 private final String[] hazardTypeArr = {"2", "3", "4"}; + //"01": "东城","02": "西城","03": "朝阳","04": "丰台","05": "石景山","06": "海淀","07": "门头沟","08": "房山","09": "通州","10": "顺义", + //"11": "昌平","12": "大兴","13": "怀柔","14": "平谷","16": "延庆","17": "亦庄","18": "新疆","15": "密云","19": "海南" + private final String[] areaArr = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"}; @Override public List overall() { @@ -62,14 +68,12 @@ List hazardDTOList = this.baseMapper.hazardList(commonServer.getDeptIds()); int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0; - - Map mapResult = new HashMap<>(); for (MonitorDTO monitorDTO : monitorDTOList) { for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { if (monitorDTO.getDeviceType().equals(deviceTypeDTO.getDeviceTypeId() + "")) { //泄漏 - if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + if (ObjectUtil.isNotEmpty(deviceTypeDTO.getWatchType()) && deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { leakTotalCount++; if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { leakOffCount++; @@ -108,13 +112,13 @@ int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; for (HazardDTO hazardDTO : hazardDTOList) { if (hazardType.equals(hazardDTO.getLocationCategory())) { - hazardTotalCount+=hazardDTO.getSum(); + hazardTotalCount += hazardDTO.getSum(); if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { - hazardOffCount+=hazardDTO.getSum(); + hazardOffCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { - hazardAlarmCount+=hazardDTO.getSum(); + hazardAlarmCount += hazardDTO.getSum(); } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { - hazardExceptionCount+=hazardDTO.getSum(); + hazardExceptionCount += hazardDTO.getSum(); } } } @@ -126,4 +130,106 @@ } return mapResult; } + + @Override + public Page deviceMonitorList(Page page, DeviceMonitorRequestDTO requestDTO) { + page.setOptimizeCountSql(false); + Page responseDTOPage = this.baseMapper.deviceMonitorList(page, requestDTO, commonServer.getDeptScopeIds(requestDTO.getDeptid())); + List deviceMonitorResponseDTOS = responseDTOPage.getRecords(); + deviceMonitorResponseDTOS.forEach(deviceMonitorResponseDTO -> { + deviceMonitorResponseDTO.setDeptName(ObjectUtil.isNotEmpty(deviceMonitorResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceMonitorResponseDTO.getDeptid()) : ""); + }); + return responseDTOPage; + } + + @Override + public Map areaStatistics() { + List areaMonitorDTOList = this.baseMapper.areaStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + Map resultMap = new HashMap<>(); + for (String areaCode : areaArr) { + Map mapResult = new HashMap<>(); + int leakNormalCount = 0, leakExceptionCount = 0, leakOffCount = 0, leakAlarmCount = 0, leakTotalCount = 0, + damageNormalCount = 0, damageExceptionCount = 0, damageOffCount = 0, damageAlarmCount = 0, damageTotalCount = 0, + hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + + for (String hazardType : hazardTypeArr) { + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + for (AreaMonitorDTO areaMonitorDTO : areaMonitorDTOList) { + if (areaCode.equals(areaMonitorDTO.getArea())) { + //为长期设备,统计泄漏和开挖 + if (DictEnum.MONITOR_TYPE_1.equals(areaMonitorDTO.getMonitorType())) { + for (DeviceTypeDTO deviceTypeDTO : deviceTypeDTOList) { + if (areaMonitorDTO.getDeviceType() == deviceTypeDTO.getDeviceTypeId()) { + //泄漏 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_1)) { + leakTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + leakOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + leakAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + leakExceptionCount += areaMonitorDTO.getSum(); + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + damageOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + damageAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + damageExceptionCount += areaMonitorDTO.getSum(); + } + } + } + } + //为临时设备统计隐患监测 + } else if (DictEnum.MONITOR_TYPE_0.equals(areaMonitorDTO.getMonitorType())) { + for (String hazardType : hazardTypeArr) { + if (hazardType.equals(areaMonitorDTO.getLocationType())) { + hazardTotalCount += areaMonitorDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(areaMonitorDTO.getOnlineState())) { + hazardOffCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(areaMonitorDTO.getOnlineState())) { + hazardAlarmCount += areaMonitorDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(areaMonitorDTO.getOnlineState())) { + hazardExceptionCount += areaMonitorDTO.getSum(); + } + } + mapResult.put("hazardTotalCount".concat(hazardType), hazardTotalCount); + mapResult.put("hazardAlarmCount".concat(hazardType), hazardAlarmCount); + mapResult.put("hazardOffCount".concat(hazardType), hazardOffCount); + mapResult.put("hazardExceptionCount".concat(hazardType), hazardExceptionCount); + mapResult.put("hazardNormalCount".concat(hazardType), hazardTotalCount - hazardAlarmCount - hazardOffCount - hazardExceptionCount); + } + } + + } + } + mapResult.put("leakTotalCount", leakTotalCount); + mapResult.put("leakNormalCount", leakTotalCount - leakAlarmCount - leakOffCount - leakExceptionCount); + mapResult.put("leakAlarmCount", leakAlarmCount); + mapResult.put("leakOffCount", leakOffCount); + mapResult.put("leakExceptionCount", leakExceptionCount); + mapResult.put("damageTotalCount", damageTotalCount); + mapResult.put("damageAlarmCount", damageAlarmCount); + mapResult.put("damageNormalCount", damageTotalCount - damageAlarmCount - damageOffCount - damageExceptionCount); + mapResult.put("damageOffCount", damageOffCount); + mapResult.put("damageExceptionCount", damageExceptionCount); + resultMap.put(areaCode, mapResult); + } + return resultMap; + } + + @Override + public List pointStatistics() { + return baseMapper.pointStatistics(commonServer.getDeptIds()); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java index a3e45c4..dfbc243 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasOtherServiceImpl.java @@ -216,7 +216,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index c953c4a..bacb089 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java @@ -194,7 +194,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java index dfed7d1..caee721 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasliquidGasServiceImpl.java @@ -212,7 +212,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及设备状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java index e51c968..8a77315 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataMonitorPipeOtherServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.enums.AlarmEnum; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.enums.DictEnum; import com.casic.missiles.modular.alarm.dto.AlarmDeviceRuleResponseDTO; @@ -189,6 +190,7 @@ String VibL = ((JSONObject) jsonArray.get(i)).getString("VibL"); String VibR = ((JSONObject) jsonArray.get(i)).getString("VibR"); String uptime = ((JSONObject) jsonArray.get(i)).getString("uptime"); + String alarmContent=""; //1.存数据 save(DataMonitorPipeOther.builder() .wellCode(busWellDTOList != null && busWellDTOList.size() > 0 ? busWellDTOList.get(0).getLedgerCode() : "") @@ -217,6 +219,7 @@ if ("Sloping".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Sloping)&&(!alarmRecordsService.isWatchAlarms(devCode,"Sloping"))) { alarmRecordsService.saveWatchAlarms(devCode, "Sloping", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Sloping")).concat(","); } else if ("0".equals(Sloping)) { alarmRecordsService.cancelWatchAlarms(devCode, "Sloping"); @@ -225,6 +228,7 @@ if ("Destroy".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Destroy)&&(!alarmRecordsService.isWatchAlarms(devCode,"Destroy"))) { alarmRecordsService.saveWatchAlarms(devCode, "Destroy", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Destroy")).concat(","); } else if ("0".equals(Destroy)) { alarmRecordsService.cancelWatchAlarms(devCode, "Destroy"); @@ -233,6 +237,7 @@ if ("Leak".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(Leak)&&(!alarmRecordsService.isWatchAlarms(devCode,"Leak"))) { alarmRecordsService.saveWatchAlarms(devCode, "Leak", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("Leak")).concat(","); } else if ("0".equals(Leak)) { alarmRecordsService.cancelWatchAlarms(devCode, "Leak"); @@ -241,6 +246,7 @@ if ("DiscL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscL)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscL"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscL")).concat(","); } else if ("0".equals(DiscL)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscL"); @@ -249,6 +255,7 @@ if ("DiscR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(DiscR)&&(!alarmRecordsService.isWatchAlarms(devCode,"DiscR"))) { alarmRecordsService.saveWatchAlarms(devCode, "DiscR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("DiscR")).concat(","); } else if ("0".equals(DiscR)) { alarmRecordsService.cancelWatchAlarms(devCode, "DiscR"); } @@ -257,6 +264,7 @@ if ("VibL".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibL)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibL"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibL", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibL")).concat(","); } else if ("0".equals(VibL)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibL"); } @@ -264,6 +272,7 @@ if ("VibR".equals(ruleResponseDTO.getAlarmThreshold())) { if ("1".equals(VibR)&&(!alarmRecordsService.isWatchAlarms(devCode,"VibR"))) { alarmRecordsService.saveWatchAlarms(devCode, "VibR", uptime, busWellDTOList, ruleResponseDTO.getAlarmTypeId(), ruleResponseDTO.getAlarmLevelId(), ruleResponseDTO.getAlarmTypeName(), DeviceTypeEnum.MonitorPipeOther.getName()); + alarmContent.concat(AlarmEnum.getValue("VibR")).concat(","); } else if ("0".equals(VibR)) { alarmRecordsService.cancelWatchAlarms(devCode, "VibR"); } @@ -318,11 +327,11 @@ } } //5.清数据报警 - if (!alarmFlag) { + if (ObjectUtil.isEmpty(alarmContent)) { alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, CH4L + "," + CH4R, alarmFlag ? "燃气浓度达到".concat(CH4L).concat(",").concat(CH4R).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, ObjectUtil.isNotEmpty(alarmContent) ? "2" : "1", cell, "", ObjectUtil.isNotEmpty(alarmContent) ? alarmContent.substring(0, alarmContent.length() - 1) : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index c58dc5f..c5714ea 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -217,7 +217,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? gas.concat("%LEL") : ""); //7.更新管线状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updatePipeStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java new file mode 100644 index 0000000..7fa0488 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLeakMonitorController.java @@ -0,0 +1,106 @@ +package com.casic.missiles.modular.device.controller; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorDTO; +import com.casic.missiles.modular.device.dto.LeakMonitorRequestDTO; +import com.casic.missiles.modular.device.dto.LifeCycleRecordDTO; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Api(tags = "泄漏监测模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/monitor/leak") +public class BusLeakMonitorController extends ExportController { + + private final IBusLeakMonitorService leakMonitorService; + private final IBaseExportService iBaseExportService; + + @ApiOperation("查询分页接口,列表用") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody LeakMonitorRequestDTO request) { + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(leakMonitorService.pageList(page, request))); + } + + @ApiOperation("查询接口,地图用") + @PostMapping("/list") + @ResponseBody + public ReturnDTO mapList() { + + return ReturnUtil.success(leakMonitorService.mapList()); + } + +// @ApiOperation("查看闸井监控数据") +// @PostMapping("/watchDataByWell") +// @ResponseBody +// public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.watchDataByWell(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录查询") +// @PostMapping("/lifecycleRecord") +// @ResponseBody +// public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.lifecycleRecord(requestDTO)); +// } +// +// @ApiOperation("全生命周期记录导出") +// @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) +// public void lifecycleRecordExp(DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// try { +// iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, leakMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @ApiOperation("监控设备维护记录") +// @PostMapping("/repairLog") +// @ResponseBody +// public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { +// Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { +// throw new BusinessException(BusinessExceptionEnum.ID_NULL); +// }); +// return ReturnUtil.success(leakMonitorService.repairLog(requestDTO)); +// } + + @ApiOperation("闸井最新监测值显示") + @PostMapping("/latestValue") + @ResponseBody + public ReturnDTO latestValue(@RequestBody DeviceMonitorRequestDTO requestDTO) { + Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(leakMonitorService.latestValue(requestDTO)); + } + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java new file mode 100644 index 0000000..88b72c6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLeakMonitorMapper.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.device.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 台账管理 Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface BusLeakMonitorMapper extends BaseMapper { + Page pageList(@Param("deptIds") String deptIds, + Page page, + @Param("request") LeakMonitorRequestDTO request); + + List> list(@Param("deptIds") String deptIds); + + @Select("WITH device_tmp as (SELECT bd.devcode,bd.DEVICE_TYPE,bd.MONITOR_VALUE,bd.ONLINE_STATE,bd.MONITOR_CONTENT, " + + "IF( bd.ONLINE_STATE = '0', IF ( bd.LOGTIME is not null, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate " + + " FROM bus_device bd where " + + " EXISTS (SELECT 1 from bus_device_ledger bl where bl.DEVICE_ID= bd.id and bl.LEDGER_ID=${ledgerId} and bl.VALID='1')) " + + " SELECT device.devcode , " + + " device.DEVICE_TYPE as devTypeId,sd.TYPE_NAME as devTypeName,device.MONITOR_VALUE as latestValue,device.ONLINE_STATE as state,device.MONITOR_CONTENT AS alarmContent, " + + " TIMESTAMPDIFF(DAY, device.offDate , NOW()) as offDays " + + " FROM device_tmp device LEFT JOIN base_device_type sd on sd.ID= device.DEVICE_TYPE") + List getDeviceList(@Param("ledgerId") Long ledgerId); + + List> getWatchData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellCode") String wellCode); + + List repairLog(@Param("wellNumber") String wellNumber); + + List lifecycleRecord(@Param("wellCode") String wellCode, + @Param("request") DeviceMonitorRequestDTO request); + + @Select("SELECT at.ID,at.ALARM_TYPE FROM `alarm_type` at ") + List> alarmType(); + + List> monitorData(@Param("tableName") String tableName, + @Param("tableColumns") String tableColumns, + @Param("devcode") String devcode, + @Param("uptime") String uptime, + @Param("logtime") String logtime, + @Param("wellCode") String wellCode, + @Param("orderColumn") String orderColumn, + @Param("request") DeviceMonitorRequestDTO request, + @Param("wellNumber") String wellNumber); + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml new file mode 100644 index 0000000..798a6ab --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLeakMonitorMapper.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ID, LEDGER_CODE, LEDGER_NAME, TAG_NUMBER, COORDINATE_X, COORDINATE_Y, LNG_BAIDU, LAT_BAIDU, LNG_GAODE, LAT_GAODE, POSITION, DEPTID, RESPONSIBLE_DEPT, MANAGE_TYPE, ON_STATE, LOCATION_STATE, WELL_TYPE, TS, VALID, BFZT, `TYPE`, TARGET_ID, MARKER, SFQ, PROPERTY_OWNER, MONITOR_STATE + + + + + + + + + + + + + + + + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java new file mode 100644 index 0000000..6f20fc9 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorDTO.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + @ApiModelProperty("地址") + private String place; + + @ApiModelProperty("台账类型(1:闸井,2:场站,3管线)") + private String type; + + @ApiModelProperty("单位名称") + private String deptName; + + @ApiModelProperty("监测值") + private String monitorValue; + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("最新时间") + private String logTime; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("电量") + private String cell; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java new file mode 100644 index 0000000..9980a63 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LeakMonitorRequestDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class LeakMonitorRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("名称") + private String ledgerName; + + + @ApiModelProperty("台账类型(1:闸井,2:场站,3:管线)") + private String type; + + + @ApiModelProperty("管理单位") + private Long deptid; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + + @ApiModelProperty("产权单位") + private String propertyOwner; + + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java new file mode 100644 index 0000000..d074feb --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PointMonitorDTO.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PointMonitorDTO implements Serializable { + + private static final long serialVersionUID = 1455452222121L; + + @ApiModelProperty("位号") + private String tagNumber; + + @ApiModelProperty("编号") + private String ledgerCode; + + @ApiModelProperty("1:闸井,2:场站,3:管线") + private String type; + + @ApiModelProperty("名称,闸井/场站用") + private String ledgerName; + + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点") + private String locationType; + + @ApiModelProperty("1:长期,0:临时,根据这个字段值为0可以判断是隐患监测") + private String monitorType; + + @ApiModelProperty("监控状态(0:未监控,1:正常,2:异常,3:离线)") + private String monitorState; + + @ApiModelProperty("经度(高德)") + private String lngGaode; + + @ApiModelProperty("纬度(高德)") + private String latGaode; + + @ApiModelProperty("管理单位id") + private Long deptid; + + @ApiModelProperty("产权单位") + private String propertyOwner; + + @ApiModelProperty("管理方式(0:自有,1:自管)") + private String manageType; + + @ApiModelProperty("区域") + private String area; + +// @ApiModelProperty("单位名称") +// private String deptName; + + @ApiModelProperty("台账id") + private Long id; + + @ApiModelProperty("1:泄漏监测、2:防外力破坏、3:隐患监测") + private String watchType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index c3bcce1..71e0148 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -72,7 +72,7 @@ @TableField("`TYPE`") private String type; - @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @ApiModelProperty("位置类别(1:管线监测点;2:交叉穿越点;3:占压隐患点;4:应急监测点)") @TableField("LOCATION_CATEGORY") private String locationCategory; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java new file mode 100644 index 0000000..69805e7 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLeakMonitorService.java @@ -0,0 +1,34 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 闸井监测 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface IBusLeakMonitorService extends IService { + + Page pageList(Page page, LeakMonitorRequestDTO request); + + List> mapList(); + + Map>> watchDataByWell(DeviceMonitorRequestDTO requestDTO); + + List latestValue(DeviceMonitorRequestDTO requestDTO); + + List lifecycleRecord(DeviceMonitorRequestDTO requestDTO); + + List repairLog(DeviceMonitorRequestDTO requestDTO); + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java new file mode 100644 index 0000000..6a74e21 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLeakMonitorServiceImpl.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.device.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.modular.device.dao.BusLeakMonitorMapper; +import com.casic.missiles.modular.device.dto.*; +import com.casic.missiles.modular.device.entity.BusDeviceLog; +import com.casic.missiles.modular.device.entity.BusLedger; +import com.casic.missiles.modular.device.service.IBusLeakMonitorService; +import com.casic.missiles.modular.device.service.IBusLedgerService; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.casic.missiles.util.TimeConvertUtil.TimeConverter; + +/** + *

+ * 台账管理 服务实现类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class BusLeakMonitorServiceImpl extends ServiceImpl implements IBusLeakMonitorService { + + private final AbstractDictService abstractDictService; + private final IBusLedgerService iBusLedgerService; + private final CommonServer commonServer; + + + @Override + public Page pageList(Page page, LeakMonitorRequestDTO request) { + page.setOptimizeCountSql(false); + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); + List busLedgerList = pageList.getRecords(); + busLedgerList.forEach(busLedger -> { + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid()) ? commonServer.getDeptNamesByDeptId(busLedger.getDeptid()) : ""); // 监控状态字典值 + }); + return pageList; + } + + + @Override + public List> mapList() { + return this.baseMapper.list(commonServer.getDeptIds()); + } + + + @Override + public List latestValue(DeviceMonitorRequestDTO request) { +// Map> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); +// for (DeviceMonitorDTO deviceMonitorDTO : deviceMonitorDTOList) { +// Map map = new HashMap<>(); +// map.put("value",deviceMonitorDTO.getLatestValue()); +// map.put("state",deviceMonitorDTO.getState()); +// map.put("devcode",deviceMonitorDTO.getDevcode()); +// map.put("offDays",deviceMonitorDTO.getOffDays()); +// map.put("alarmContent",deviceMonitorDTO.getAlarmContent()); +// resultMap.put(deviceMonitorDTO.getDevTypeName(), map); +// } + return deviceMonitorDTOList; + } + + @Override + public Map>> watchDataByWell(DeviceMonitorRequestDTO request) { + Map>> resultMap = new HashMap<>(); + List deviceMonitorDTOList = this.baseMapper.getDeviceList(request.getWellId()); + List deviceTypeList = deviceMonitorDTOList.stream().map(DeviceMonitorDTO::getDevTypeName).distinct().collect(Collectors.toList()); + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + for (String deviceType : deviceTypeList) { + DeviceDataEnum deviceDataEnum = DeviceDataEnum.typeOf(deviceType); +// resultMap.put(deviceType, this.baseMapper.getWatchData(deviceDataEnum.getTableName(), +// deviceDataEnum.getTableColumns(), deviceDataEnum.getOrderColumn(), request, +// busLedger.getLedgerCode())); + + if (null != deviceDataEnum) { + String[] queryColumns = deviceDataEnum.getQueryColumns().split(",", 4); + resultMap.put(deviceType, this.baseMapper.monitorData(deviceDataEnum.getTableName(), + deviceDataEnum.getTableColumns(), + queryColumns[0], + queryColumns[1], + queryColumns[2], + queryColumns[3], + deviceDataEnum.getOrderColumn(), + request, + busLedger.getLedgerCode())); + } + } + return resultMap; + } + + @Override + public List repairLog(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellNumber = null != busLedger ? busLedger.getTagNumber() : ""; + return this.baseMapper.repairLog(wellNumber); + } + + + @Override + public List lifecycleRecord(DeviceMonitorRequestDTO request) { + BusLedger busLedger = iBusLedgerService.getById(request.getWellId()); + String wellCode = null != busLedger ? busLedger.getLedgerCode() : ""; + List> alarmTypeMaps = this.baseMapper.alarmType(); + List lifeCycleRecordDTOList = this.baseMapper.lifecycleRecord(wellCode, request); + for (LifeCycleRecordDTO cycleRecordDTO : lifeCycleRecordDTOList) { + cycleRecordDTO.setProcessDuration(TimeConverter(cycleRecordDTO.getProcessDuration())); + cycleRecordDTO.setRealAlarm("0".equals(cycleRecordDTO.getRealAlarm()) ? "是" : "否"); + alarmTypeMaps.forEach(map -> { + if (map.get("ID").toString().equals(cycleRecordDTO.getAlarmTypeId() + "")) { + cycleRecordDTO.setAlarmTypeName(map.get("ALARM_TYPE").toString()); + } + }); + } + return lifeCycleRecordDTOList; + } + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java index 220ea80..767ab16 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerPipeServiceImpl.java @@ -65,6 +65,7 @@ queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getType()), "TYPE", request.getType()); queryWrapper.eq(ObjectUtil.isNotEmpty(request.getLocationCategory()), "LOCATION_CATEGORY", request.getLocationCategory()); + queryWrapper.eq( "VALID", "1"); Page pipePage = this.page(page, queryWrapper); List pipeList = pipePage.getRecords(); pipeList.forEach(pipe -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java index c8629bc..b249d8f 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DictEnum.java @@ -38,9 +38,9 @@ String TASK_STATUS = "inspectionStatus"; - //离线 - String DEVICE_ONLINE = "1"; //在线 + String DEVICE_ONLINE = "1"; + //离线 String DEVICE_OFFLINE= "0"; //故障 String DEVICE_FAILURE= "3"; diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 0df8dc1..f1b95ae 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/casic_iot_platform?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true + url: jdbc:mysql://111.198.10.15:11336/casic_iot_br1?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true username: root password: Casic203 # url: jdbc:mysql://172.27.34.168:3316/casic_iot_platform?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true