From ba0fbe5e47b484d3c2cc89b8d28f78c7ecf9b44c Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Tue, 13 Jan 2026 11:16:18 +0800
Subject: [PATCH] 场景,区域的列表新增父子级id查询
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java
index 477d5a6..a460de5 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseSceneServiceImpl.java
@@ -33,7 +33,6 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
-import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
@@ -71,13 +70,13 @@
}
Set<Long> areaIdSet = new HashSet<>();
- Set<Long> deviceIdSet = new HashSet<>();
for (FwDefenseSceneVO record : records) {
areaIdSet.addAll(parseIdList(record.getAreaDivideIds()));
- deviceIdSet.addAll(parseIdList(record.getDeviceIds()));
}
Map<Long, BigDecimal> areaSizeMap = new HashMap<>();
+ Map<Long, List<Long>> areaDeviceMap = new HashMap<>();
+ Set<Long> deviceIdSet = new HashSet<>();
if (!areaIdSet.isEmpty()) {
List<FwAreaDivideEntity> areaList = fwAreaDivideService.listByIds(areaIdSet);
for (FwAreaDivideEntity area : areaList) {
@@ -85,6 +84,9 @@
continue;
}
areaSizeMap.put(area.getId(), area.getAreaSize());
+ List<Long> areaDeviceIds = parseIdList(area.getDeviceIds());
+ areaDeviceMap.put(area.getId(), areaDeviceIds);
+ deviceIdSet.addAll(areaDeviceIds);
}
}
@@ -104,7 +106,13 @@
record.setAreaCount(areaIds.size());
record.setDefenseArea(sumDefenseArea(areaIds, areaSizeMap));
- List<Long> deviceIds = parseIdList(record.getDeviceIds());
+ Set<Long> deviceIds = new HashSet<>();
+ for (Long areaId : areaIds) {
+ List<Long> areaDeviceIds = areaDeviceMap.get(areaId);
+ if (areaDeviceIds != null) {
+ deviceIds.addAll(areaDeviceIds);
+ }
+ }
int detectCount = 0;
int counterCount = 0;
for (Long deviceId : deviceIds) {
@@ -125,6 +133,11 @@
return result;
}
+ @Override
+ public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long areaId) {
+ return baseMapper.selectFwDefenseSceneList(filterSelected, areaId);
+ }
+
private List<Long> parseIdList(String ids) {
if (StringUtil.isBlank(ids)) {
return Collections.emptyList();
--
Gitblit v1.9.3