From 2759eea24b4d6cd5e0e8f8c88eae69a59b48d299 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Tue, 03 Sep 2019 13:43:57 +0800
Subject: [PATCH] update 污染传播接口

---
 src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java |   67 +++++++++++++++++++++++----------
 1 files changed, 46 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java
index 0403039..4ae4086 100644
--- a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java
@@ -1,17 +1,23 @@
 package com.moral.service.impl;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
 import com.moral.common.exception.BusinessException;
-import com.moral.common.util.ReportTimeFormat;
 import com.moral.entity.Organization;
 import com.moral.entity.charts.TimePeriod;
-import com.moral.entity.charts.TimeUnits;
 import com.moral.mapper.HangzhouAqiMapper;
 import com.moral.mapper.OrganizationMapper;
 import com.moral.service.HangzhouAqiService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.*;
 
 /**
  * @Auther: fengxiang
@@ -24,29 +30,30 @@
     private OrganizationMapper organizationMapper;
     @Resource
     private HangzhouAqiMapper hangzhouAqiMapper;
+
+    public List<Map> queryAqiOfTimePeriod(String code,TimePeriod timePeriod) {
+        return  hangzhouAqiMapper.selectAqisByCodeAndTimePeriod(code,timePeriod);
+    }
     /**
      * ������������id������������24������������aqi������
      * @param orgId
      * @return ���������������24���������������������������������������0
      */
-    @Override
-    public List<Map> queryAqi24Hours(Integer orgId){
-        return  queryAqi24Hours(orgId,false);
-    }
-    private List<Map> queryAqi24Hours(Integer orgId,boolean isGetCity) {
-        List<Map> aqi24HoursValues = new ArrayList<>(24);
+    @SuppressWarnings("serial")
+	@Override
+    public List<Map<String, Object>> queryAqi24Hours(Integer orgId) {
+        List<Map<String, Object>> aqi24HoursValues = new ArrayList<>(24);
+/*
         Date now = ReportTimeFormat.getFormatDate(ReportTimeFormat.HOUR_FORMAT);
         Date start = ReportTimeFormat.dateCalc(now, TimeUnits.HOUR,-24);
         Date end = ReportTimeFormat.dateCalc(now, TimeUnits.MILLISECOND,-1);;
         TimePeriod timePeriod = new TimePeriod(start,end,TimeUnits.HOUR);
-        Integer code = getCode(orgId,isGetCity);
-        if(code == null) {
-            throw new BusinessException("citeCode or areaCode is null;");
-        }
-        List<Map> aqis = hangzhouAqiMapper.selectAqisByCodeAndTimePeriod(code.toString(),timePeriod);
+        Integer code = getCode(orgId,false);
+        List<Map> aqis = queryAqiOfTimePeriod(code.toString(),timePeriod);
         List<String> timeList = ReportTimeFormat.makeTimeList(timePeriod);
-        if(aqis!=null && aqis.size()==0 && !isGetCity) {
-              return queryAqi24Hours(orgId,true);
+        if(CollectionUtils.isEmpty(aqis)) {
+            code = getCode(orgId,true);
+            aqis = queryAqiOfTimePeriod(code.toString(),timePeriod);
         }
         int mTemp = 0;
         for(int n =0;n<timeList.size();n++) {
@@ -66,15 +73,33 @@
             aqiItem.put("aqi",aqiValue);
             aqi24HoursValues.add(aqiItem);
         }
+*/      
+        Organization organization = organizationMapper.selectByPrimaryKey(orgId);
+
+        Map<String, Object> parameters = new HashMap<String, Object>(){{
+        	put("end", LocalDateTime.now());
+        	put("cityCode", organization.getAreaCode());
+        }};
+        aqi24HoursValues = hangzhouAqiMapper.getAqisByOrganizationId(parameters);
+        if (ObjectUtils.isEmpty(aqi24HoursValues)) {
+        	parameters.put("cityCode", organization.getCityCode());
+        	aqi24HoursValues = hangzhouAqiMapper.getAqisByOrganizationId(parameters);
+		}
+        Collections.reverse(aqi24HoursValues);
         return aqi24HoursValues;
     }
     private Integer getCode(Integer orgId,boolean isGetCityCode)
     {
         Organization org = organizationMapper.selectByPrimaryKey(orgId);
+        Integer code  = null;
         if(isGetCityCode) {
-            return org.getCityCode();
+            code  =  org.getCityCode();
         }else{
-            return org.getAreaCode()!=null? org.getAreaCode() : org.getCityCode();
+            code  =  org.getAreaCode();
         }
+        if(code == null) {
+            throw new BusinessException("citeCode or areaCode is null;");
+        }
+        return  code;
     }
 }

--
Gitblit v1.8.0