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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java index 13f5b23..5dcbe36 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java @@ -4,12 +4,12 @@ public enum DeviceDataEnum { - DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"), - DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "logtime","VBAT as cell,uptime"), + DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"), + DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "uptime","VBAT as cell,uptime"), DATA_PAN_GAS("场站监测云台", "data_pan_gas", "DEVICE_CODE,,logtime,LEDGER_CODE", "ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH", "LOGTIME","CONCENTRATION as cell ,LOGTIME as uptime"), - DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"); + DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"); public static DeviceDataEnum typeOf(String type) { DeviceDataEnum deviceDataEnum = null; 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java index 13f5b23..5dcbe36 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java @@ -4,12 +4,12 @@ public enum DeviceDataEnum { - DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"), - DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "logtime","VBAT as cell,uptime"), + DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"), + DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "uptime","VBAT as cell,uptime"), DATA_PAN_GAS("场站监测云台", "data_pan_gas", "DEVICE_CODE,,logtime,LEDGER_CODE", "ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH", "LOGTIME","CONCENTRATION as cell ,LOGTIME as uptime"), - DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"); + DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"); public static DeviceDataEnum typeOf(String type) { DeviceDataEnum deviceDataEnum = null; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 2a070c9..9caa947 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -1,6 +1,7 @@ package com.casic.missiles.util; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; import java.util.Map; @@ -12,7 +13,10 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - return str.matches("-?\\d+(\\.\\d+)?"); + if(StrUtil.isNotEmpty(str)) { + return str.matches("-?\\d+(\\.\\d+)?"); + } + return false; } public static String DateFormat(String dataString) { 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java index 13f5b23..5dcbe36 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java @@ -4,12 +4,12 @@ public enum DeviceDataEnum { - DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"), - DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "logtime","VBAT as cell,uptime"), + DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"), + DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "uptime","VBAT as cell,uptime"), DATA_PAN_GAS("场站监测云台", "data_pan_gas", "DEVICE_CODE,,logtime,LEDGER_CODE", "ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH", "LOGTIME","CONCENTRATION as cell ,LOGTIME as uptime"), - DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"); + DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"); public static DeviceDataEnum typeOf(String type) { DeviceDataEnum deviceDataEnum = null; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 2a070c9..9caa947 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -1,6 +1,7 @@ package com.casic.missiles.util; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; import java.util.Map; @@ -12,7 +13,10 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - return str.matches("-?\\d+(\\.\\d+)?"); + if(StrUtil.isNotEmpty(str)) { + return str.matches("-?\\d+(\\.\\d+)?"); + } + return false; } public static String DateFormat(String dataString) { 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 9854f22..79b53ad 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 @@ -25,7 +25,7 @@ @RestController @RequestMapping("/ptz") public class PtzController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(100)); private final IPtzService iPtzService; @ApiOperation("云台控制") 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java index 13f5b23..5dcbe36 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java @@ -4,12 +4,12 @@ public enum DeviceDataEnum { - DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"), - DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "logtime","VBAT as cell,uptime"), + DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"), + DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "uptime","VBAT as cell,uptime"), DATA_PAN_GAS("场站监测云台", "data_pan_gas", "DEVICE_CODE,,logtime,LEDGER_CODE", "ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH", "LOGTIME","CONCENTRATION as cell ,LOGTIME as uptime"), - DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"); + DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"); public static DeviceDataEnum typeOf(String type) { DeviceDataEnum deviceDataEnum = null; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 2a070c9..9caa947 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -1,6 +1,7 @@ package com.casic.missiles.util; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; import java.util.Map; @@ -12,7 +13,10 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - return str.matches("-?\\d+(\\.\\d+)?"); + if(StrUtil.isNotEmpty(str)) { + return str.matches("-?\\d+(\\.\\d+)?"); + } + return false; } public static String DateFormat(String dataString) { 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 9854f22..79b53ad 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 @@ -25,7 +25,7 @@ @RestController @RequestMapping("/ptz") public class PtzController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(100)); private final IPtzService iPtzService; @ApiOperation("云台控制") diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index b3edf8c..40036ae 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -13,6 +13,7 @@ import java.util.Map; import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -23,19 +24,22 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, + TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (!threadPoolExecutor.isShutdown()) { + threadPoolExecutor.execute( + () -> { + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); + } + ); + } return ReturnUtil.success(); } } 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 2ba4a81..5595be7 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 @@ -32,13 +32,14 @@ lr.DEPTID as deptid, lr.lngGaode as lngGaode, lr.latGaode as latGaode, + lr.type as watchObject, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName, bm.NAME AS manufactureName FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 @@ -86,7 +87,7 @@ SELECT rd.DEVCODE,rd.ALARM_TYPE_ID, - rd.ALARM_CONTENT,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, ay.ALARM_TYPE FROM alarm_records rd - LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID AND bl.VALID = 1 LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 - LEFT JOIN 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 @@ -198,7 +197,7 @@ SELECT + distinct (rd.id), rd.DEVCODE, ay.ALARM_TYPE, rd.ALARM_CONTENT, @@ -276,12 +272,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID - AND lr.type = bl.type - AND bl.VALID = 1 - AND lr.VALID = 1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -354,11 +346,6 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_ledger_all_view lr ON rd.LEDGER_CODE = lr.ledgerCode and rd.LEDGER_NUMBER=lr.tagNumber LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL @@ -410,7 +397,7 @@ SELECT - rd.id, + distinct (rd.id), rd.DEVCODE, rd.ALARM_CONTENT, rd.ALARM_TIME, @@ -756,11 +745,8 @@ alarm_records rd LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID - LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 - LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + LEFT JOIN bus_ledger_all_view lr ON lr.tagNumber = rd.LEDGER_NUMBER + AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml index f00a1fc..b8b5367 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml @@ -133,7 +133,7 @@ bt.WATCH_OBJECT ) SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 fb614ad..7b056b4 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 @@ -3,9 +3,12 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -@Data -public class AlarmDeviceRuleResponseDTO implements Cloneable{ +import java.io.Serializable; +@Data +public class AlarmDeviceRuleResponseDTO implements Cloneable, Serializable { + + private static final long serialVersionUID = 1212L; @ApiModelProperty("报警类型id") private Long alarmTypeId; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index 6839591..632ddc9 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -159,6 +159,10 @@ @TableField(exist = false) private String manufactureName; + @ApiModelProperty("监测类型1:闸井,2:场站,3:管线") + @TableField(exist = false) + private String watchObject; + public AlarmRecords() { } 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 76c2e9b..45f621c 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 @@ -102,6 +102,7 @@ @Override public Page deviceAlarmListPage(Page page, AlarmRecordDTO request) { + page.setOptimizeCountSql(false); Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, commonServer.getDeptScopeIds(request.getDeptId())); List deviceAlarmList = deviceAlarmListPage.getRecords(); deviceAlarmList.forEach(deviceAlarm -> { @@ -118,6 +119,7 @@ List alarmResponseDTOList = this.baseMapper.batchExportDeviceAlarmList(request, commonServer.getDeptScopeIds(request.getDeptId())); alarmResponseDTOList.forEach(dto -> { dto.setProcessStatus(ApprovalStatusEnum.getValue(dto.getProcessStatus())); + dto.setDeptName(ObjectUtil.isNotEmpty(dto.getDeptid()) ? commonServer.getDeptNamesByDeptId(dto.getDeptid()) : ""); }); return alarmResponseDTOList; } @@ -540,23 +542,51 @@ @Override public boolean cancelWatchAlarms(String devCode, String code) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("DEVCODE", devCode); - updateWrapper.eq("ALARM_VALUE", code); - updateWrapper.eq("STATUS", "1"); - updateWrapper.set("STATUS", "0"); - updateWrapper.set("CANCEL_TIME", new Date()); - return this.update(updateWrapper); +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("DEVCODE", devCode); +// updateWrapper.eq("ALARM_VALUE", code); +// updateWrapper.eq("STATUS", "1"); +// updateWrapper.set("STATUS", "0"); +// updateWrapper.set("CANCEL_TIME", new Date()); +// return this.update(updateWrapper); + + //更新报警信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("EXCEPTION_TYPE", "0"); + //只有未读、已读、已确认、已处置、挂起的才消 + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.eq("STATUS", "1"); + queryWrapper.eq("ALARM_VALUE", code); + List alarmRecordsList = this.list(queryWrapper); + if (alarmRecordsList != null && alarmRecordsList.size() > 0) { + alarmRecordsList.forEach(alarmRecords -> { + alarmRecords.setStatus("0"); + alarmRecords.setCancelTime(new Date()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(ApprovalStatusEnum.FINISHED.getCode()); + this.updateById(alarmRecords); + }); + //添加流程日志 + approvalLogMapper.insert(new ApprovalLog(alarmRecordsList.get(0).getId(), "1", + "", "8", + null)); + //添加消息通知 + return iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). + concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); + } + return false; } @Override public boolean isWatchAlarms(String devCode, String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("DEVCODE",devCode); - queryWrapper.eq("ALARM_VALUE",code); - queryWrapper.eq("STATUS","1"); - ListalarmRecordsList =this.baseMapper.selectList(queryWrapper); - return alarmRecordsList!=null&&alarmRecordsList.size()>0?true:false; + queryWrapper.eq("DEVCODE", devCode); + queryWrapper.eq("ALARM_VALUE", code); + queryWrapper.eq("STATUS", "1"); + List alarmRecordsList = this.baseMapper.selectList(queryWrapper); + return alarmRecordsList != null && alarmRecordsList.size() > 0 ? true : false; } /** @@ -703,7 +733,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber(). concat("|"). concat(busWellDTOList.get(0).getLedgerName()). - concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)): "", + concat(alarmTypeName).concat(",").concat(AlarmEnum.getValue(data)) : "", ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; @@ -787,7 +817,7 @@ null)); //添加消息通知 iMessageLogService.save(new MessageLog(alarmRecordsList.get(0).getId(), DictEnum.MESSAGE_TYPE_3, "报警解除", - alarmRecordsList.get(0).getLedgerNumber().concat(alarmRecordsList.get(0).getAlarmMsg()). + alarmRecordsList.get(0).getPosition().concat(alarmRecordsList.get(0).getAlarmMsg()). concat("报警解除"), alarmRecordsList.get(0).getLedgerNumber())); } } @@ -851,7 +881,7 @@ offDeviceDTO.getTagNumber(), offDeviceDTO.getAlarmTypeId(), // offDeviceDTO.getAlarmTypeName(), - "离线超" + offDeviceDTO.getOffDays() + "天", + "离线超" + (ObjectUtil.isNotEmpty(offDeviceDTO.getOffDays()) ? offDeviceDTO.getOffDays() : "7") + "天", offDeviceDTO.getAlarmLevelId(), new Date(), offDeviceDTO.getAlarmThreshold(), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index 4d76d6e..dfc3658 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -36,6 +36,7 @@ @Override public Page listPage(Page page, AlarmRuleDeviceDTO request) { + page.setOptimizeCountSql(false); Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java index 1134d67..2404d6c 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/IDataAbstractService.java @@ -8,6 +8,7 @@ * @author zt * @since 2024-07-16 */ +@FunctionalInterface public interface IDataAbstractService { void process(String dataContent); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java index 6f9fe3b..094e097 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataPanGasServiceImpl.java @@ -99,7 +99,7 @@ //3.清除设备告警 alarmRecordsService.cancelDeviceAlarm(devCode); //4.存报警 - //若没绑定井,则不产生报警 + //若没绑场站,则不产生报警 boolean alarmFlag = false; String bfcf = busDeviceService.getBfcf(devCode); if (DictEnum.BF_ON.equals(bfcf) && busWellDTOList != null && busWellDTOList.size() > 0) { @@ -110,7 +110,7 @@ Float.valueOf(gas) >= Float.valueOf(alarmRuleResponseDTO.getAlarmThreshold())) { alarmFlag = true; //写入报警 - //1、判断报警是否已存在 + //1、判断报警是否已存在,并且三次超限才报警 if (!alarmRecordsService.isDataAlarmByCode(devCode, alarmRuleResponseDTO.getAlarmLevelId(), Float.valueOf(gas))) { dataTime = dataTime.replaceAll("-", ""); dataTime = dataTime.replaceAll(":", ""); diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java index 895d201..6e80323 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/service/impl/DataTubeOtherServiceImpl.java @@ -130,12 +130,14 @@ .findFirst(); //系统没有相关报警事件配置,则舍弃 if (!alarmDeviceRuleResponseDTO.isPresent()) continue; - //1.查询是否已存在该类报警 - if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; - //2.写入新的报警 - alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); +// //1.查询是否已存在该类报警 +// if (alarmRecordsService.isDeviceAlarmByCode(devCode, alarmType)) continue; +// //2.写入新的报警 +// alarmRecordsService.saveDeviceAlarms(devCode, logTime, busWellDTOList, alarmDeviceRuleResponseDTO); - + if (!alarmRecordsService.isWatchAlarms(devCode, alarmType)) { + alarmRecordsService.saveWatchAlarms(devCode, alarmType, logTime, busWellDTOList, alarmDeviceRuleResponseDTO.get().getAlarmTypeId(), alarmDeviceRuleResponseDTO.get().getAlarmLevelId(), alarmDeviceRuleResponseDTO.get().getAlarmTypeName(), DeviceTypeEnum.TubeOther.getName()); + } } catch (Exception e) { e.printStackTrace(); log.error("--------ERROR:设备编号:" + devCode + ",存储报警数据:" + jsonArray.get(i).toString() + "失败-------"); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java index 4316b56..0eb8071 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusLedgerPipeController.java @@ -58,6 +58,7 @@ } Long id =IdUtil.getSnowflake(1,2).nextId(); busLedgerPipe.setId(id); + busLedgerPipe.setLedgerCode(busLedgerPipe.getTagNumber()); iBusLedgerPipeService.save(busLedgerPipe); return ReturnUtil.success(id); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml index d3f4684..dd0d56b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusLedgerPipeMapper.xml @@ -35,7 +35,8 @@ bp.CONSTRUCT_ERA, bp.MATERIAL, bp.PIPE_DIAMETER, - bp.PRESS_TYPE + bp.PRESS_TYPE, + bm.NAME AS manufactureName FROM `bus_ledger_pipe` blp LEFT JOIN bus_pipeline bp ON blp.PIPE_CODE = bp.PIPE_CODE @@ -45,6 +46,8 @@ JOIN bus_device bd ON bd.ID = bdl.DEVICE_ID AND bd.VALID = 1 JOIN base_device_type bt ON bt.ID = bd.DEVICE_TYPE + left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID + LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID and bd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java index bce7ebd..0f953b1 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusPositionImportDTO.java @@ -32,6 +32,7 @@ private Long deptid; @ExcelProperty("位置类别") + private String locationCategory; + @ExcelProperty("监测类型") private String type; - } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java index 1ac8455..8e0337c 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusLedgerPipe.java @@ -48,6 +48,10 @@ @TableField("TAG_NUMBER") private String tagNumber; + @ApiModelProperty("点位编号") + @TableField("LEDGER_CODE") + private String ledgerCode; + @ApiModelProperty("经度(高德)") @TableField("LNG_GAODE") private String lngGaode; @@ -68,6 +72,10 @@ @TableField("`TYPE`") private String type; + @ApiModelProperty("位置类别(1:管线监测点,2:交叉穿越点)") + @TableField("LOCATION_CATEGORY") + private String locationCategory; + @ApiModelProperty("责任部门") @TableField("RESPONSIBLE_DEPT") private Long responsibleDept; @@ -102,6 +110,9 @@ @ApiModelProperty("设备类型") @TableField(exist = false) private String typeName; + @ApiModelProperty("厂商") + @TableField(exist = false) + private String manufactureName; @ApiModelProperty("压力级制") @TableField(exist = false) private String pressType; @@ -120,17 +131,19 @@ public BusLedgerPipe(Long id,String pipeCode, String ledgerName, String tagNumber, String lngGaode, String latGaode, String position, - Long deptid, String devcode, String type) { + Long deptid, String devcode, String type, String locationCategory) { this.id=id; this.pipeCode = pipeCode; this.ledgerName = ledgerName; this.tagNumber = tagNumber; + this.ledgerCode = tagNumber; this.lngGaode = lngGaode; this.latGaode = latGaode; this.position = position; this.deptid = deptid; this.devcode = devcode; this.type = type; + this.locationCategory = locationCategory; } public static List convertDeviceList(List dtoList) { @@ -147,7 +160,8 @@ positionImportDTO.getPosition(), positionImportDTO.getDeptid(), "", - positionImportDTO.getType())); + positionImportDTO.getType(), + positionImportDTO.getLocationCategory())); }); return busDeviceList; } 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 ad72230..ef207ef 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 @@ -98,6 +98,7 @@ queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getOperatorName()), "OPERATOR_NAME", requestDTO.getOperatorName()); queryWrapper.ge(ObjectUtil.isNotEmpty(requestDTO.getBeginTime()), "WRITETIME", requestDTO.getBeginTime()); queryWrapper.le(ObjectUtil.isNotEmpty(requestDTO.getEndTime()), "WRITETIME", requestDTO.getEndTime()); + queryWrapper.orderByDesc( "WRITETIME"); return this.baseMapper.selectPage(page, queryWrapper); } 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 bae6902..40eded1 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 @@ -9,8 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractAuthService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; import com.casic.missiles.enums.DictEnum; @@ -55,6 +57,7 @@ private final IBusLedgerService iBusLedgerService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractAuthService authService; private final IBaseExportService iBaseExportService; private final IBusLedgerPipeService iBusLedgerPipeService; @@ -249,8 +252,10 @@ //添加删除日志 List busDeviceList = this.baseMapper.selectBatchIds(ids); List busDeviceLogList = new ArrayList<>(); + AuthUser authUser = authService.getLoginUser(); busDeviceList.forEach(busDevice -> { BusDeviceLog busDeviceLog = new BusDeviceLog(busDevice.getDevcode(), "3", ""); + busDeviceLog.setOperatePerson(authUser != null ? authUser.getId() : null); busDeviceLogList.add(busDeviceLog); }); return iBusDeviceLogService.saveBatch(busDeviceLogList); @@ -366,7 +371,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject()); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java index 26c0bf5..88e276e 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceStaticsServiceImpl.java @@ -110,6 +110,7 @@ @Override public Page offLineList(OffLineRequestDTO requestDTO, Page page) { //toDo:其他预测类型需要补充 + page.setOptimizeCountSql(false); Page responseDTOPage = this.baseMapper.offLineList(commonServer.getDeptIds(), requestDTO, page); List dtoList = responseDTOPage.getRecords(); dtoList.forEach(dto -> { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java index e73e469..1602daa 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/AlarmEnum.java @@ -10,7 +10,10 @@ Leak("Leak", "泄露报警"), DiscR("DiscR", "右侧断线报警"), VibL("VibL", "左侧振动报警"), - VibR("VibR", "右侧振动报警"); + VibR("VibR", "右侧振动报警"), + VibrationAlarm("VibrationAlarm", "振动报警"), + WaterImmersionAlarm("WaterImmersionAlarm", "水浸报警"), + DisplacementAlarm("DisplacementAlarm", "位移报警"); // VibL("自管", "1"), // VibL("自管", "1"), // VibL("自管", "1"); diff --git a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java index 13f5b23..5dcbe36 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/DeviceDataEnum.java @@ -4,12 +4,12 @@ public enum DeviceDataEnum { - DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "logtime","cell,uptime"), - DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"), - DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "logtime","VBAT as cell,uptime"), + DATA_GAS("燃气智能监测终端", "data_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_GAS_LIQUID("燃气智能监测终端(一体化)", "data_gasliquid_gas", "devcode,uptime,logtime,well_code", "id,well_code,devcode,cell,strength,descn,uptime,logtime,pci,rsrp,snr", "uptime","cell,uptime"), + DATA_TUBE_OTHER("管网哨兵", "data_tube_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"), + DATA_MONITOR_PIPE_OTHER("智能警示桩", "data_monitor_pipe_other", "devcode,uptime,logtime,well_number", "DEVCODE,TEMPERATURE,HUMIDITY,VBAT,PIPE_INCLINE_ALARM,PIPE_BREAK_ALARM,GAS_ALARM,LEFT_OFF_LINE_ALARM,LEFT_VIBRATE_ALARM,RIGHT_OFF_LINE_ALARM,RIGHT_VIBRATE_ALARM,PICTURE_ALARM,LEFT_GAS,RIGHT_GAS,LEFT_LENGTH,RIGHT_LENGTH,LOGTIME,UPTIME ", "uptime","VBAT as cell,uptime"), DATA_PAN_GAS("场站监测云台", "data_pan_gas", "DEVICE_CODE,,logtime,LEDGER_CODE", "ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH", "LOGTIME","CONCENTRATION as cell ,LOGTIME as uptime"), - DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "logtime","VBAT,UPTIME"); + DATA_GAS_OTHER("管网哨兵(一体化)", "data_gas_other", "devcode,uptime,logtime,well_code", "DEVCODE,GASVAL, VBAT,SIN,RSRP,SINR,UPTIME,LOGTIME,sig,temp,SS_STATE as ssState", "uptime","VBAT,UPTIME"); public static DeviceDataEnum typeOf(String type) { DeviceDataEnum deviceDataEnum = null; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 2a070c9..9caa947 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -1,6 +1,7 @@ package com.casic.missiles.util; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import java.text.SimpleDateFormat; import java.util.Map; @@ -12,7 +13,10 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - return str.matches("-?\\d+(\\.\\d+)?"); + if(StrUtil.isNotEmpty(str)) { + return str.matches("-?\\d+(\\.\\d+)?"); + } + return false; } public static String DateFormat(String dataString) { 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 9854f22..79b53ad 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 @@ -25,7 +25,7 @@ @RestController @RequestMapping("/ptz") public class PtzController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(100)); private final IPtzService iPtzService; @ApiOperation("云台控制") diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index b3edf8c..40036ae 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -13,6 +13,7 @@ import java.util.Map; import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -23,19 +24,22 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 6, 60, TimeUnit.SECONDS, new LinkedBlockingDeque<>(10)); + private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, + TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (!threadPoolExecutor.isShutdown()) { + threadPoolExecutor.execute( + () -> { + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); + } + ); + } return ReturnUtil.success(); } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index fda60a0..5682291 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -7,8 +7,9 @@ import com.casic.missiles.util.SpringContextUtil; import org.springframework.stereotype.Component; -import java.util.HashMap; import java.util.Map; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; @Component @@ -20,8 +21,9 @@ private static DataMonitorPipeOtherServiceImpl dataMonitorPipeOtherService = SpringContextUtil.getApplicationContext().getBean(DataMonitorPipeOtherServiceImpl.class); private static DataGasOtherServiceImpl dataGasOtherService = SpringContextUtil.getApplicationContext().getBean(DataGasOtherServiceImpl.class); - private static Map abstractResponseHashMap = new HashMap(); - static { + private static final Map abstractResponseHashMap = new ConcurrentHashMap(); + + static { // abstractResponseHashMap.put(DeviceTypeEnum.Liquid.name(), new LiquidResponse()); // abstractResponseHashMap.put(DeviceTypeEnum.Well.name(), new WellResponse()); // abstractResponseHashMap.put(DeviceTypeEnum.Concentrator.name(), new ConcentratorResponse()); @@ -34,11 +36,18 @@ } + // 获取处理器(返回Optional避免NPE) + public static Optional getProcessor(String type) { + return Optional.ofNullable(abstractResponseHashMap.get(type)); + } + public static void makeResponse(String content) { JSONObject json = JSONObject.parseObject(content); if (null == json) return; - IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); - response.process(content); - } +// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); +// response.process(content); + ResponseResolver.getProcessor(json.getString("devType")).ifPresent( + processor -> processor.process(content)); + } }