From f2f77f203fd6b054197ecaba0517a159e8b3ac8f Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Mon, 30 Oct 2023 15:48:24 +0800
Subject: [PATCH] fix:补偿0问题修改

---
 screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java
index 83e23db..c7c0438 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.Menu;
 import com.moral.api.entity.MonitorPoint;
+import com.moral.api.entity.Organization;
 import com.moral.api.entity.SysArea;
+import com.moral.api.mapper.DeviceMapper;
 import com.moral.api.mapper.MonitorPointMapper;
 import com.moral.api.mapper.SysAreaMapper;
+import com.moral.api.service.OrganizationService;
 import com.moral.api.service.SysAreaService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
@@ -39,23 +42,44 @@
     @Autowired
     private MonitorPointMapper monitorPointMapper;
 
+    @Autowired
+    private OrganizationService organizationService;
+    @Autowired
+    private DeviceMapper deviceMapper;
+
     @Override
     public List<Map<String, Object>> getMapPath(Integer orgId) {
-        //������������id������������������
+        //������������������������������
+        /*List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId);
+        List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
+        orgIds.add(orgId);*/
+        List<Integer> orgIds = deviceMapper.deviceOrgIdList(orgId);
         QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("province_code", "city_code", "area_code")
-                .eq("organization_id", orgId)
-                .eq("is_delete", Constants.NOT_DELETE);
+                .eq("is_delete", Constants.NOT_DELETE)
+                .in("organization_id", orgIds);
+
+        //������������id������������������
         List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(queryWrapper);
         Set<Integer> cityCodes = new HashSet<>();
         for (MonitorPoint monitorPoint : monitorPoints) {
-            cityCodes.add(monitorPoint.getProvinceCode());
-            cityCodes.add(monitorPoint.getCityCode());
-            cityCodes.add(monitorPoint.getAreaCode());
+            Integer provinceCode = monitorPoint.getProvinceCode();
+            Integer cityCode = monitorPoint.getCityCode();
+            Integer areaCode = monitorPoint.getAreaCode();
+            if (provinceCode != null) {
+                cityCodes.add(provinceCode);
+            }
+            if (cityCode != null) {
+                cityCodes.add(cityCode);
+            }
+            if (areaCode != null) {
+                cityCodes.add(areaCode);
+            }
         }
 
         QueryWrapper<SysArea> sysAreaQueryWrapper = new QueryWrapper<>();
         sysAreaQueryWrapper.select("area_code", "area_name", "parent_code").in("area_code", cityCodes);
+        //���������������������������������������������
         List<SysArea> allAreas = sysAreaMapper.selectList(sysAreaQueryWrapper);
 
         //���������������
@@ -76,7 +100,21 @@
         return newList;
     }
 
-    //������������������������������������
+    @Override
+    public List<SysArea> getChildren(Integer regionCode) {
+        QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
+        wrapper.eq("parent_code",regionCode);
+        return sysAreaMapper.selectList(wrapper);
+    }
+
+    @Override
+    public SysArea getAreaByCode(Integer regionCode) {
+        QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
+        wrapper.eq("area_code",regionCode);
+        return sysAreaMapper.selectOne(wrapper);
+    }
+
+    //������������������������
     private List<Map<String, Object>> getAreasByRecursion(SysArea sysArea, List<SysArea> sysAreas) {
         SysArea newSysArea = new SysArea();
         newSysArea.setParentCode(sysArea.getAreaCode());

--
Gitblit v1.8.0