吉安感知网项目-后端
linwei
2026-02-02 1bfbc52da47b22f00a1c1f5f670c30f70d999873
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) {