src/main/java/com/moral/controller/ScreenController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/mapper/HangzhouAqiMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/HangzhouAqiService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/HangzhouAqiMapper.xml | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/QualityDailyMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/moral/controller/ScreenController.java
@@ -705,7 +705,7 @@ @ApiImplicitParams(value = { @ApiImplicitParam(name = "orgid",defaultValue = "5",value = "组织id", required = true, paramType = "query", dataType = "Integer"), }) public ResultBean<List<Map>> getAqi24HoursNC(@RequestParam("orgid") Integer organizationId) { public ResultBean<List<Map<String,Object>>> getAqi24HoursNC(@RequestParam("orgid") Integer organizationId) { return new ResultBean<>(hangzhouAqiService.queryAqi24Hours(organizationId)); } @GetMapping("mpt-dev-summary") src/main/java/com/moral/mapper/HangzhouAqiMapper.java
@@ -11,4 +11,7 @@ public interface HangzhouAqiMapper extends BaseMapper<HangzhouAqi> { public List<Map> selectAqisByCodeAndTimePeriod(@Param("code")String code,@Param("timePeriod") TimePeriod timePeriod); List<Map<String, Object>> getAqisByOrganizationId(Map<String, Object> parameters); } src/main/java/com/moral/service/HangzhouAqiService.java
@@ -10,5 +10,5 @@ * @Description: 国控api服务接口 */ public interface HangzhouAqiService { public List<Map> queryAqi24Hours(@NotNull Integer orgId); public List<Map<String, Object>> queryAqi24Hours(@NotNull Integer orgId); } src/main/java/com/moral/service/impl/HangzhouAqiServiceImpl.java
@@ -1,18 +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.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * @Auther: fengxiang @@ -34,9 +39,11 @@ * @param orgId * @return 返回长度为24的数组,查不到的数据设置为0 */ @Override public List<Map> queryAqi24Hours(Integer orgId) { 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);; @@ -66,6 +73,19 @@ 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) src/main/resources/mapper/HangzhouAqiMapper.xml
@@ -32,4 +32,19 @@ ) order by time asc </select> <select id="getAqisByOrganizationId" resultType="map"> SELECT h.aqi_json ->> '$.AQI' * 1 aqi, DATE_FORMAT( h.time, '%H' ) * 1 time FROM hangzhou_aqi h <where> h.city_code = #{cityCode} AND h.time <![CDATA[<]]> #{end} </where> ORDER BY h.time DESC LIMIT 24 </select> </mapper> src/main/resources/mapper/QualityDailyMapper.xml
@@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moral.mapper.QualityDailyMapper"> <!-- <select id="getQualityCountDayByRegion" resultType="map"> SELECT COUNT( * ) count @@ -13,4 +14,32 @@ AND quality < 3 </where> </select> --> <select id="getQualityCountDayByRegion" resultType="map"> SELECT COUNT(*) count FROM ( SELECT MAX(CASE aqi_json ->> '$.quality' WHEN "优" THEN 1 WHEN "良" THEN 2 WHEN "轻度污染" THEN 3 WHEN "中度污染" THEN 4 WHEN "重度污染" THEN 5 WHEN "严重污染" THEN 6 ELSE 0 END ) AS quality FROM `hangzhou_aqi` <where> time >= #{start} AND time < #{end} AND city_code = #{cityCode} </where> GROUP BY DATE_FORMAT( time, '%Y-%m-%d' ) ) t <where> t.quality < 3 </where> </select> </mapper>