From c7d5088dbd18cbbcb98d12aeac35e7d38cdf93be Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Sun, 26 Sep 2021 17:31:23 +0800
Subject: [PATCH] 臭氧8小时滑动值算法,分钟,小时数据时间变更为开始时间

---
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 4dfe2bb..64eee36 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -12,7 +12,7 @@
 import com.moral.api.service.DeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
-import com.moral.api.service.GovMonitorPointService;
+import com.moral.api.service.OrganizationService;
 import com.moral.api.service.SysDictDataService;
 import com.moral.api.util.CacheUtils;
 import com.moral.api.util.AdjustDataUtils;
@@ -40,6 +40,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -93,6 +94,9 @@
 
     @Autowired
     private AdjustDataUtils adjustDataUtils;
+
+    @Autowired
+    private OrganizationService organizationService;
 
     /*
      * ���redis������������������
@@ -243,8 +247,14 @@
 
     @Override
     public List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId) {
+        //���������������������
+        List<Organization> organizations = organizationService.getAllChildrenOrganization(orgId);
+        List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
+        orgIds.add(orgId);
         QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("id", "name").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE);
+        queryWrapper.select("id", "name")
+                .eq("is_delete", Constants.NOT_DELETE)
+                .in("organization_id", orgIds);
         return monitorPointMapper.selectMaps(queryWrapper);
     }
 
@@ -270,9 +280,13 @@
         Object orgId = parameters.get("organizationId");
         Object mpId = parameters.get("monitorPointId");
 
-        //������������������������������
+        //������������������������������,���������������
         if (orgId != null) {
-            queryWrapper.eq("organization_id", orgId);
+            //���������������������
+            List<Organization> organizations = organizationService.getAllChildrenOrganization(Integer.parseInt(orgId.toString()));
+            List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
+            orgIds.add(Integer.parseInt(orgId.toString()));
+            queryWrapper.in("organization_id", orgIds);
         }
 
         //������������������������������
@@ -394,13 +408,14 @@
 
         //������������
         Map<String, Object> govMpInfo = new LinkedHashMap<>();
-        GovMonitorPoint govMonitorPoint = device.getGovMonitorPoint();
-        if (govMonitorPoint != null) {
+
+        govMpInfo.put("guid", null);
+        govMpInfo.put("name", null);
+        if (device.getGovMonitorPoint() != null) {
             govMpInfo.put("guid", device.getGovMonitorPoint().getGuid());
             govMpInfo.put("name", device.getGovMonitorPoint().getName());
         }
         deviceInfo.put("govMonitorPoint", govMpInfo);
-
         setDeviceInfoToRedis(mac, deviceInfo);
         return deviceInfo;
     }
@@ -441,14 +456,12 @@
         Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
         if (!ObjectUtils.isEmpty(adjustFormula)) {
             Map<String, Object> deviceInfo = getDeviceByMac(mac);
-            //���������������������������������
-            Map<String, Object> govMpInfo = (Map) deviceInfo.get("govMonitorPoint");
-            if (ObjectUtils.isEmpty(govMpInfo.get("guid"))) {
-                return deviceData;
+            //������������������������������������
+            Map<String, Object> govMpInfo = (Map<String, Object>) deviceInfo.get("govMonitorPoint");
+            Map<String, Object> aqiMap = null;
+            if (govMpInfo.get("guid") != null) {
+                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString());
             }
-            String guid = (String) govMpInfo.get("guid");
-            //���������������aqi������
-            Map<String, Object> aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, guid);
             return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap);
         }
         deviceData.remove("DataTime");

--
Gitblit v1.8.0