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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 d13937d..220ea80 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 @@ -14,7 +14,7 @@ import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dao.BusLedgerPipeMapper; import com.casic.missiles.modular.device.dto.*; -import com.casic.missiles.modular.device.entity.*; +import com.casic.missiles.modular.device.entity.BusLedgerPipe; import com.casic.missiles.modular.device.service.IBusDeviceService; import com.casic.missiles.modular.device.service.IBusLedgerPipeService; import com.casic.missiles.server.CommonServer; @@ -24,7 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -226,4 +229,12 @@ queryWrapper.eq("TAG_NUMBER", tagNumber); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean batchDelete(List ids) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("ID", ids); + updateWrapper.set("VALID", "0"); + return this.update(updateWrapper); + } } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 d13937d..220ea80 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 @@ -14,7 +14,7 @@ import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dao.BusLedgerPipeMapper; import com.casic.missiles.modular.device.dto.*; -import com.casic.missiles.modular.device.entity.*; +import com.casic.missiles.modular.device.entity.BusLedgerPipe; import com.casic.missiles.modular.device.service.IBusDeviceService; import com.casic.missiles.modular.device.service.IBusLedgerPipeService; import com.casic.missiles.server.CommonServer; @@ -24,7 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -226,4 +229,12 @@ queryWrapper.eq("TAG_NUMBER", tagNumber); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean batchDelete(List ids) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("ID", ids); + updateWrapper.set("VALID", "0"); + return this.update(updateWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java index b3e32cd..391f87b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.device.dao.MonitorLogMapper; import com.casic.missiles.modular.device.entity.MonitorLog; import com.casic.missiles.modular.device.service.IMonitorLogService; import org.springframework.stereotype.Service; -import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; @@ -24,6 +24,10 @@ @Override public void saveMonitorLog(String serverName, String status, String remark, String severType) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("SERVER_NAME", serverName); + this.baseMapper.delete(queryWrapper); MonitorLog monitorLog = new MonitorLog(); monitorLog.setRemark(remark); monitorLog.setServerName(serverName); @@ -34,10 +38,10 @@ @Override public void checkServer() { - this.saveMonitorLog("xtServer",isHostReachable("172.17.240.116",9092)?"1":"0","迅腾大眼据服务","2"); - this.saveMonitorLog("sensorhubServer",isHostReachable("172.17.112.21",4011)?"1":"0","新协议解析服务","2"); - this.saveMonitorLog("mysqlServer",(isHostReachable("172.27.34.168",3316)?"1":"0"),"数据库服务","2"); - this.saveMonitorLog("redis",(isHostReachable("172.17.112.21",6379)?"1":"0"),"redis服务","2"); + this.saveMonitorLog("xtServer", isHostReachable("172.17.240.116", 9092) ? "1" : "0", "迅腾大眼据服务", "2"); + this.saveMonitorLog("sensorhubServer", isHostReachable("172.17.112.21", 4011) ? "1" : "0", "新协议解析服务", "2"); + this.saveMonitorLog("mysqlServer", (isHostReachable("172.27.34.168", 3316) ? "1" : "0"), "数据库服务", "2"); + this.saveMonitorLog("redis", (isHostReachable("172.17.112.21", 6379) ? "1" : "0"), "redis服务", "2"); } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 d13937d..220ea80 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 @@ -14,7 +14,7 @@ import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dao.BusLedgerPipeMapper; import com.casic.missiles.modular.device.dto.*; -import com.casic.missiles.modular.device.entity.*; +import com.casic.missiles.modular.device.entity.BusLedgerPipe; import com.casic.missiles.modular.device.service.IBusDeviceService; import com.casic.missiles.modular.device.service.IBusLedgerPipeService; import com.casic.missiles.server.CommonServer; @@ -24,7 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -226,4 +229,12 @@ queryWrapper.eq("TAG_NUMBER", tagNumber); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean batchDelete(List ids) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("ID", ids); + updateWrapper.set("VALID", "0"); + return this.update(updateWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java index b3e32cd..391f87b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.device.dao.MonitorLogMapper; import com.casic.missiles.modular.device.entity.MonitorLog; import com.casic.missiles.modular.device.service.IMonitorLogService; import org.springframework.stereotype.Service; -import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; @@ -24,6 +24,10 @@ @Override public void saveMonitorLog(String serverName, String status, String remark, String severType) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("SERVER_NAME", serverName); + this.baseMapper.delete(queryWrapper); MonitorLog monitorLog = new MonitorLog(); monitorLog.setRemark(remark); monitorLog.setServerName(serverName); @@ -34,10 +38,10 @@ @Override public void checkServer() { - this.saveMonitorLog("xtServer",isHostReachable("172.17.240.116",9092)?"1":"0","迅腾大眼据服务","2"); - this.saveMonitorLog("sensorhubServer",isHostReachable("172.17.112.21",4011)?"1":"0","新协议解析服务","2"); - this.saveMonitorLog("mysqlServer",(isHostReachable("172.27.34.168",3316)?"1":"0"),"数据库服务","2"); - this.saveMonitorLog("redis",(isHostReachable("172.17.112.21",6379)?"1":"0"),"redis服务","2"); + this.saveMonitorLog("xtServer", isHostReachable("172.17.240.116", 9092) ? "1" : "0", "迅腾大眼据服务", "2"); + this.saveMonitorLog("sensorhubServer", isHostReachable("172.17.112.21", 4011) ? "1" : "0", "新协议解析服务", "2"); + this.saveMonitorLog("mysqlServer", (isHostReachable("172.27.34.168", 3316) ? "1" : "0"), "数据库服务", "2"); + this.saveMonitorLog("redis", (isHostReachable("172.17.112.21", 6379) ? "1" : "0"), "redis服务", "2"); } 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 4555eae..c8629bc 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 @@ -21,6 +21,9 @@ String VALID_ADD = "0"; + //在用 + String DEVICE_USED = "1"; + String VALID_DELETE = "1"; //未报警 String ALARM_OFF = "0"; @@ -39,6 +42,10 @@ String DEVICE_ONLINE = "1"; //在线 String DEVICE_OFFLINE= "0"; + //故障 + String DEVICE_FAILURE= "3"; + //报警 + String DEVICE_ALARM= "2"; //启用 String IS_USED= "1"; @@ -98,4 +105,15 @@ String MIS_REPORT1= "2-0-1"; String MIS_REPORT2= "2-0-2"; String LEAK= "1-2-1"; + + + //1、泄漏、2、防外力、3隐患 + String WATCH_TYPE_1= "1"; + String WATCH_TYPE_2= "2"; + String WATCH_TYPE_3= "3"; + + + //1、长期、0、临时 + String MONITOR_TYPE_1= "1"; + String MONITOR_TYPE_0= "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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 d13937d..220ea80 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 @@ -14,7 +14,7 @@ import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dao.BusLedgerPipeMapper; import com.casic.missiles.modular.device.dto.*; -import com.casic.missiles.modular.device.entity.*; +import com.casic.missiles.modular.device.entity.BusLedgerPipe; import com.casic.missiles.modular.device.service.IBusDeviceService; import com.casic.missiles.modular.device.service.IBusLedgerPipeService; import com.casic.missiles.server.CommonServer; @@ -24,7 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -226,4 +229,12 @@ queryWrapper.eq("TAG_NUMBER", tagNumber); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean batchDelete(List ids) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("ID", ids); + updateWrapper.set("VALID", "0"); + return this.update(updateWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java index b3e32cd..391f87b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.device.dao.MonitorLogMapper; import com.casic.missiles.modular.device.entity.MonitorLog; import com.casic.missiles.modular.device.service.IMonitorLogService; import org.springframework.stereotype.Service; -import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; @@ -24,6 +24,10 @@ @Override public void saveMonitorLog(String serverName, String status, String remark, String severType) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("SERVER_NAME", serverName); + this.baseMapper.delete(queryWrapper); MonitorLog monitorLog = new MonitorLog(); monitorLog.setRemark(remark); monitorLog.setServerName(serverName); @@ -34,10 +38,10 @@ @Override public void checkServer() { - this.saveMonitorLog("xtServer",isHostReachable("172.17.240.116",9092)?"1":"0","迅腾大眼据服务","2"); - this.saveMonitorLog("sensorhubServer",isHostReachable("172.17.112.21",4011)?"1":"0","新协议解析服务","2"); - this.saveMonitorLog("mysqlServer",(isHostReachable("172.27.34.168",3316)?"1":"0"),"数据库服务","2"); - this.saveMonitorLog("redis",(isHostReachable("172.17.112.21",6379)?"1":"0"),"redis服务","2"); + this.saveMonitorLog("xtServer", isHostReachable("172.17.240.116", 9092) ? "1" : "0", "迅腾大眼据服务", "2"); + this.saveMonitorLog("sensorhubServer", isHostReachable("172.17.112.21", 4011) ? "1" : "0", "新协议解析服务", "2"); + this.saveMonitorLog("mysqlServer", (isHostReachable("172.27.34.168", 3316) ? "1" : "0"), "数据库服务", "2"); + this.saveMonitorLog("redis", (isHostReachable("172.17.112.21", 6379) ? "1" : "0"), "redis服务", "2"); } 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 4555eae..c8629bc 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 @@ -21,6 +21,9 @@ String VALID_ADD = "0"; + //在用 + String DEVICE_USED = "1"; + String VALID_DELETE = "1"; //未报警 String ALARM_OFF = "0"; @@ -39,6 +42,10 @@ String DEVICE_ONLINE = "1"; //在线 String DEVICE_OFFLINE= "0"; + //故障 + String DEVICE_FAILURE= "3"; + //报警 + String DEVICE_ALARM= "2"; //启用 String IS_USED= "1"; @@ -98,4 +105,15 @@ String MIS_REPORT1= "2-0-1"; String MIS_REPORT2= "2-0-2"; String LEAK= "1-2-1"; + + + //1、泄漏、2、防外力、3隐患 + String WATCH_TYPE_1= "1"; + String WATCH_TYPE_2= "2"; + String WATCH_TYPE_3= "3"; + + + //1、长期、0、临时 + String MONITOR_TYPE_1= "1"; + String MONITOR_TYPE_0= "0"; } diff --git a/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java b/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java index 50aed19..edac698 100644 --- a/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java +++ b/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java @@ -2,6 +2,7 @@ import cn.hutool.core.convert.Convert; +import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -13,6 +14,8 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import java.io.Serializable; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -25,7 +28,7 @@ @Cacheable(value = "deptNameCache", key = "#deptId") public String getDeptNamesByDeptId(Long deptId) { - List deptIds = abstractDeptService.getParentListById(deptId); + List deptIds = this.getParentListById(deptId); deptIds.add(deptId); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); @@ -33,7 +36,7 @@ List deptList = abstractDeptService.list(queryWrapper); List nameList = deptList.stream().filter(dept -> ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); String deptName = String.join("/", nameList); - return deptName.indexOf("北京燃气集团/")==0?deptName.replace("北京燃气集团/",""):deptName; + return deptName.indexOf("北京燃气集团/") == 0 ? deptName.replace("北京燃气集团/", "") : deptName; } // @Cacheable(value = "deptIdsCache") @@ -85,4 +88,17 @@ } } + + public List getParentListById(Serializable deptId) { + if ((new Long(0L)).equals(deptId)) { + return new ArrayList(); + } else { + Dept dept = (Dept) this.abstractDeptService.getById(deptId); + if (null == dept) return new ArrayList(); + return (List) CharSequenceUtil.split(dept.getPids(), ",").stream().filter(CharSequenceUtil::isNotEmpty).map((s) -> { + return new Long(CharSequenceUtil.removeSuffix(CharSequenceUtil.removePrefix(s, "["), "]")); + }).collect(Collectors.toList()); + } + } + } 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 24ca9ee..68cdc83 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 @@ -83,5 +83,16 @@ return ReturnUtil.success(iOverViewService.alarmPosition(alarmType, alarmPositionRequestDTO)); } + + @ApiOperation("监测概况接口") + @PostMapping("/monitorStatistics") + @ResponseBody + public ReturnDTO monitorStatistics() { + + return ReturnUtil.success(iOverViewService.monitorStatistics()); + + } + + } 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 7cdb865..6b82829 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -35,4 +36,13 @@ @Param("deptStrs") String deptStrs, @Param("request") AlarmPositionRequestDTO request); + + + List monitorStatistics(@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(); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index c22080a..a232c6d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -41,8 +41,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + and lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID @@ -499,6 +500,7 @@ bt.TYPE_NAME AS devTypeName, rd.POSITION, rd.LEDGER_NUMBER AS tagNumber, + bd.INSTALL_DATE as installDate, lr.ledgerName, lr.DEPTID, lr.lngGaode, @@ -515,17 +517,18 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE AND bd.valid > 0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID + AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + AND bl.VALID = '1' + AND lr.VALID = '1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay on ay.id = rd.ALARM_TYPE_ID LEFT JOIN bus_grid bg on lr.DEPTID=bg.DEPTID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - WHERE rd.STATUS = 1 + WHERE rd.STATUS = '1' and rd.ID = #{id} limit 1 @@ -573,8 +576,9 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 + LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = '1' + JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = '1' AND lr.VALID ='1' + AND lr.ledgerCode=rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -704,7 +708,7 @@ AND bv.type = bl.type AND bv.valid = 1 JOIN base_device_type bdt ON bdt.id = dt.DEVICE_TYPE - JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = 1 and + JOIN alarm_rule au on au.PRODUCT_ID = dt.PRODUCT_ID and au.STATE = '1' and au.ALARM_THRESHOLD = 'OffLine' join alarm_type ae on ae.id = au.ALARM_TYPE_ID) SELECT t.DEVCODE, 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 bd2d773..2ebfe57 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 @@ -169,4 +169,66 @@ + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java index efa6807..690b326 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceTypeDTO.java @@ -12,7 +12,7 @@ @ApiModelProperty("报警类型大类名称") private String alarmType; - @ApiModelProperty("监测类型") + @ApiModelProperty("监测对象") private String watchObject; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java new file mode 100644 index 0000000..e58d575 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTypeDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceTypeDTO { + + @ApiModelProperty("设备类型id") + private Long deviceTypeId; + + @ApiModelProperty("监测对象") + private String watchType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java new file mode 100644 index 0000000..4f6e538 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/HazardDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class HazardDTO { + + + private int sum; + + private String locationCategory; + + private String onlineState; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java new file mode 100644 index 0000000..6fbe699 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/MonitorDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import lombok.Data; + +@Data +public class MonitorDTO { + + + private String deviceType; + + private String onlineState; + + private String monitorType; + +} 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 0b30b68..7bb90f7 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 @@ -5,6 +5,7 @@ import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** *

@@ -20,6 +21,8 @@ List deviceStatus(); + Map monitorStatistics(); + List alarmPosition(String alarmType ,AlarmPositionRequestDTO alarmPositionRequestDTO); 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 e2ac858..60a6cc0 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 @@ -2,17 +2,18 @@ import cn.hutool.core.util.ObjectUtil; 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.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.AlarmRecords; import com.casic.missiles.modular.alarm.service.IOverViewService; 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; /** *

@@ -27,6 +28,8 @@ public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { private final CommonServer commonServer; + //2:穿越点,3:占压隐患,4:应急监测 + private final String[] hazardTypeArr = {"2", "3", "4"}; @Override public List overall() { @@ -46,8 +49,81 @@ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType, commonServer.getDeptIds(), request); alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> { alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType()) ? "闸井" : ("2".equals(alarmPositionResponseDTO.getType()) ? "场站" : "管线")); - alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid())?commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()):""); + alarmPositionResponseDTO.setDeptName(ObjectUtil.isNotEmpty(alarmPositionResponseDTO.getDeptid()) ? commonServer.getDeptNamesByDeptId(alarmPositionResponseDTO.getDeptid()) : ""); }); return alarmPositionResponseDTOList; } + + @Override + public Map monitorStatistics() { + List monitorDTOList = this.baseMapper.monitorStatistics(commonServer.getDeptIds()); + List deviceTypeDTOList = this.baseMapper.deviceTypeList(); + //获取隐患监测统计信息 + 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)) { + leakTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + leakOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + leakAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + leakExceptionCount++; + } + } + //防外力 + if (deviceTypeDTO.getWatchType().contains(DictEnum.WATCH_TYPE_2)) { + damageTotalCount++; + if (DictEnum.DEVICE_OFFLINE.equals(monitorDTO.getOnlineState())) { + damageOffCount++; + } else if (DictEnum.DEVICE_ALARM.equals(monitorDTO.getOnlineState())) { + damageAlarmCount++; + } else if (DictEnum.DEVICE_FAILURE.equals(monitorDTO.getOnlineState())) { + damageExceptionCount++; + } + } + } + } + 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); + } + + for (String hazardType : hazardTypeArr) { + int hazardNormalCount = 0, hazardExceptionCount = 0, hazardOffCount = 0, hazardAlarmCount = 0, hazardTotalCount = 0; + for (HazardDTO hazardDTO : hazardDTOList) { + if (hazardType.equals(hazardDTO.getLocationCategory())) { + hazardTotalCount+=hazardDTO.getSum(); + if (DictEnum.DEVICE_OFFLINE.equals(hazardDTO.getOnlineState())) { + hazardOffCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_ALARM.equals(hazardDTO.getOnlineState())) { + hazardAlarmCount+=hazardDTO.getSum(); + } else if (DictEnum.DEVICE_FAILURE.equals(hazardDTO.getOnlineState())) { + hazardExceptionCount+=hazardDTO.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); + } + return mapResult; + } } 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 a6701f9..c953c4a 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 @@ -120,6 +120,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); + if (i < jsonArray.size() - 1) continue; + //更新设备状态 + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); 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 f2ed864..dfed7d1 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 @@ -132,7 +132,9 @@ if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmEventCode)) continue; //2.写入新的报警 alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + //更新设备状态 + if (i < jsonArray.size() - 1) continue; + busDeviceService.updateBusDeviceStatus(devCode,DictEnum.DEVICE_FAILURE); } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 0eb8071..3d3eb66 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdsDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -102,6 +103,16 @@ return ReturnUtil.success(iBusLedgerPipeService.updateById(busLedgerPipe)); } + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iBusLedgerPipeService.batchDelete(idsDTO.getIds())); + } + @ApiOperation("分页列表查询") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java index 7c227d7..2e9f7a3 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusWellMonitorMapper.java @@ -30,7 +30,7 @@ @Param("request") BusLedgerDTO request); @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 != NULL, bd.LOGTIME, bd.INSTALL_DATE ), '' ) AS offDate "+ + "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 , " + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index afcaeff..06899a0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -41,9 +41,9 @@ bus_device bd LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN base_product bp ON bd.PRODUCT_ID = bp.ID - LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID=1 + LEFT JOIN bus_device_ledger br on br.DEVICE_ID = bd.ID AND br.VALID='1' LEFT JOIN bus_manufacturer bm on bm.ID = bp.MANUFACTURER_ID - LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID=1 and bl.type = br.type + LEFT JOIN bus_ledger_all_view bl on bl.ID = br.LEDGER_ID AND br.VALID='1' and bl.type = br.type where bd.valid>0 @@ -75,7 +75,7 @@ and CAST(bd.CELL AS UNSIGNED) #{request.cell} - and bd.CELL > 0 + and bd.CELL > 0 and bd.CELL not like '%V' and bd.LOGTIME = ]]> #{request.logTime1} @@ -86,6 +86,9 @@ and bp.DATA_SERVICE =#{request.deviceCategory} + + and bd.MONITOR_TYPE =#{request.monitorType} + ORDER BY bd.INSTALL_DATE DESC diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index e9a5cef..f3ddbf2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -234,8 +234,17 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 + + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index 30a0b6d..6006216 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -31,6 +31,7 @@ SELECT blp.*, bd.DEVCODE, + bd.ONLINE_STATE, bt.TYPE_NAME, bp.CONSTRUCT_ERA, bp.MATERIAL, @@ -79,6 +80,9 @@ and blp.MONITOR_STATE =#{request.monitorState} + + and bd.ONLINE_STATE =#{request.onlineState} + and bt.ID =#{request.devTypeId} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java index 2cb5894..ec5da9d 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceDTO.java @@ -48,4 +48,7 @@ @ApiModelProperty("设备类别(0:自有设备,1:数据服务)") private String deviceCategory; + + @ApiModelProperty("监测类型(0:临时,1:长期)") + private String monitorType; } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java index 75d0a24..f653aba 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusLedgerPipeMonitorRequestDTO.java @@ -45,4 +45,7 @@ @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") private String locationCategory; + @ApiModelProperty("1:在线,0:离线,2:报警") + private String onlineState; + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java index 0543672..e11e326 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseDeviceType.java @@ -52,6 +52,10 @@ @TableField("WATCH_OBJECT") private String watchObject; + @ApiModelProperty("监测类型(1:泄漏监测、2:防外力破坏、3:隐患监测)") + @TableField("WATCH_TYPE") + private String watchType; + @ApiModelProperty("是否启用,1:启用,0:停止") @TableField("IS_USED") private String isUsed; 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 8e0337c..c3bcce1 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 @@ -126,6 +126,11 @@ @TableField(exist = false) private String constructEra; + @ApiModelProperty("设备状态") + @TableField(exist = false) + private String onlineState; + + public BusLedgerPipe() { } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 86fd9f9..5eac6d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -58,4 +58,6 @@ List getListByProductId(Long productId); + boolean updateBusDeviceStatus(String devcode,String status); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java index b511ccf..cf840a5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerPipeService.java @@ -42,5 +42,7 @@ List getListByNumber(String tagNumber); + boolean batchDelete(List ids); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index ccaa2ba..4030057 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -305,6 +305,7 @@ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject()); } } + busDevice.setValid(DictEnum.DEVICE_USED); } if (ObjectUtil.isEmpty(busDevice.getInstallDate())) busDevice.setInstallDate(null); @@ -574,4 +575,12 @@ queryWrapper.eq("VALID", "1"); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean updateBusDeviceStatus(String devcode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("DEVCODE", devcode); + updateWrapper.set("ONLINE_STATE", status); + return this.update(updateWrapper); + } } 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 d13937d..220ea80 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 @@ -14,7 +14,7 @@ import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dao.BusLedgerPipeMapper; import com.casic.missiles.modular.device.dto.*; -import com.casic.missiles.modular.device.entity.*; +import com.casic.missiles.modular.device.entity.BusLedgerPipe; import com.casic.missiles.modular.device.service.IBusDeviceService; import com.casic.missiles.modular.device.service.IBusLedgerPipeService; import com.casic.missiles.server.CommonServer; @@ -24,7 +24,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -226,4 +229,12 @@ queryWrapper.eq("TAG_NUMBER", tagNumber); return this.baseMapper.selectList(queryWrapper); } + + @Override + public boolean batchDelete(List ids) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("ID", ids); + updateWrapper.set("VALID", "0"); + return this.update(updateWrapper); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java index b3e32cd..391f87b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/MonitorLogServiceImpl.java @@ -1,12 +1,12 @@ package com.casic.missiles.modular.device.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.device.dao.MonitorLogMapper; import com.casic.missiles.modular.device.entity.MonitorLog; import com.casic.missiles.modular.device.service.IMonitorLogService; import org.springframework.stereotype.Service; -import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; @@ -24,6 +24,10 @@ @Override public void saveMonitorLog(String serverName, String status, String remark, String severType) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("SERVER_NAME", serverName); + this.baseMapper.delete(queryWrapper); MonitorLog monitorLog = new MonitorLog(); monitorLog.setRemark(remark); monitorLog.setServerName(serverName); @@ -34,10 +38,10 @@ @Override public void checkServer() { - this.saveMonitorLog("xtServer",isHostReachable("172.17.240.116",9092)?"1":"0","迅腾大眼据服务","2"); - this.saveMonitorLog("sensorhubServer",isHostReachable("172.17.112.21",4011)?"1":"0","新协议解析服务","2"); - this.saveMonitorLog("mysqlServer",(isHostReachable("172.27.34.168",3316)?"1":"0"),"数据库服务","2"); - this.saveMonitorLog("redis",(isHostReachable("172.17.112.21",6379)?"1":"0"),"redis服务","2"); + this.saveMonitorLog("xtServer", isHostReachable("172.17.240.116", 9092) ? "1" : "0", "迅腾大眼据服务", "2"); + this.saveMonitorLog("sensorhubServer", isHostReachable("172.17.112.21", 4011) ? "1" : "0", "新协议解析服务", "2"); + this.saveMonitorLog("mysqlServer", (isHostReachable("172.27.34.168", 3316) ? "1" : "0"), "数据库服务", "2"); + this.saveMonitorLog("redis", (isHostReachable("172.17.112.21", 6379) ? "1" : "0"), "redis服务", "2"); } 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 4555eae..c8629bc 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 @@ -21,6 +21,9 @@ String VALID_ADD = "0"; + //在用 + String DEVICE_USED = "1"; + String VALID_DELETE = "1"; //未报警 String ALARM_OFF = "0"; @@ -39,6 +42,10 @@ String DEVICE_ONLINE = "1"; //在线 String DEVICE_OFFLINE= "0"; + //故障 + String DEVICE_FAILURE= "3"; + //报警 + String DEVICE_ALARM= "2"; //启用 String IS_USED= "1"; @@ -98,4 +105,15 @@ String MIS_REPORT1= "2-0-1"; String MIS_REPORT2= "2-0-2"; String LEAK= "1-2-1"; + + + //1、泄漏、2、防外力、3隐患 + String WATCH_TYPE_1= "1"; + String WATCH_TYPE_2= "2"; + String WATCH_TYPE_3= "3"; + + + //1、长期、0、临时 + String MONITOR_TYPE_1= "1"; + String MONITOR_TYPE_0= "0"; } diff --git a/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java b/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java index 50aed19..edac698 100644 --- a/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java +++ b/casic-public/src/main/java/com/casic/missiles/server/CommonServer.java @@ -2,6 +2,7 @@ import cn.hutool.core.convert.Convert; +import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; @@ -13,6 +14,8 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import java.io.Serializable; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -25,7 +28,7 @@ @Cacheable(value = "deptNameCache", key = "#deptId") public String getDeptNamesByDeptId(Long deptId) { - List deptIds = abstractDeptService.getParentListById(deptId); + List deptIds = this.getParentListById(deptId); deptIds.add(deptId); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", deptIds); @@ -33,7 +36,7 @@ List deptList = abstractDeptService.list(queryWrapper); List nameList = deptList.stream().filter(dept -> ObjectUtil.isNotEmpty(dept.getTips())).map(Dept::getFullName).collect(Collectors.toList()); String deptName = String.join("/", nameList); - return deptName.indexOf("北京燃气集团/")==0?deptName.replace("北京燃气集团/",""):deptName; + return deptName.indexOf("北京燃气集团/") == 0 ? deptName.replace("北京燃气集团/", "") : deptName; } // @Cacheable(value = "deptIdsCache") @@ -85,4 +88,17 @@ } } + + public List getParentListById(Serializable deptId) { + if ((new Long(0L)).equals(deptId)) { + return new ArrayList(); + } else { + Dept dept = (Dept) this.abstractDeptService.getById(deptId); + if (null == dept) return new ArrayList(); + return (List) CharSequenceUtil.split(dept.getPids(), ",").stream().filter(CharSequenceUtil::isNotEmpty).map((s) -> { + return new Long(CharSequenceUtil.removeSuffix(CharSequenceUtil.removePrefix(s, "["), "]")); + }).collect(Collectors.toList()); + } + } + } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 34d8b2a..caa0514 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -11,8 +11,6 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -20,7 +18,6 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData")