diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index 1fd7073..5ee7042 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -164,7 +164,7 @@ Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), e -> Long.valueOf(String.valueOf(e.get("pid")))) ); - String deviceTypes = deptTypeMap.get(deptId); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); while (deptId != -1 && deviceTypes == null) { deptId = deptMap.get(deptId); deviceTypes = deptTypeMap.get(String.valueOf(deptId)); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index 1fd7073..5ee7042 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -164,7 +164,7 @@ Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), e -> Long.valueOf(String.valueOf(e.get("pid")))) ); - String deviceTypes = deptTypeMap.get(deptId); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); while (deptId != -1 && deviceTypes == null) { deptId = deptMap.get(deptId); deviceTypes = deptTypeMap.get(String.valueOf(deptId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 1b74128..bc7a9eb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -36,6 +36,9 @@ List> offlineListPage(@Param("dataScope") DataScope dataScope, @Param("page") Page> page, @Param("deviceCode") String deviceCode, @Param("deviceType") Integer deviceType); + + List> getOfflineTimeList(@Param("tableName") String tableName); + /** * 查询设备信息 * @@ -48,6 +51,10 @@ DeviceDto getDetailById(@Param("id") String id); - Integer logicDelete(@Param("id")Long id,@Param("currentTime") Long currentTime); + Integer logicDelete(@Param("id") Long id, @Param("currentTime") Long currentTime); + + List> getDeviceType(); + + List> getDeptList(); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index 1fd7073..5ee7042 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -164,7 +164,7 @@ Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), e -> Long.valueOf(String.valueOf(e.get("pid")))) ); - String deviceTypes = deptTypeMap.get(deptId); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); while (deptId != -1 && deviceTypes == null) { deptId = deptMap.get(deptId); deviceTypes = deptTypeMap.get(String.valueOf(deptId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 1b74128..bc7a9eb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -36,6 +36,9 @@ List> offlineListPage(@Param("dataScope") DataScope dataScope, @Param("page") Page> page, @Param("deviceCode") String deviceCode, @Param("deviceType") Integer deviceType); + + List> getOfflineTimeList(@Param("tableName") String tableName); + /** * 查询设备信息 * @@ -48,6 +51,10 @@ DeviceDto getDetailById(@Param("id") String id); - Integer logicDelete(@Param("id")Long id,@Param("currentTime") Long currentTime); + Integer logicDelete(@Param("id") Long id, @Param("currentTime") Long currentTime); + + List> getDeviceType(); + + List> getDeptList(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d9d1be3..04df1e5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -262,17 +262,34 @@ ) + + datediff(current_timestamp,install_date) + + + + timestampdiff(DAY,NOW(),install_date) + + + + floor((extract(epoch FROM CURRENT_TIMESTAMP) - extract(epoch FROM install_date))/86400) + + - + SELECT distinct(bd.devcode),Max(dt.logtime) AS "lastDataTs", + + AS "offlineDays" FROM ${tableName} dt - JOIN BUS_DEVICE bd ON dt.DEVCODE=bd.DEVCODE - WHERE bd.online_state = '0' - - AND bd.DEVCODE = #{deviceCode} - - - AND bd.device_type = #{deviceType} - - ORDER BY 1 DESC + JOIN BUS_DEVICE bd ON dt.devcode=bd.devcode + where online_state='0' + GROUP BY bd.devcode - + update bus_device set valid=#{currentTime} where id=#{id} + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index 1fd7073..5ee7042 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -164,7 +164,7 @@ Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), e -> Long.valueOf(String.valueOf(e.get("pid")))) ); - String deviceTypes = deptTypeMap.get(deptId); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); while (deptId != -1 && deviceTypes == null) { deptId = deptMap.get(deptId); deviceTypes = deptTypeMap.get(String.valueOf(deptId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 1b74128..bc7a9eb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -36,6 +36,9 @@ List> offlineListPage(@Param("dataScope") DataScope dataScope, @Param("page") Page> page, @Param("deviceCode") String deviceCode, @Param("deviceType") Integer deviceType); + + List> getOfflineTimeList(@Param("tableName") String tableName); + /** * 查询设备信息 * @@ -48,6 +51,10 @@ DeviceDto getDetailById(@Param("id") String id); - Integer logicDelete(@Param("id")Long id,@Param("currentTime") Long currentTime); + Integer logicDelete(@Param("id") Long id, @Param("currentTime") Long currentTime); + + List> getDeviceType(); + + List> getDeptList(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d9d1be3..04df1e5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -262,17 +262,34 @@ ) + + datediff(current_timestamp,install_date) + + + + timestampdiff(DAY,NOW(),install_date) + + + + floor((extract(epoch FROM CURRENT_TIMESTAMP) - extract(epoch FROM install_date))/86400) + + - + SELECT distinct(bd.devcode),Max(dt.logtime) AS "lastDataTs", + + AS "offlineDays" FROM ${tableName} dt - JOIN BUS_DEVICE bd ON dt.DEVCODE=bd.DEVCODE - WHERE bd.online_state = '0' - - AND bd.DEVCODE = #{deviceCode} - - - AND bd.device_type = #{deviceType} - - ORDER BY 1 DESC + JOIN BUS_DEVICE bd ON dt.devcode=bd.devcode + where online_state='0' + GROUP BY bd.devcode - + update bus_device set valid=#{currentTime} where id=#{id} + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java index a07df56..4c15f2f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java @@ -2,10 +2,12 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.common.constant.Const; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.model.exception.ServiceException; @@ -14,6 +16,7 @@ import com.casic.missiles.modular.system.constant.DeviceConst; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DeviceDataTableEnum; import com.casic.missiles.modular.system.model.*; import com.casic.missiles.modular.system.service.*; import lombok.extern.slf4j.Slf4j; @@ -27,6 +30,7 @@ import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** *

@@ -53,6 +57,8 @@ private IDeviceWellService deviceWellService; @Autowired + private AbstractPermissionContext permissionService; + @Autowired private Validator validator; @@ -346,22 +352,38 @@ } /** - * 设备删除有效值设置为当前时间戳 + * 设备删除有效值设置为当前时间戳 + * * @param id */ - private void logicDelete(Long id){ - this.baseMapper.logicDelete(id,new Date().getTime()); + private void logicDelete(Long id) { + this.baseMapper.logicDelete(id, new Date().getTime()); } @Override public ResponseData offlineListPage(DataScope dataScope, Page> page, String deviceCode, String deviceType) { ResponseData responseData = new ResponseData(); + Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); + String deviceTypes = getDeviceType(deptId); try { - List> offlineList = this.baseMapper.offlineListPage(dataScope, page, deviceCode, StrUtil.isEmptyOrUndefined(deviceType) ? -1 : Integer.valueOf(deviceType)); - page.setRecords(offlineList); - responseData.setCode(200); - responseData.setMessage("查询成功"); + if (StrUtil.isEmpty(deviceTypes)) { + responseData.setCode(200); + responseData.setMessage("没有数据权限"); + } else { + List> offlineList = this.baseMapper.offlineListPage(dataScope, page, deviceCode, StrUtil.isEmptyOrUndefined(deviceType) ? -1 : Integer.valueOf(deviceType)); + Map> deviceTimeList = getMapDataByType(deviceTypes); + offlineList.forEach( + offlineData -> { + if (deviceTimeList.containsKey(offlineData.get("devcode"))) { + offlineData.putAll(deviceTimeList.get(offlineData.get("devcode"))); + } + } + ); + page.setRecords(offlineList); + responseData.setCode(200); + responseData.setMessage("查询成功"); + } } catch (Exception ex) { log.error("主题:离线查询异常,设备型号" + deviceCode + "," + "设备编号:" + deviceType + ",异常信息{}" + ex); @@ -414,4 +436,39 @@ return this.baseMapper.getDeviceInWellInfo(id); } + private String getDeviceType(Long deptId) { + List> deptTypeList = this.baseMapper.getDeviceType(); + List> deptList = this.baseMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map> getMapDataByType(String deviceTypes) { + List> countRecordList = new ArrayList<>(); + JSON.parseObject(deviceTypes, List.class).stream().forEach( + deviceType -> { + Integer typeId = Integer.valueOf(deviceType.toString()); + DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap().get(typeId); + if (deviceDataTableEnum == null) return; + String tableName = deviceDataTableEnum.getTableName(); + List> timeList = this.baseMapper.getOfflineTimeList(tableName); + countRecordList.addAll(timeList); + } + ); + Map> countRecordMap = countRecordList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("devcode")), e -> e) + ); + return countRecordMap; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java b/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java deleted file mode 100644 index 7a33eaf..0000000 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/system/util/DeviceDataTableEnum.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.casic.missiles.modular.system.util; - -import java.util.HashMap; - -/** - * @author cz - * @date 2022-7-15 - * 上传数据总记录数 - */ -public enum DeviceDataTableEnum { - - DATA_DIG("data_dig", "开挖监测仪"), - DATA_GAS("data_gas", "燃气智能监测终端"), - DATA_GASLIQUID("data_gasliquid_gas,data_gasliquid_liquid", "燃气智能监测终端(一体化)"), - DATA_GAS_DECTOR("data_gas_dector", "燃气探测仪"), - DATA_HARMFUL_GAS("data_harmful_gas", "有害气体监测仪"), - DATA_HYDRANT("data_hydrant", "消防栓防盗水监测仪"), - DATA_LIQUID("data_liquid", "液位监测仪"), - DATA_NOISE("data_noise", "噪声记录仪"), - DATA_PANTILT("data_pantilt", "激光甲烷云台"), - DATA_TEMP_HUM("data_temp_hum", "温湿度监测仪"), - DATA_TUBE("data_tube", "管盯"), - DATA_WELLCOVER("data_wellcover", "井盖状态监测仪"), - DATA_TEMP_PRESS("data_temp_press", "压力温度检测仪"), - DATA_WELLCOVER_LOCA("data_wellcover_loca", "井盖定位监测仪"), - DATA_WELLPLUS("data_wellplus", "井盖液位一体机"), - DATA_H2S("data_h2s", "硫化氢检测终端"), - DATA_PRESSURE("data_pressure", "压力检测终端"), - DEVICE_TYPE_TABLE(new HashMap() { - { - put(1, DATA_WELLCOVER); - put(2, DATA_LIQUID); - put(3, DATA_HARMFUL_GAS); - put(4, DATA_GAS); - put(5, DATA_TEMP_HUM); - put(6, DATA_DIG); - put(7, DATA_WELLCOVER_LOCA); - put(8, DATA_NOISE); - put(9, DATA_TEMP_PRESS); - put(10, DATA_GASLIQUID); - put(11, DATA_HYDRANT); - put(12, DATA_TUBE); - put(13, DATA_WELLPLUS); - put(14, DATA_H2S); - put(21, DATA_PANTILT); - put(22, DATA_H2S); - put(23, DATA_GAS); - put(24, DATA_TEMP_PRESS); - put(101, DATA_GAS_DECTOR); - } - }); - - String typeName; - String tableName; - - DeviceDataTableEnum(String tableName, String typeName) { - this.typeName = typeName; - this.tableName = tableName; - } - - public String getTypeName() { - return typeName; - } - - public String getTableName() { - return tableName; - } - - - public HashMap tableNameMap; - - DeviceDataTableEnum(HashMap tableNameMap) { - this.tableNameMap = tableNameMap; - } - - public HashMap getTableNameMap() { - return tableNameMap; - } - - -} diff --git a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java index 1fd7073..5ee7042 100644 --- a/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java +++ b/casic-data-analysis/src/main/java/com/casic/missiles/modular/system/service/impl/ThirdPartyDataServiceImpl.java @@ -164,7 +164,7 @@ Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), e -> Long.valueOf(String.valueOf(e.get("pid")))) ); - String deviceTypes = deptTypeMap.get(deptId); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); while (deptId != -1 && deviceTypes == null) { deptId = deptMap.get(deptId); deviceTypes = deptTypeMap.get(String.valueOf(deptId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java index 1b74128..bc7a9eb 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/DeviceMapper.java @@ -36,6 +36,9 @@ List> offlineListPage(@Param("dataScope") DataScope dataScope, @Param("page") Page> page, @Param("deviceCode") String deviceCode, @Param("deviceType") Integer deviceType); + + List> getOfflineTimeList(@Param("tableName") String tableName); + /** * 查询设备信息 * @@ -48,6 +51,10 @@ DeviceDto getDetailById(@Param("id") String id); - Integer logicDelete(@Param("id")Long id,@Param("currentTime") Long currentTime); + Integer logicDelete(@Param("id") Long id, @Param("currentTime") Long currentTime); + + List> getDeviceType(); + + List> getDeptList(); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml index d9d1be3..04df1e5 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/dao/mapping/DeviceMapper.xml @@ -262,17 +262,34 @@ ) + + datediff(current_timestamp,install_date) + + + + timestampdiff(DAY,NOW(),install_date) + + + + floor((extract(epoch FROM CURRENT_TIMESTAMP) - extract(epoch FROM install_date))/86400) + + - + SELECT distinct(bd.devcode),Max(dt.logtime) AS "lastDataTs", + + AS "offlineDays" FROM ${tableName} dt - JOIN BUS_DEVICE bd ON dt.DEVCODE=bd.DEVCODE - WHERE bd.online_state = '0' - - AND bd.DEVCODE = #{deviceCode} - - - AND bd.device_type = #{deviceType} - - ORDER BY 1 DESC + JOIN BUS_DEVICE bd ON dt.devcode=bd.devcode + where online_state='0' + GROUP BY bd.devcode - + update bus_device set valid=#{currentTime} where id=#{id} + + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java index a07df56..4c15f2f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java @@ -2,10 +2,12 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.common.constant.Const; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.model.exception.ServiceException; @@ -14,6 +16,7 @@ import com.casic.missiles.modular.system.constant.DeviceConst; import com.casic.missiles.modular.system.dao.DeviceMapper; import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DeviceDataTableEnum; import com.casic.missiles.modular.system.model.*; import com.casic.missiles.modular.system.service.*; import lombok.extern.slf4j.Slf4j; @@ -27,6 +30,7 @@ import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** *

@@ -53,6 +57,8 @@ private IDeviceWellService deviceWellService; @Autowired + private AbstractPermissionContext permissionService; + @Autowired private Validator validator; @@ -346,22 +352,38 @@ } /** - * 设备删除有效值设置为当前时间戳 + * 设备删除有效值设置为当前时间戳 + * * @param id */ - private void logicDelete(Long id){ - this.baseMapper.logicDelete(id,new Date().getTime()); + private void logicDelete(Long id) { + this.baseMapper.logicDelete(id, new Date().getTime()); } @Override public ResponseData offlineListPage(DataScope dataScope, Page> page, String deviceCode, String deviceType) { ResponseData responseData = new ResponseData(); + Long deptId = permissionService.getAuthService().getLoginUser().getDeptId(); + String deviceTypes = getDeviceType(deptId); try { - List> offlineList = this.baseMapper.offlineListPage(dataScope, page, deviceCode, StrUtil.isEmptyOrUndefined(deviceType) ? -1 : Integer.valueOf(deviceType)); - page.setRecords(offlineList); - responseData.setCode(200); - responseData.setMessage("查询成功"); + if (StrUtil.isEmpty(deviceTypes)) { + responseData.setCode(200); + responseData.setMessage("没有数据权限"); + } else { + List> offlineList = this.baseMapper.offlineListPage(dataScope, page, deviceCode, StrUtil.isEmptyOrUndefined(deviceType) ? -1 : Integer.valueOf(deviceType)); + Map> deviceTimeList = getMapDataByType(deviceTypes); + offlineList.forEach( + offlineData -> { + if (deviceTimeList.containsKey(offlineData.get("devcode"))) { + offlineData.putAll(deviceTimeList.get(offlineData.get("devcode"))); + } + } + ); + page.setRecords(offlineList); + responseData.setCode(200); + responseData.setMessage("查询成功"); + } } catch (Exception ex) { log.error("主题:离线查询异常,设备型号" + deviceCode + "," + "设备编号:" + deviceType + ",异常信息{}" + ex); @@ -414,4 +436,39 @@ return this.baseMapper.getDeviceInWellInfo(id); } + private String getDeviceType(Long deptId) { + List> deptTypeList = this.baseMapper.getDeviceType(); + List> deptList = this.baseMapper.getDeptList(); + Map deptTypeMap = deptTypeList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("deptid")), e -> String.valueOf(e.get("deviceType"))) + ); + Map deptMap = deptList.stream().collect( + Collectors.toMap(e -> Long.valueOf(String.valueOf(e.get("id"))), + e -> Long.valueOf(String.valueOf(e.get("pid")))) + ); + String deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + while (deptId != -1 && deviceTypes == null) { + deptId = deptMap.get(deptId); + deviceTypes = deptTypeMap.get(String.valueOf(deptId)); + } + return deviceTypes; + } + + private Map> getMapDataByType(String deviceTypes) { + List> countRecordList = new ArrayList<>(); + JSON.parseObject(deviceTypes, List.class).stream().forEach( + deviceType -> { + Integer typeId = Integer.valueOf(deviceType.toString()); + DeviceDataTableEnum deviceDataTableEnum = DeviceDataTableEnum.DEVICE_TYPE_TABLE.getTableNameMap().get(typeId); + if (deviceDataTableEnum == null) return; + String tableName = deviceDataTableEnum.getTableName(); + List> timeList = this.baseMapper.getOfflineTimeList(tableName); + countRecordList.addAll(timeList); + } + ); + Map> countRecordMap = countRecordList.stream().collect( + Collectors.toMap(e -> String.valueOf(e.get("devcode")), e -> e) + ); + return countRecordMap; + } } diff --git a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusWellInfoMapper.xml b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusWellInfoMapper.xml index 049b594..dbbed5e 100644 --- a/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusWellInfoMapper.xml +++ b/casic-sluicewell/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusWellInfoMapper.xml @@ -108,8 +108,8 @@ SELECT FROM bus_device d - LEFT OUTER JOIN base_device_type t ON d.DEVICE_TYPE = t.ID - LEFT JOIN bus_device_status bds ON bds.DEVICE_ID=d.ID + LEFT OUTER JOIN base_device_type t ON d.DEVICE_TYPE = t.ID + LEFT JOIN bus_device_status bds ON bds.DEVICE_ID=d.ID WHERE d.ID IN ( SELECT dw.DEVICE_ID @@ -189,7 +189,8 @@ FROM sys_area r, sys_area a WHERE r.area_name = #{qu} - AND a.area_name LIKE + AND a.area_name LIKE + AND r.id = a.pid @@ -214,7 +215,7 @@