From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Thu, 24 Dec 2020 13:47:50 +0800 Subject: [PATCH] 波动补偿 --- src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 121 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java index 7e01d91..445693c 100644 --- a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java @@ -1,18 +1,24 @@ 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.apache.commons.collections.CollectionUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.*; +import com.moral.service.HistoryMinutelyService; /** * @Auther: fengxiang @@ -20,23 +26,30 @@ * @Description:������api��������������� */ @Service -public class HangzhouAqiServiceImpl implements HangzhouAqiService{ - @Resource - private OrganizationMapper organizationMapper; - @Resource - private HangzhouAqiMapper hangzhouAqiMapper; +public class HangzhouAqiServiceImpl implements HangzhouAqiService { + @Resource + 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) { - List<Map> aqi24HoursValues = new ArrayList<>(24); + @Resource + private HistoryMinutelyService historyMinutelyService; + + public List<Map> queryAqiOfTimePeriod(String code, TimePeriod timePeriod) { + return hangzhouAqiMapper.selectAqisByCodeAndTimePeriod(code, timePeriod); + } + + /** + * ������������id������������24������������aqi������ + * + * @param orgId + * @return ���������������24���������������������������������������0 + */ + @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);; @@ -66,20 +79,91 @@ aqiItem.put("aqi",aqiValue); aqi24HoursValues.add(aqiItem); } - return aqi24HoursValues; +*/ + 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); } - private Integer getCode(Integer orgId,boolean isGetCityCode) - { - Organization org = organizationMapper.selectByPrimaryKey(orgId); - Integer code = null; - if(isGetCityCode) { - code = org.getCityCode(); - }else{ - code = org.getAreaCode(); - } - if(code == null) { - throw new BusinessException("citeCode or areaCode is null;"); - } - return code; + Collections.reverse(aqi24HoursValues); + return aqi24HoursValues; + } + + private Integer getCode(Integer orgId, boolean isGetCityCode) { + Organization org = organizationMapper.selectByPrimaryKey(orgId); + Integer code = null; + if (isGetCityCode) { + code = org.getCityCode(); + } else { + code = org.getAreaCode(); } + if (code == null) { + throw new BusinessException("citeCode or areaCode is null;"); + } + return code; + } + + @Override + public Integer queryCityCode(Integer areaCode) { + return hangzhouAqiMapper.queryCityCode(areaCode); + } + + @Override + public List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters) throws Exception { + historyMinutelyService.convertQueryParam(parameters); + if (!ObjectUtils.isEmpty(parameters.get("compensate"))) { + parameters.put("timeUnits", "10min"); + } + + String sensors2 = parameters.get("sensors2").toString(); + + String sensors1 = sensors2; + String sensors=""; + switch (sensors2) { + case "e1": + sensors1 = "PM2_5"; + sensors="PM25C"; + break; + case "e2": + sensors1 = "PM10"; + sensors="PM10C"; + break; + case "e10": + sensors1 = "CO"; + sensors="COC"; + break; + case "e11": + sensors1 = "SO2"; + sensors="SO2C"; + break; + case "e15": + sensors1 = "O3"; + sensors="O3C"; + break; + case "e16": + sensors1 = "NO2"; + sensors="NO2C"; + break; + default: + break; + } + + parameters.put("sensors1", sensors1); + parameters.put("sensors",sensors); + List<Map<String, Object>> areaList = hangzhouAqiMapper.getAreaAvgDataByAreaCode(parameters); + if (areaList.isEmpty()) { + Integer areaCode = Integer.valueOf(parameters.get("areaCode").toString()); + areaCode = hangzhouAqiMapper.queryCityCode(areaCode); + parameters.put("areaCode", String.valueOf(areaCode)); + areaList = hangzhouAqiMapper.getAreaAvgDataByAreaCode(parameters); + } + return areaList; + + } } -- Gitblit v1.8.0