diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 1d4fd0d..9854f22 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; @@ -63,9 +64,9 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice") + @PostMapping("/getOneDevice/{deviceCode}") @ResponseBody - public ReturnDTO getOneDevice(String deviceCode) { + public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); } @@ -82,4 +83,12 @@ public ReturnDTO getPlayBackUrl(@RequestBody PtzPlayBackDTO ptzPlayBackDTO) { return ReturnUtil.success(iPtzService.getPlayBackUrl(ptzPlayBackDTO)); } + + //toDo: + @ApiOperation("视频实时获取") + @PostMapping("/getVideoUrl") + @ResponseBody + public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { + return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 1d4fd0d..9854f22 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; @@ -63,9 +64,9 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice") + @PostMapping("/getOneDevice/{deviceCode}") @ResponseBody - public ReturnDTO getOneDevice(String deviceCode) { + public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); } @@ -82,4 +83,12 @@ public ReturnDTO getPlayBackUrl(@RequestBody PtzPlayBackDTO ptzPlayBackDTO) { return ReturnUtil.success(iPtzService.getPlayBackUrl(ptzPlayBackDTO)); } + + //toDo: + @ApiOperation("视频实时获取") + @PostMapping("/getVideoUrl") + @ResponseBody + public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { + return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java index 5d625af..2c7add5 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java @@ -2,6 +2,7 @@ import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import java.util.Map; @@ -18,6 +19,8 @@ String getPlayBackUrl(PtzPlayBackDTO ptzPlayBackDTO); + String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO); + String getOneDevice(String deviceCode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 1d4fd0d..9854f22 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; @@ -63,9 +64,9 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice") + @PostMapping("/getOneDevice/{deviceCode}") @ResponseBody - public ReturnDTO getOneDevice(String deviceCode) { + public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); } @@ -82,4 +83,12 @@ public ReturnDTO getPlayBackUrl(@RequestBody PtzPlayBackDTO ptzPlayBackDTO) { return ReturnUtil.success(iPtzService.getPlayBackUrl(ptzPlayBackDTO)); } + + //toDo: + @ApiOperation("视频实时获取") + @PostMapping("/getVideoUrl") + @ResponseBody + public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { + return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java index 5d625af..2c7add5 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java @@ -2,6 +2,7 @@ import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import java.util.Map; @@ -18,6 +19,8 @@ String getPlayBackUrl(PtzPlayBackDTO ptzPlayBackDTO); + String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO); + String getOneDevice(String deviceCode); } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 81ddba0..9d7be9a 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -6,16 +6,20 @@ import com.casic.missiles.modular.data.service.IDataPanGasService; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.netty.DeviceCommon; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.HttpClientUtils; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.Map; + +@Slf4j @RequiredArgsConstructor @Service public class PtzServiceImpl implements IPtzService { @@ -26,6 +30,8 @@ private String brPanControlUrl; @Value("${casic.brPanVideoUrl}") private String brPanVideoUrl; + @Value("${casic.brPanRealVideoUrl}") + private String brPanRealVideoUrl; private final IDataPanGasService iDataPanGasService; @Override @@ -53,6 +59,7 @@ return dataJson.getString("deviceId"); } } + log.info(">>>>>>获取到设备详细信息<<<<<<:" + result); return ""; } @@ -77,4 +84,19 @@ } return ""; } + + + @Override + public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + if (ObjectUtil.isNotEmpty(result)) { + JSONObject jsonObject = JSON.parseObject(result); + if ("200".equals(jsonObject.getString("code"))) { + JSONObject dataJson = jsonObject.getJSONObject("data"); + return dataJson.getString("url"); + } + } + log.info(">>>>>>接收实时视频地址<<<<<<:" + result); + return ""; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 1d4fd0d..9854f22 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; @@ -63,9 +64,9 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice") + @PostMapping("/getOneDevice/{deviceCode}") @ResponseBody - public ReturnDTO getOneDevice(String deviceCode) { + public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); } @@ -82,4 +83,12 @@ public ReturnDTO getPlayBackUrl(@RequestBody PtzPlayBackDTO ptzPlayBackDTO) { return ReturnUtil.success(iPtzService.getPlayBackUrl(ptzPlayBackDTO)); } + + //toDo: + @ApiOperation("视频实时获取") + @PostMapping("/getVideoUrl") + @ResponseBody + public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { + return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java index 5d625af..2c7add5 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java @@ -2,6 +2,7 @@ import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import java.util.Map; @@ -18,6 +19,8 @@ String getPlayBackUrl(PtzPlayBackDTO ptzPlayBackDTO); + String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO); + String getOneDevice(String deviceCode); } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 81ddba0..9d7be9a 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -6,16 +6,20 @@ import com.casic.missiles.modular.data.service.IDataPanGasService; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.netty.DeviceCommon; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.HttpClientUtils; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.Map; + +@Slf4j @RequiredArgsConstructor @Service public class PtzServiceImpl implements IPtzService { @@ -26,6 +30,8 @@ private String brPanControlUrl; @Value("${casic.brPanVideoUrl}") private String brPanVideoUrl; + @Value("${casic.brPanRealVideoUrl}") + private String brPanRealVideoUrl; private final IDataPanGasService iDataPanGasService; @Override @@ -53,6 +59,7 @@ return dataJson.getString("deviceId"); } } + log.info(">>>>>>获取到设备详细信息<<<<<<:" + result); return ""; } @@ -77,4 +84,19 @@ } return ""; } + + + @Override + public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + if (ObjectUtil.isNotEmpty(result)) { + JSONObject jsonObject = JSON.parseObject(result); + if ("200".equals(jsonObject.getString("code"))) { + JSONObject dataJson = jsonObject.getJSONObject("data"); + return dataJson.getString("url"); + } + } + log.info(">>>>>>接收实时视频地址<<<<<<:" + result); + return ""; + } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 5c71b48..f5f95d4 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -31,6 +31,7 @@ brPanGetDevcodeUrl: http://172.17.240.116:9092/ranshitong/device/getOneDevice brPanControlUrl: http://172.17.240.116:9092/HkController/controCearm brPanVideoUrl: http://172.17.240.116:9092/HkController/getPlayBackUrl + brPanRealVideoUrl: http://172.17.240.116:9092/HkController/getUrl enabled: true smartcity: config: diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index 67da40a..1c75346 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -35,6 +35,7 @@ " ar.PRODUCT_ID, " + " ar.ALARM_THRESHOLD, " + " ar.ALARM_TYPE_ID, " + + " ar.OFF_DAYS, " + " ar.ALARM_NAME, " + " ar.ALARM_LEVEL_ID, " + " t.ALARM_TYPE as alarmTypeName " + @@ -48,5 +49,20 @@ Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); + @Select("SELECT " + + " OFF_DAYS " + + "FROM " + + " `alarm_rule` ar " + + "WHERE " + + " ar.PRODUCT_ID IN ( " + + " SELECT " + + " bd.PRODUCT_ID " + + " FROM " + + " bus_device bd " + + " WHERE " + + " bd.VALID = 1 " + + " AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_THRESHOLD='LowCell' LIMIT 1") + String getCellThresholdByDevCode(@Param("devCode") String devCode); } 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 6a4d292..f24ca46 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 @@ -83,7 +83,6 @@ rd.ALARM_CONTENT,rd.ALARM_CONTENT, rd.ALARM_TIME,rd.PROCESS_STATUS, bt.TYPE_NAME AS devTypeName, - sd.full_name as deptName, lr.DEPTID as deptid, rd.POSITION, rd.id, @@ -97,7 +96,6 @@ 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 sys_dept sd ON sd.id = lr.DEPTID LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 @@ -560,12 +558,12 @@ rd.PROCESS_STATUS, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - rd.POSITION, rd.LEDGER_NUMBER as tagNumber, ay.ALARM_TYPE, ay.ALARM_CATEGORY, lr.DEPTID, lr.ledgerName, + lr.place as position, ac.ALARM_LEVEL as alarmLevelName FROM alarm_records rd diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java index d7d25d8..fb614ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmDeviceRuleResponseDTO.java @@ -6,8 +6,6 @@ @Data public class AlarmDeviceRuleResponseDTO implements Cloneable{ - - @ApiModelProperty("报警类型id") private Long alarmTypeId; @@ -26,6 +24,7 @@ @ApiModelProperty("报警事件名称") private String alarmName; - + @ApiModelProperty("离线天数/电量值,阈值 ") + private Integer offDays; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java index a04515c..a20a497 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -31,6 +31,9 @@ @ApiModelProperty("设备类型id") private Long devTypeId; + @ApiModelProperty("部门id") + private Long deptid; + @ApiModelProperty("位置") private String position; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java index 2bbceb1..50efd10 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRule.java @@ -101,6 +101,10 @@ @TableField(exist = false) private String typeName; + @ApiModelProperty("设备异常类型名称") + @TableField(exist = false) + private String exceptionTypeName; + // @ApiModelProperty("报警规则list") // @TableField(exist = false) diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java index 08cc100..59b3cb7 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleService.java @@ -26,6 +26,8 @@ List getByDevCode(String devCode); + String getCellThresholdByDevCode(String devCode); + List getDeviceAlarmRuleByCode(String devCode); Page pageList(Page page, AlarmRuleRequestDTO requestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index 1ad6294..e8863d3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -105,6 +105,7 @@ List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -645,7 +646,11 @@ public boolean saveDeviceAlarms(String devCode, String logTime, List busWellDTOList, Optional alarmRuleResponseDTO) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { - alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + } else { + alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); + } } for (BusAlarmLedgerDTO busLedgerDTO : busWellDTOList) { try { @@ -755,7 +760,8 @@ offDeviceDTO.getLedgerCode(), offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), - offDeviceDTO.getAlarmTypeName(), +// offDeviceDTO.getAlarmTypeName(), + "离线超" + offDeviceDTO.getOffDays()+"天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java index b84fc54..a7e048d 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleServiceImpl.java @@ -65,7 +65,7 @@ alarmEventProductList.forEach(alarmEventProduct -> { if (ObjectUtil.equals(alarmRule.getProductId(), alarmEventProduct.getProductId()) && ObjectUtil.equals(alarmRule.getAlarmThreshold(), alarmEventProduct.getEventCode())) { - alarmRule.setAlarmThreshold(alarmEventProduct.getEventName()); + alarmRule.setExceptionTypeName(alarmEventProduct.getEventName()); } }); } @@ -121,8 +121,14 @@ return alarmRuleResponseDTOS; } + @Cacheable(value = "DeviceAlarmRuleCache", key = "#devCode") @Override public List getDeviceAlarmRuleByCode(String devCode) { return this.baseMapper.getDeviceAlarmRuleByCode(devCode); } + + @Override + public String getCellThresholdByDevCode(String devCode) { + return this.baseMapper.getCellThresholdByDevCode(devCode); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataGasServiceImpl.java index ef41f01..ede18a5 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 @@ -1,5 +1,6 @@ package com.casic.missiles.modular.data.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -167,7 +168,7 @@ for (AlarmRuleResponseDTO alarmRuleResponseDTO : alarmRuleResponseDTOList) { if (CommonUtil.isNumber(alarmRuleResponseDTO.getAlarmThreshold()) && Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { - alarmFlag =true; + alarmFlag = true; //写入报警 //1、判断报警是否已存在 @@ -183,7 +184,7 @@ alarmRecordsService.cancelDataAlarm(devCode); } //6.更新电量及状态 (1:正常,2:报警) - alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas,alarmFlag?"燃气浓度达到".concat(gas).concat("%LEL"):""); + alarmRecordsService.updateCell(devCode, alarmFlag ? "2" : "1", cell, gas, alarmFlag ? "燃气浓度达到".concat(gas).concat("%LEL") : ""); //7.更新监测井状态 (1:正常,2:报警) if (busWellDTOList != null && busWellDTOList.size() > 0) { alarmRecordsService.updateWellStatus(busWellDTOList.get(0).getTagNumber(), alarmFlag ? "2" : "1"); @@ -193,7 +194,22 @@ log.error("--------ERROR:设备编号:" + devCode + ",存储数据:" + jsonArray.get(i).toString() + "失败-------"); } } + //低电量报警处理 + if (CommonUtil.isNumber(cell)) { + if (alarmRecordsService.isDeviceAlarmByCode(devCode, "LowCell")) return; + List ruleResponseDTOList = alarmRuleService.getDeviceAlarmRuleByCode(devCode); + Optional alarmDeviceRuleResponseDTO = ruleResponseDTOList.stream() + .filter(r -> "LowCell".equals(r.getAlarmThreshold())) + .findFirst(); + //系统没有相关报警事件配置,则舍弃 + if (alarmDeviceRuleResponseDTO.isPresent()) { + + if (Double.valueOf(cell) <= Double.valueOf(alarmDeviceRuleResponseDTO.get().getOffDays())) { + alarmDeviceRuleResponseDTO.get().setOffDays(Integer.valueOf(cell)); + alarmRecordsService.saveDeviceAlarms(devCode, jsonObject.getString("logTime"), busWellDTOList, alarmDeviceRuleResponseDTO); + } + + } + } } - - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java index 6b5791c..72a2d84 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerController.java @@ -42,6 +42,13 @@ private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + @ApiOperation("添加临时井") + @PostMapping("/add") + @ResponseBody + public ReturnDTO add(@RequestBody BusLedger busLedger) { + return ReturnUtil.success(iBusLedgerService.save(busLedger)); + } + @ApiOperation("查询分页接口") @PostMapping("/listPage") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java index 868544d..15c82bd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusStationMonitorController.java @@ -7,7 +7,7 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.BusLedgerDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; import com.casic.missiles.util.ReturnUtil; @@ -29,17 +29,15 @@ @PostMapping("/listPage") @ResponseBody public ReturnDTO listPage(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); Page page = PageFactory.defaultPage(); - return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request, dataScope))); + return ReturnUtil.success(super.packForBT(busStationMonitorService.pageList(page, request))); } @ApiOperation("查询接口,地图用") @PostMapping("/list") @ResponseBody public ReturnDTO list(@RequestBody BusLedgerDTO request) { - DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); - return ReturnUtil.success(busStationMonitorService.list(request, dataScope)); + return ReturnUtil.success(busStationMonitorService.list(request)); } @@ -52,6 +50,12 @@ } + @ApiOperation("获取设备曲线数据") + @PostMapping("/getDeviceData") + @ResponseBody + public ReturnDTO getDeviceData(@RequestBody BusPanDeviceDTO request) { + return ReturnUtil.success(busStationMonitorService.getDeviceData(request)); + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java index 1f99a9b..3af83d8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusStationMonitorMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.entity.BusLedger; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,9 +23,13 @@ @Mapper public interface BusStationMonitorMapper extends BaseMapper { - Page pageList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request); + Page pageList(@Param("deptIds") String deptIds, Page page, @Param("request") BusLedgerDTO request); - List list(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + List list(@Param("deptIds") String deptIds, @Param("request") BusLedgerDTO request); List> treeList(@Param("scope") DataScope dataScope, @Param("request") BusLedgerDTO request); + + List> getDeviceData(@Param("request") BusPanDeviceDTO request); + + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml index 45e3327..1f0ed06 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusStationMonitorMapper.xml @@ -27,13 +27,9 @@ with device_count as (SELECT count(1) AS deviceCount,bl.LEDGER_ID as stationId FROM `bus_device_ledger` bl where bl.VALID=1 group by bl.LEDGER_ID) SELECT bl.*, - sd.FULL_NAME as responsibleDeptName, - sdd.FULL_NAME as deptName, dc.deviceCount FROM bus_ledger bl - LEFT JOIN sys_dept sd ON bl.RESPONSIBLE_DEPT = sd.ID - LEFT JOIN sys_dept sdd ON bl.DEPTID = sdd.ID LEFT JOIN device_count dc ON dc.stationId = bl.id WHERE bl.VALID = '1' AND TYPE = '2' @@ -59,6 +55,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -90,6 +89,9 @@ and bl.MONITOR_STATE = #{request.monitorState} + + and bl.DEPTID in (${deptIds}) + ORDER BY bl.TS DESC @@ -101,4 +103,22 @@ order by bl.ID + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java index cfde3a0..859cf08 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusConfigOtherDTO.java @@ -1,7 +1,6 @@ package com.casic.missiles.modular.device.dto; -import com.casic.missiles.modular.device.entity.BusConfig; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -25,15 +24,7 @@ private Long typeId; @ApiModelProperty("指令集合") - private List commandConfigList; + private List commandConfigList; - class CommandConfig { - - @ApiModelProperty("命令代号") - private String command; - - @ApiModelProperty("命令值") - private String value; - } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java new file mode 100644 index 0000000..33f662e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPanDeviceDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class BusPanDeviceDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("云台编号") + private String devCode; + + @ApiModelProperty("开始时间") + private String begTime; + + @ApiModelProperty("结束时间") + private String endTime; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java new file mode 100644 index 0000000..ca2d77b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/CommandDTO.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class CommandDTO { + + + @ApiModelProperty("命令代号") + private String command; + + @ApiModelProperty("命令值") + private String value; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java new file mode 100644 index 0000000..e2557d4 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PtzPlayRealDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.device.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PtzPlayRealDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("码流类型,0:主码流,1:子码流,2:第三码流,一般传0") + private String streamType; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java index 4b9b0f9..b4ec73c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BaseProduct.java @@ -65,6 +65,11 @@ @TableField("POWER_SUPPLY_MODE") private String powerSupplyMode; + + @ApiModelProperty("是否结束数据服务") + @TableField("DATA_SERVICE") + private String dataService; + @ApiModelProperty("创建时间") @TableField("TS") private Date ts; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index a4d6fbc..1184995 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -115,6 +115,22 @@ @TableField("BFZT") private String bfzt; + @ApiModelProperty("监测类型(0:临时,1:长期)") + @TableField("MONITOR_TYPE") + private String monitorType; + + @ApiModelProperty("运营商(移动、电信、联通)") + @TableField("COMMUNICATION_TYPE") + private String communicationType; + + @ApiModelProperty("SIM卡号") + @TableField("SIM_ID") + private String simId; + + @ApiModelProperty("质保年限") + @TableField("WARRANTY_PERIOD") + private String warrantyPeriod; + @ApiModelProperty("所属点位,主键ids") @TableField(exist = false) private List ledgerIds; @@ -123,7 +139,6 @@ @TableField(exist = false) private Long ledgerId; - @ApiModelProperty("设备型号") @TableField(exist = false) private String deviceModel; @@ -160,10 +175,12 @@ @TableField(exist = false) private String validName; + @ExcelProperty(value = "经度", order = 14) @ApiModelProperty("经度") @TableField(exist = false) private String lng; + @ExcelProperty(value = "纬度", order = 15) @ApiModelProperty("纬度") @TableField(exist = false) private String lat; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java index 163f4d8..48b1afd 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedger.java @@ -200,4 +200,18 @@ @TableField(exist = false) private String telephone; + public BusLedger() { + } + + public BusLedger(String ledgerCode, String ledgerName, String tagNumber, + String lngGaode, String latGaode, + String position, Long deptid ) { + this.ledgerCode = ledgerCode; + this.ledgerName = ledgerName; + this.tagNumber = tagNumber; + this.lngGaode = lngGaode; + this.latGaode = latGaode; + this.position = position; + this.deptid = deptid; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java index 4916c6c..21479c0 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusStationMonitorService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; @@ -20,10 +21,12 @@ */ public interface IBusStationMonitorService extends IService { - Page pageList(Page page, BusLedgerDTO request, DataScope dataScope); + Page pageList(Page page, BusLedgerDTO request); - List list(BusLedgerDTO request, DataScope dataScope); + List list(BusLedgerDTO request); List> treeList(BusLedgerDTO request, DataScope dataScope); + List> getDeviceData(BusPanDeviceDTO request); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java index 9d4d545..66ed812 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusConfigServiceImpl.java @@ -101,6 +101,7 @@ busConfigs.add(BusConfig.builder().devcode(devcode) .productId(busConfigOtherDTO.getProductId()) .framecontent(JSON.toJSONString(busConfigOtherDTO.getCommandConfigList())) + .deviceType(busConfigOtherDTO.getTypeId()) .operator(user != null ? user.getId() : null) .operatorName(user != null ? user.getName() : "").build()); }); 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 bb722a6..60d15e5 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 @@ -357,16 +357,24 @@ return; } //新增点位 - if (!("3".equals(deviceImportDTO.getWatchObject()))) { - list.add("第" + index[0] + "行,非监测管线类设备不能新建安装点位!"); - return; + if ("3".equals(deviceImportDTO.getWatchObject())) { + //toDo:安装位号一致,入一次即可 + //为管线 + BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); + busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + }else if("1".equals(deviceImportDTO.getWatchObject())){ + //新增闸井 + BusLedger busLedger = new BusLedger(deviceImportDTO.getTagNumber(), + deviceImportDTO.getTagNumber(),deviceImportDTO.getTagNumber(), + deviceImportDTO.getLng(),deviceImportDTO.getLat(),deviceImportDTO.getPosition(), + deviceImportDTO.getDeptid()); + this.iBusLedgerService.save(busLedger); + deviceImportDTO.setLedgerIds(Arrays.asList(busLedger.getId())); } - //toDo:安装位号一致,入一次即可 - BusLedgerPipe busLedgerPipe = new BusLedgerPipe(deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), - deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode()); - busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); - deviceImportDTO.setLedgerIds(Arrays.asList(busLedgerPipe.getId())); + } } }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java index 690d5d2..158e56c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusStationMonitorServiceImpl.java @@ -1,14 +1,17 @@ package com.casic.missiles.modular.device.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dao.BusStationMonitorMapper; import com.casic.missiles.modular.device.dto.BusLedgerDTO; +import com.casic.missiles.modular.device.dto.BusPanDeviceDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.entity.BusLedger; import com.casic.missiles.modular.device.service.IBusStationMonitorService; +import com.casic.missiles.server.CommonServer; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -28,21 +31,23 @@ public class BusStationMonitorServiceImpl extends ServiceImpl implements IBusStationMonitorService { private final AbstractDictService abstractDictService; + private final CommonServer commonServer; @Override - public Page pageList(Page page, BusLedgerDTO request, DataScope dataScope) { - Page pageList = this.baseMapper.pageList(dataScope, page, request); + public Page pageList(Page page, BusLedgerDTO request) { + Page pageList = this.baseMapper.pageList(commonServer.getDeptScopeIds(request.getDeptid()), page, request); List busLedgerList = pageList.getRecords(); busLedgerList.forEach(busLedger -> { busLedger.setOnStateName(abstractDictService.getDictNameByCode("onState", busLedger.getOnState())); // 使用状态字典值 busLedger.setWellTypeName(abstractDictService.getDictNameByCode("wellType", busLedger.getWellType())); // 井类型字典值 busLedger.setMonitorStateName(abstractDictService.getDictNameByCode("monitorState", busLedger.getMonitorState())); // 监控状态字典值 + busLedger.setDeptName(ObjectUtil.isNotEmpty(busLedger.getDeptid())?commonServer.getDeptNamesByDeptId(busLedger.getDeptid()):""); // 监控状态字典值 }); return pageList; } @Override - public List list(BusLedgerDTO request, DataScope dataScope) { - return this.baseMapper.list(dataScope, request); + public List list(BusLedgerDTO request) { + return this.baseMapper.list(commonServer.getDeptScopeIds(request.getDeptid()), request); } @Override @@ -51,4 +56,8 @@ } + @Override + public List> getDeviceData(BusPanDeviceDTO request) { + return this.baseMapper.getDeviceData(request); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 1d4fd0d..9854f22 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; @@ -63,9 +64,9 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice") + @PostMapping("/getOneDevice/{deviceCode}") @ResponseBody - public ReturnDTO getOneDevice(String deviceCode) { + public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); } @@ -82,4 +83,12 @@ public ReturnDTO getPlayBackUrl(@RequestBody PtzPlayBackDTO ptzPlayBackDTO) { return ReturnUtil.success(iPtzService.getPlayBackUrl(ptzPlayBackDTO)); } + + //toDo: + @ApiOperation("视频实时获取") + @PostMapping("/getVideoUrl") + @ResponseBody + public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { + return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java index 5d625af..2c7add5 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/IPtzService.java @@ -2,6 +2,7 @@ import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import java.util.Map; @@ -18,6 +19,8 @@ String getPlayBackUrl(PtzPlayBackDTO ptzPlayBackDTO); + String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO); + String getOneDevice(String deviceCode); } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 81ddba0..9d7be9a 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -6,16 +6,20 @@ import com.casic.missiles.modular.data.service.IDataPanGasService; import com.casic.missiles.modular.device.dto.PtzControlDTO; import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; +import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; import com.casic.missiles.modular.device.dto.PtzXtControlDTO; import com.casic.missiles.modular.netty.DeviceCommon; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.HttpClientUtils; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.Map; + +@Slf4j @RequiredArgsConstructor @Service public class PtzServiceImpl implements IPtzService { @@ -26,6 +30,8 @@ private String brPanControlUrl; @Value("${casic.brPanVideoUrl}") private String brPanVideoUrl; + @Value("${casic.brPanRealVideoUrl}") + private String brPanRealVideoUrl; private final IDataPanGasService iDataPanGasService; @Override @@ -53,6 +59,7 @@ return dataJson.getString("deviceId"); } } + log.info(">>>>>>获取到设备详细信息<<<<<<:" + result); return ""; } @@ -77,4 +84,19 @@ } return ""; } + + + @Override + public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + if (ObjectUtil.isNotEmpty(result)) { + JSONObject jsonObject = JSON.parseObject(result); + if ("200".equals(jsonObject.getString("code"))) { + JSONObject dataJson = jsonObject.getJSONObject("data"); + return dataJson.getString("url"); + } + } + log.info(">>>>>>接收实时视频地址<<<<<<:" + result); + return ""; + } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 5c71b48..f5f95d4 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -31,6 +31,7 @@ brPanGetDevcodeUrl: http://172.17.240.116:9092/ranshitong/device/getOneDevice brPanControlUrl: http://172.17.240.116:9092/HkController/controCearm brPanVideoUrl: http://172.17.240.116:9092/HkController/getPlayBackUrl + brPanRealVideoUrl: http://172.17.240.116:9092/HkController/getUrl enabled: true smartcity: config: diff --git a/casic-web/src/main/resources/ehcache.xml b/casic-web/src/main/resources/ehcache.xml index 966c91c..cb201fc 100644 --- a/casic-web/src/main/resources/ehcache.xml +++ b/casic-web/src/main/resources/ehcache.xml @@ -118,6 +118,18 @@ transactionalMode="off"> + +