bug修复
This commit is contained in:
parent
603b368a04
commit
b30d722d85
@ -94,10 +94,11 @@ public class AirQualityAnalysisController {
|
||||
@ApiOperation(value = "查询天气-周", notes = "查询天气-周", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "cityid", value = "市区编码", paramType = "body", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "areaId", value = "行政区域县区Id", paramType = "body", required = false, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/getWeatherData")
|
||||
public Result<String> getWeatherData(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(airQualityAnalysisService.getWeatherData(MapUtils.getString(map, "cityid")));
|
||||
return Result.success(airQualityAnalysisService.getWeatherData(map));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询天气实况", notes = "查询天气实况", httpMethod = "POST")
|
||||
|
||||
@ -3,9 +3,7 @@ package com.zhgd.xmgl.modules.environment.service;
|
||||
import com.zhgd.xmgl.modules.environment.entity.AirQualityAnalysis;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.environment.entity.vo.AirQualityStatisticsVo;
|
||||
import com.gexin.fastjson.JSONObject;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -23,7 +21,7 @@ public interface IAirQualityAnalysisService extends IService<AirQualityAnalysis>
|
||||
|
||||
void deleteProjectAirQualityAnalysis(String projectSn);
|
||||
|
||||
String getWeatherData(String cityid);
|
||||
String getWeatherData(Map<String, Object> map);
|
||||
|
||||
Object getWeatherLiveData(String cityid);
|
||||
}
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
package com.zhgd.xmgl.modules.environment.service.impl;
|
||||
import com.gexin.fastjson.JSONObject;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemAreas;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemCities;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemAreasMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemCitiesMapper;
|
||||
import com.zhgd.xmgl.modules.environment.entity.AirQualityAnalysis;
|
||||
import com.zhgd.xmgl.modules.environment.entity.vo.AirQualityStatisticsVo;
|
||||
@ -16,12 +16,12 @@ import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.util.AqiUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 空气质量分析
|
||||
@ -39,6 +39,8 @@ public class AirQualityAnalysisServiceImpl extends ServiceImpl<AirQualityAnalysi
|
||||
private DustNoiseDataMapper dustNoiseDataMapper;
|
||||
@Autowired
|
||||
private SystemCitiesMapper systemCitiesMapper;
|
||||
@Autowired
|
||||
private SystemAreasMapper systemAreasMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@ -53,7 +55,7 @@ public class AirQualityAnalysisServiceImpl extends ServiceImpl<AirQualityAnalysi
|
||||
value = AqiUtil.getPm25IAQI(value);
|
||||
} else {
|
||||
//没有数据时候,查询项目所在天气的指标
|
||||
value = AqiUtil.getWeatherInfo(project.getCityCode());
|
||||
value = AqiUtil.getWeatherInfo(project.getAreaCode());
|
||||
}
|
||||
if (value != null) {
|
||||
AirQualityAnalysis airQualityAnalysis = new AirQualityAnalysis();
|
||||
@ -97,15 +99,28 @@ public class AirQualityAnalysisServiceImpl extends ServiceImpl<AirQualityAnalysi
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWeatherData(String cityid) {
|
||||
QueryWrapper<SystemCities> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(SystemCities::getCityid, cityid);
|
||||
SystemCities systemCities = systemCitiesMapper.selectOne(queryWrapper);
|
||||
String weathercityid = null;
|
||||
if (systemCities != null) {
|
||||
weathercityid = systemCities.getWeathercityid();
|
||||
public String getWeatherData(Map<String, Object> map) {
|
||||
String areaId = MapUtils.getString(map, "areaId");
|
||||
if (StringUtils.isNotBlank(areaId)) {
|
||||
QueryWrapper<SystemAreas> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(SystemAreas::getAreaid, areaId);
|
||||
SystemAreas systemCities = systemAreasMapper.selectOne(queryWrapper);
|
||||
String weathercityid = null;
|
||||
if (systemCities != null) {
|
||||
weathercityid = systemCities.getWeathercityid();
|
||||
}
|
||||
return AqiUtil.getWeatherData(weathercityid);
|
||||
} else {
|
||||
String cityid = MapUtils.getString(map, "cityid");
|
||||
QueryWrapper<SystemCities> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(SystemCities::getCityid, cityid);
|
||||
SystemCities systemCities = systemCitiesMapper.selectOne(queryWrapper);
|
||||
String weathercityid = null;
|
||||
if (systemCities != null) {
|
||||
weathercityid = systemCities.getWeathercityid();
|
||||
}
|
||||
return AqiUtil.getWeatherData(weathercityid);
|
||||
}
|
||||
return AqiUtil.getWeatherData(weathercityid);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -161,7 +161,6 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
||||
}
|
||||
|
||||
private void setAlarmStatus(SewageData sewageData, List<SewageAlarm> sewageAlarms) {
|
||||
if (CollUtil.isNotEmpty(sewageAlarms)) {
|
||||
Map<Integer, SewageAlarm> alarmMap = sewageAlarms.stream().filter(sewageAlarm -> Objects.equals(sewageAlarm.getAlarmType(), 2)).collect(Collectors.toMap(SewageAlarm::getSewageType, Function.identity(), (sewageAlarm, sewageAlarm2) -> sewageAlarm));
|
||||
Map<Integer, SewageAlarm> warnMap = sewageAlarms.stream().filter(sewageAlarm -> Objects.equals(sewageAlarm.getAlarmType(), 1)).collect(Collectors.toMap(SewageAlarm::getSewageType, Function.identity(), (sewageAlarm, sewageAlarm2) -> sewageAlarm));
|
||||
//
|
||||
@ -221,7 +220,6 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
||||
sewageData.setWaterLevelStatus(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void insertAlarmIfLe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType, SewageData sd, Integer sewageType) {
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.zhgd.xmgl.modules.smartgrout.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo;
|
||||
@ -17,12 +19,16 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -53,10 +53,10 @@ public class SmokeDevAlarm implements Serializable {
|
||||
@ApiModelProperty(value = "告警时间")
|
||||
private java.util.Date alarmTime;
|
||||
/**
|
||||
* 设备状态0:报警恢复;1:报警
|
||||
* 设备状态 0报警恢复;1表示报警; 2表示心跳
|
||||
*/
|
||||
@Excel(name = "设备状态0:报警恢复;1:报警", width = 15)
|
||||
@ApiModelProperty(value = "设备状态0:报警恢复;1:报警")
|
||||
@Excel(name = "设备状态 0报警恢复;1表示报警; 2表示心跳", width = 15)
|
||||
@ApiModelProperty(value = "设备状态 0报警恢复;1表示报警; 2表示心跳")
|
||||
private java.lang.Integer deviceStatus;
|
||||
@ApiModelProperty(value = "警情状态,内容:布防、撤防、SOS、盗警、交流电故障等")
|
||||
private java.lang.String alarmDetailStatus;
|
||||
|
||||
@ -185,7 +185,7 @@ public class ProjectTask {
|
||||
value = AqiUtil.getPm25IAQI(value);
|
||||
} else {
|
||||
//没有数据时候,查询项目所在天气的指标
|
||||
value = AqiUtil.getWeatherInfo(project.getCityCode());
|
||||
value = AqiUtil.getWeatherInfo(project.getAreaCode());
|
||||
}
|
||||
if (value != null) {
|
||||
AirQualityAnalysis airQualityAnalysis = new AirQualityAnalysis();
|
||||
|
||||
@ -1,11 +1,15 @@
|
||||
package com.zhgd.xmgl.util;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.http.HttpException;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.gexin.fastjson.JSONObject;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemAreas;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemCities;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemAreasMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemCitiesMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -31,6 +35,7 @@ import java.util.stream.Collectors;
|
||||
@Component
|
||||
public class AqiUtil {
|
||||
private static SystemCitiesMapper systemCitiesMapper;
|
||||
private static SystemAreasMapper systemAreasMapper;
|
||||
private static RedisRepository redisRepository;
|
||||
public static String SYSTEM_CITIES_KEY = "SYSTEM_CITIES";
|
||||
public static String WEATHER_DATA = "WEATHER_DATA:";
|
||||
@ -63,6 +68,11 @@ public class AqiUtil {
|
||||
AqiUtil.systemCitiesMapper = systemCitiesMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemAreasMapper(SystemAreasMapper systemAreasMapper) {
|
||||
AqiUtil.systemAreasMapper = systemAreasMapper;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setRedisRepository(RedisRepository redisRepository) {
|
||||
AqiUtil.redisRepository = redisRepository;
|
||||
@ -180,26 +190,25 @@ public class AqiUtil {
|
||||
/**
|
||||
* 根据城市查询天气
|
||||
*
|
||||
* @param cityCode 城市ID
|
||||
* @param areaCode
|
||||
* @return
|
||||
*/
|
||||
public static Double getWeatherInfo(String cityCode) {
|
||||
List<SystemCities> systemCities = redisRepository.getOrSet(SYSTEM_CITIES_KEY, () -> systemCitiesMapper.selectList(null), 60 * 60L);
|
||||
String key = WEATHER_QUALITY + cityCode;
|
||||
public static Double getWeatherInfo(String areaCode) {
|
||||
String key = WEATHER_QUALITY + areaCode;
|
||||
Object ro = redisRepository.get(key);
|
||||
if (ro != null) {
|
||||
return (Double) ro;
|
||||
}
|
||||
Map<String, SystemCities> cityIdMap = systemCities.stream().collect(Collectors.toMap(e -> e.getCityid(), Function.identity(), (o, o2) -> o));
|
||||
//空气指数
|
||||
Double air = null;
|
||||
try {
|
||||
Map<String, Object> param = new HashMap<>();
|
||||
param.put("appid", tianqiAppid);
|
||||
param.put("appsecret", tianqiAppsecret);
|
||||
String cityId = Optional.ofNullable(cityIdMap.get(cityCode)).map(e -> e.getWeathercityid()).orElse(null);
|
||||
if (StringUtils.isNotBlank(cityId)) {
|
||||
param.put("cityid", cityId);
|
||||
List<SystemAreas> systemAreas = systemAreasMapper.selectList(new LambdaQueryWrapper<SystemAreas>()
|
||||
.eq(SystemAreas::getAreaid, areaCode));
|
||||
if (CollUtil.isNotEmpty(systemAreas)) {
|
||||
param.put("cityid", systemAreas.get(0).getWeathercityid());
|
||||
}
|
||||
String urlString = tianqiUrl + "/free/day";
|
||||
log.info("tianqi:url:{},param:{}", urlString, JSON.toJSONString(param));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user