From 85dba01ea5021d83487c3ed2d60706f516a0774b Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 05 Jan 2022 14:40:28 +0800
Subject: [PATCH] 贡献率数据格式修改
---
screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 66 ++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 18 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
index ac464a6..536f9f5 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -135,6 +135,21 @@
Map<String, Object> value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI, String.valueOf(regionCode));
if (value == null)
value = queryCityAqiByRegionCodeFromDB(regionCode);
+ //������������������������������������������������������������
+ if (value == null) {
+ String regionCodeStr = String.valueOf(regionCode);
+ String end = regionCodeStr.substring(regionCodeStr.length() - 2, regionCodeStr.length());
+ if (!end.equals(00)) {
+ regionCodeStr = regionCodeStr.substring(0, regionCodeStr.length() - 2);
+ regionCodeStr += "00";
+ regionCode = Integer.parseInt(regionCodeStr);
+ value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI, String.valueOf(regionCode));
+ if (value == null)
+ value = queryCityAqiByRegionCodeFromDB(regionCode);
+ }else{
+ return null;
+ }
+ }
//������AQI������������������
if (value == null || value.get("AQI") == null)
return null;
@@ -152,6 +167,8 @@
lastDataWrapper.orderByDesc("time");
lastDataWrapper.last(true, "limit 1");
CityAqi cityAqi = cityAqiMapper.selectOne(lastDataWrapper);
+ if(cityAqi==null)
+ return null;
//���������24������������������
Date endDate = cityAqi.getTime();
Date startDate = DateUtils.addHours(endDate, -23);
@@ -176,10 +193,10 @@
//������������������������
cityAqis.sort(Comparator.comparing(CityAqi::getTime));
}
- //������������������,map���key���HH:mm������������������value���aqi���������
+ //������������������,map���key���yyyy-MM-dd HH:mm������������������value���aqi���������
Map<String, Object> result = new LinkedHashMap<>();
for (CityAqi aqi : cityAqis) {
- String key = DateUtils.dateToDateString(aqi.getTime(), "HH:mm");
+ String key = DateUtils.dateToDateString(aqi.getTime(), "yyyy-MM-dd HH:mm");
String allDataJson = aqi.getValue();
if (allDataJson == null) {
result.put(key, "");
@@ -223,7 +240,7 @@
@Override
public List<Map<String, Object>> rankingDetails(Map<String, Object> params) {
List<Map<String, Object>> result = new ArrayList<>();
- int orgId = Integer.parseInt(params.get("organizationId").toString());
+ int regionCode = Integer.parseInt(params.get("regionCode").toString());
String type = params.get("type").toString();
String time = null;
if (!ObjectUtils.isEmpty(params.get("time"))) {
@@ -237,10 +254,10 @@
}
String cityType = params.get("cityType").toString();
- //���������,���code
- Organization organization = organizationService.getById(orgId);
- Integer curProvinceCode = organization.getProvinceCode();
- Integer curCityCode = organization.getCityCode();
+ String s = String.valueOf(regionCode);
+ //���������������,���code
+ Integer curProvinceCode = Integer.parseInt(s.substring(0, 2) + "0000");
+ Integer curCityCode = Integer.parseInt(s.substring(0, 4) + "00");
QueryWrapper<SysArea> areaWrapper = new QueryWrapper<>();
if ("province".equals(cityType)) {
@@ -346,7 +363,12 @@
sixParamMap.put(Constants.SENSOR_CODE_O3, dataMap.get("O3"));
AQI aqi = AQIUtils.dailyAQI(sixParamMap);
dataMap.put("AQI", aqi.getAQIValue());
- dataMap.put("primaryPollutant", aqi.getPrimaryPollutantNames());
+ List<String> primaryPollutantNames = aqi.getPrimaryPollutantNames();
+ String primaryPollutant = "";
+ if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
+ primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
+ }
+ dataMap.put("primaryPollutant", primaryPollutant);
//������������������������������,O3������������O3_8H������
Map<String, Object> compositeIndexMap = new HashMap<>(dataMap);
@@ -379,6 +401,12 @@
List<Map<String, Object>> hourData = cityAqiMapper.selectMaps(wrapper);
for (Map<String, Object> hourDatum : hourData) {
Map<String, Object> value = JSONObject.parseObject((String) hourDatum.get("value"), Map.class);
+ List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant");
+ String primaryPollutant = "";
+ if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
+ primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
+ }
+ value.put("primaryPollutant", primaryPollutant);
value.remove("pubtime");
value.remove("rank");
result.add(value);
@@ -400,6 +428,12 @@
List<Map<String, Object>> dayData = cityAqiDailyService.listMaps(wrapper);
for (Map<String, Object> dayDatum : dayData) {
Map<String, Object> value = JSONObject.parseObject((String) dayDatum.get("value"), Map.class);
+ List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant");
+ String primaryPollutant = "";
+ if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
+ primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
+ }
+ value.put("primaryPollutant", primaryPollutant);
//���������
QueryWrapper<SysArea> queryWrapper = new QueryWrapper<>();
queryWrapper.select("area_name")
@@ -737,7 +771,7 @@
/**
* @Description: ������6������������
* @Param: [cityAqiList]
- * @return: java.util.Map<java.lang.String, java.lang.Double>
+ * @return: java.util.Map<java.lang.String , java.lang.Double>
* ���������key���sensorCode,value������
* @Author: ���������
* @Date: 2021/11/2
@@ -791,7 +825,7 @@
/**
* @Description: ������������������������
* @Param: [regionCode]
- * @return: java.util.Map<java.lang.String, java.lang.Object>
+ * @return: java.util.Map<java.lang.String , java.lang.Object>
* @Author: ���������
* @Date: 2021/10/28
*/
@@ -809,7 +843,7 @@
}
@Override
- public Map<String, Object> provincialRanking(Integer organizationId) {
+ public Map<String, Object> provincialRanking(Integer regionCode) {
//���������
Map<String, Object> result = new HashMap<>();
@@ -818,10 +852,10 @@
Date yesterday = DateUtils.dataToTimeStampTime(DateUtils.getDateOfDay(now, -1), DateUtils.yyyy_MM_dd_EN);
String dateString = DateUtils.dateToDateString(yesterday, DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+ String s = String.valueOf(regionCode);
//���������,���code
- Organization organization = organizationService.getById(organizationId);
- Integer provinceCode = organization.getProvinceCode();
- Integer cityCode = organization.getCityCode();
+ Integer provinceCode = Integer.parseInt(s.substring(0, 2) + "0000");
+ Integer cityCode = Integer.parseInt(s.substring(0, 4) + "00");
//������������������city_code
QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
wrapper.select("area_code").eq("parent_code", provinceCode);
@@ -904,8 +938,6 @@
//������������������������������
sortByField(ranks, "compositeIndexYear");
- //���������������
- sortByField(ranks, "compositeIndexYear");
Map<String, Object> yearMap = rankByField(ranks, cityCode, "compositeIndexYear", cityCodes.size());
if (ObjectUtils.isEmpty(yearMap)) {
yearMap.put("rank", null);
@@ -949,6 +981,4 @@
}
return result;
}
-
-
}
--
Gitblit v1.8.0