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/FwDefenseSceneServiceImpl.java |   61 ++++++++++++++----------------
 1 files changed, 29 insertions(+), 32 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..732a006 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,8 @@
 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 org.sxkj.system.cache.SysCache;
+
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.ArrayList;
@@ -64,6 +65,8 @@
 
 	@Override
 	public IPage<FwDefenseSceneVO> selectFwDefenseScenePage(IPage<FwDefenseSceneVO> page, FwDefenseSceneVO fwDefenseScene) {
+		List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
+		fwDefenseScene.setDeptList(deptList);
 		IPage<FwDefenseSceneVO> result = page.setRecords(baseMapper.selectFwDefenseScenePage(page, fwDefenseScene));
 		List<FwDefenseSceneVO> records = result.getRecords();
 		if (records == null || records.isEmpty()) {
@@ -71,20 +74,23 @@
 		}
 
 		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) {
 				if (area == null || area.getId() == null) {
 					continue;
 				}
-				areaSizeMap.put(area.getId(), area.getAreaSize());
+//				areaSizeMap.put(area.getId(), area.getAreaSize());
+				List<Long> areaDeviceIds = parseIdList(area.getDeviceIds());
+				areaDeviceMap.put(area.getId(), areaDeviceIds);
+				deviceIdSet.addAll(areaDeviceIds);
 			}
 		}
 
@@ -102,9 +108,14 @@
 		for (FwDefenseSceneVO record : records) {
 			List<Long> areaIds = parseIdList(record.getAreaDivideIds());
 			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) {
@@ -123,6 +134,11 @@
 		}
 
 		return result;
+	}
+
+	@Override
+	public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId, Integer unbound, Long sceneManageId) {
+		return baseMapper.selectFwDefenseSceneList(filterSelected, zoneId, areaId, unbound, sceneManageId);
 	}
 
 	private List<Long> parseIdList(String ids) {
@@ -146,25 +162,6 @@
 		}
 		return idList;
 	}
-
-	private Integer sumDefenseArea(List<Long> areaIds, Map<Long, BigDecimal> areaSizeMap) {
-		if (areaIds == null || areaIds.isEmpty()) {
-			return 0;
-		}
-		BigDecimal total = BigDecimal.ZERO;
-		for (Long areaId : areaIds) {
-			BigDecimal areaSize = areaSizeMap.get(areaId);
-			if (areaSize != null) {
-				total = total.add(areaSize);
-			}
-		}
-		if (BigDecimal.ZERO.compareTo(total) == 0) {
-			return 0;
-		}
-		BigDecimal totalArea = total.multiply(AREA_SIZE_FACTOR);
-		return totalArea.setScale(0, RoundingMode.HALF_UP).intValue();
-	}
-
 
 	@Override
 	public List<FwDefenseSceneExcel> exportFwDefenseScene(Wrapper<FwDefenseSceneEntity> queryWrapper) {
@@ -208,19 +205,19 @@
 				deptId = null;
 			}
 		}
-		String areaCode = HeaderUtils.getAreaCode();
-		if (StringUtil.isBlank(areaCode)) {
-			areaCode = fwDefenseScene.getAreaCode();
-		}
+//		String areaCode = HeaderUtils.getAreaCode();
+//		if (StringUtil.isBlank(areaCode)) {
+//			areaCode = fwDefenseScene.getAreaCode();
+//		}
 		Date now = new Date();
 		fwDefenseScene.setCreateUser(userId);
 		fwDefenseScene.setUpdateUser(userId);
 		if (deptId != null) {
 			fwDefenseScene.setCreateDept(deptId);
 		}
-		if (StringUtil.isNotBlank(areaCode)) {
-			fwDefenseScene.setAreaCode(areaCode);
-		}
+//		if (StringUtil.isNotBlank(areaCode)) {
+//			fwDefenseScene.setAreaCode(areaCode);
+//		}
 		fwDefenseScene.setCreateTime(now);
 		fwDefenseScene.setUpdateTime(now);
 	}

--
Gitblit v1.9.3