From 1bfbc52da47b22f00a1c1f5f670c30f70d999873 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 02 Feb 2026 18:18:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java
index ee824b0..6a8c3b1 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/area/service/impl/FwDefenseZoneServiceImpl.java
@@ -23,6 +23,7 @@
 import org.sxkj.fw.area.entity.FwAreaDivideEntity;
 import org.sxkj.fw.area.entity.FwDefenseSceneEntity;
 import org.sxkj.fw.area.entity.FwDefenseZoneEntity;
+import org.sxkj.fw.area.vo.FwAreaDivideVO;
 import org.sxkj.fw.area.vo.FwDefenseZoneVO;
 import org.sxkj.fw.area.excel.FwDefenseZoneExcel;
 import org.sxkj.fw.area.mapper.FwDefenseZoneMapper;
@@ -74,10 +75,28 @@
 		return detail;
 	}
 
+	@Override
+	public List<FwAreaDivideVO> selectFwAreaDivideListByZoneId(Long zoneId) {
+		if (zoneId == null) {
+			return Collections.emptyList();
+		}
+		// 防区不存在时直接返回空结果
+		Integer exists = baseMapper.selectDefenseZoneExists(zoneId);
+		if (exists == null || exists == 0) {
+			return null;
+		}
+		List<FwAreaDivideVO> areaList = baseMapper.selectFwAreaDivideListByZoneId(zoneId);
+		if (areaList == null) {
+			return Collections.emptyList();
+		}
+		return areaList;
+	}
+
 	private void fillDefenseZoneStatistics(List<FwDefenseZoneVO> records) {
 		if (records == null || records.isEmpty()) {
 			return;
 		}
+		// 组装防区-场景-区域-设备的统计链路
 		Set<Long> sceneIdSet = new HashSet<>();
 		Map<Long, List<Long>> zoneSceneMap = new HashMap<>();
 		for (FwDefenseZoneVO record : records) {
@@ -110,6 +129,7 @@
 		}
 		Map<Long, List<Long>> areaDeviceMap = new HashMap<>();
 		if (!sceneAreaIdSet.isEmpty()) {
+			// 预加载区域关联的设备ID集合
 			List<FwAreaDivideEntity> areaList = fwAreaDivideService.listByIds(sceneAreaIdSet);
 			for (FwAreaDivideEntity area : areaList) {
 				if (area == null || area.getId() == null) {

--
Gitblit v1.9.3