From 5f414f1f69c9aaa755be53c478c7defa3a885979 Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Mon, 29 Jun 2026 13:17:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=8F=E8=94=BD=E8=AE=BE=E7=BD=AE=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sender/dao/DashboardBlockConfigDao.java | 18 +++++++++++++++++- .../datacenter/sender/dao/DeviceDao.java | 3 +++ .../datacenter/sender/dto/BlockConfigDTO.java | 2 ++ .../sender/entitiy/DeviceEntity.java | 2 ++ .../datacenter/sender/service/CsdjService.java | 1 + .../datacenter/sender/service/F10Service.java | 1 + .../service/impl/DataProcessServiceImpl.java | 16 ++++++++++++++++ 7 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/techsor/datacenter/sender/dao/DashboardBlockConfigDao.java b/src/main/java/com/techsor/datacenter/sender/dao/DashboardBlockConfigDao.java index 67f6752..cd8c3ce 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/DashboardBlockConfigDao.java +++ b/src/main/java/com/techsor/datacenter/sender/dao/DashboardBlockConfigDao.java @@ -26,7 +26,7 @@ public class DashboardBlockConfigDao { if (buildingId == null) { return Collections.emptyList(); } - String sql = "SELECT id, building_id, start_time, end_time, block_big_class_id " + + String sql = "SELECT id, building_id, start_time, end_time, block_big_class_id, category_type " + "FROM dashboard_block_config " + "WHERE building_id = ? AND flag = 0 AND status = 0 "; return jdbcTemplate.query(sql, (rs, rowNum) -> { @@ -39,6 +39,22 @@ public class DashboardBlockConfigDao { if (blockBigClassIdStr != null && !blockBigClassIdStr.trim().isEmpty()) { dto.setBlockBigClassId(JSON.parseArray(blockBigClassIdStr, Long.class)); } + + String categoryType = rs.getString("category_type"); + if (categoryType != null && !categoryType.trim().isEmpty()) { + if (categoryType.contains("f10")) { + dto.getCategoryTypeId().add(1011L); + } + if (categoryType.contains("csdj")) { + dto.getCategoryTypeId().add(1012L); + } + if (categoryType.contains("main")) { + for (long i = 1001L; i <= 1010L; i++) { + dto.getCategoryTypeId().add(i); + } + } + } + return dto; }, buildingId); } diff --git a/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java b/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java index 4baf641..926c039 100644 --- a/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java +++ b/src/main/java/com/techsor/datacenter/sender/dao/DeviceDao.java @@ -165,12 +165,14 @@ public class DeviceDao { + " dinfo.project_id,\r\n" + " bfloor.floor_id,\r\n" + " basset.class_big_id,\r\n" + + " ty.device_category_id categoryId,\r\n" + " dinfo.asset_id\r\n" + "FROM device_info dinfo\r\n" + "INNER JOIN basic_monitoring_asset basset ON dinfo.asset_id = basset.equipment_id\r\n" + "INNER JOIN basic_space bspace ON bspace.space_id = basset.space_id\r\n" + "INNER JOIN basic_floor bfloor ON bfloor.floor_id = bspace.floor_id\r\n" + "INNER JOIN basic_building bbuilding ON bfloor.building_id = bbuilding.building_id\r\n" + + "LEFT JOIN type ty ON ty.id = dinfo.type_id\r\n" + "WHERE dinfo.flag != 1 AND basset.flag != 1 AND bspace.flag != 1 AND bfloor.flag != 1 AND bbuilding.flag != 1 AND\r\n" + "dinfo.device_id='"+deviceId+"'"; List dataList = jdbcTemplate.query(sql, @@ -188,6 +190,7 @@ public class DeviceDao { item.setFloorId(rs.getLong("floor_id")); item.setAssetId(rs.getLong("asset_id")); item.setBigClassId(rs.getLong("class_big_id")); + item.setCategoryId(rs.getLong("categoryId")); return item; }); return dataList; diff --git a/src/main/java/com/techsor/datacenter/sender/dto/BlockConfigDTO.java b/src/main/java/com/techsor/datacenter/sender/dto/BlockConfigDTO.java index 8932b85..76b5ce6 100644 --- a/src/main/java/com/techsor/datacenter/sender/dto/BlockConfigDTO.java +++ b/src/main/java/com/techsor/datacenter/sender/dto/BlockConfigDTO.java @@ -2,6 +2,7 @@ package com.techsor.datacenter.sender.dto; import lombok.Data; +import java.util.ArrayList; import java.util.List; @Data @@ -11,4 +12,5 @@ public class BlockConfigDTO { private Long startTime; private Long endTime; private List blockBigClassId; + private List blockCategoryTypeId = new ArrayList<>(); } diff --git a/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java b/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java index 77fe284..642be98 100644 --- a/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java +++ b/src/main/java/com/techsor/datacenter/sender/entitiy/DeviceEntity.java @@ -71,5 +71,7 @@ public class DeviceEntity implements Serializable { private Long updatedTimestamp; private Long bigClassId; + + private Long categoryId; } diff --git a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java index f58c767..e311a1d 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java +++ b/src/main/java/com/techsor/datacenter/sender/service/CsdjService.java @@ -135,6 +135,7 @@ public class CsdjService { deviceInfoVO.setDeviceId(deviceEntity.getDeviceId()); deviceInfoVO.setBuildingId(deviceEntity.getBuildingId()); deviceInfoVO.setBigClassId(deviceEntity.getBigClassId()); + deviceInfoVO.setCategoryId(deviceEntity.getCategoryId()); DynamodbEntity entity = new DynamodbEntity(); entity.setDeviceId(terminalId); diff --git a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java b/src/main/java/com/techsor/datacenter/sender/service/F10Service.java index 9be7002..619700c 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/F10Service.java +++ b/src/main/java/com/techsor/datacenter/sender/service/F10Service.java @@ -205,6 +205,7 @@ public class F10Service { deviceInfoVO.setDeviceId(deviceEntity.get(0).getDeviceId()); deviceInfoVO.setBuildingId(deviceEntity.get(0).getBuildingId()); deviceInfoVO.setBigClassId(deviceEntity.get(0).getBigClassId()); + deviceInfoVO.setCategoryId(deviceEntity.get(0).getCategoryId()); if (!isExpired){ DynamodbEntity entity = new DynamodbEntity(); diff --git a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java index 7ec6406..39ddb34 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java +++ b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java @@ -707,6 +707,7 @@ public class DataProcessServiceImpl implements IDataProcessService { && now >= config.getStartTime() && now <= config.getEndTime() && isBigClassBlocked(config.getBlockBigClassId(), deviceInfoVO.getBigClassId()) + && isCategoryTypeBlocked(config.getBlockCategoryTypeId(), deviceInfoVO.getCategoryId()) ); deviceInfoVO.setAlertBlock(inBlockPeriod ? 1 : 0); if (inBlockPeriod) { @@ -731,6 +732,21 @@ public class DataProcessServiceImpl implements IDataProcessService { return blockBigClassIds.contains(bigClassId); } + /** + * 判断设备categoryId是否在屏蔽范围内 + * @param blockCategoryTypeIds 屏蔽配置的categoryTypeId列表,null或空表示屏蔽所有类别 + * @param categoryId 设备的categoryId + */ + private boolean isCategoryTypeBlocked(List blockCategoryTypeIds, Long categoryId) { + if (blockCategoryTypeIds == null || blockCategoryTypeIds.isEmpty()) { + return true; // 未配置则屏蔽所有类别 + } + if (categoryId == null) { + return false; // 设备无categoryId则不匹配 + } + return blockCategoryTypeIds.contains(categoryId); + } + // private void sysAlarmNotify(DynamodbEntity baseTransDataEntity, DeviceInfoVO deviceInfoVO) throws Exception { // String temp = "建物「{0}」の監視ポイント「{1}」でアラームが発生しました";