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 | 150 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 107 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java index 4ae4086..445693c 100644 --- a/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java @@ -18,6 +18,7 @@ import com.moral.mapper.HangzhouAqiMapper; import com.moral.mapper.OrganizationMapper; import com.moral.service.HangzhouAqiService; +import com.moral.service.HistoryMinutelyService; /** * @Auther: fengxiang @@ -25,24 +26,29 @@ * @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 - */ - @SuppressWarnings("serial") - @Override - public List<Map<String, Object>> queryAqi24Hours(Integer orgId) { - List<Map<String, Object>> 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); @@ -73,33 +79,91 @@ aqiItem.put("aqi",aqiValue); aqi24HoursValues.add(aqiItem); } -*/ - Organization organization = organizationMapper.selectByPrimaryKey(orgId); +*/ + 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; + 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