From 68a49e074e779e1960f827ff02d69d3b73fa9165 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Thu, 15 Jul 2021 09:13:11 +0800 Subject: [PATCH] web端小时aqi,因子月均值 --- screen-common/src/main/java/com/moral/util/DateUtils.java | 18 + screen-job/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java | 7 screen-api/src/main/java/com/moral/api/controller/WebController.java | 66 ++++++ screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java | 50 ++++ screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java | 50 ++++ screen-common/src/main/java/com/moral/util/AQIUtils.java | 193 +++++++++++++++++ screen-api/src/main/java/com/moral/api/service/HistoryDailyService.java | 20 + screen-api/src/main/java/com/moral/api/entity/HistoryDaily.java | 45 ++++ screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java | 44 ++++ screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java | 16 + screen-api/src/main/resources/mapper/HistoryDailyMapper.xml | 21 + screen-api/src/main/java/com/moral/api/mapper/HistoryDailyMapper.java | 20 + screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java | 20 + screen-common/src/main/java/com/moral/constant/Constants.java | 24 ++ screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml | 13 + screen-common/src/main/java/com/moral/constant/RedisConstants.java | 5 16 files changed, 610 insertions(+), 2 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/WebController.java b/screen-api/src/main/java/com/moral/api/controller/WebController.java new file mode 100644 index 0000000..ae6bf47 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/WebController.java @@ -0,0 +1,66 @@ +package com.moral.api.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import com.moral.api.service.HistoryDailyService; +import com.moral.api.service.HistoryHourlyService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import com.moral.util.WebUtils; + +@Slf4j +@Api(tags = {"web���������"}) +@RestController +@RequestMapping("/web") +public class WebController { + + @Autowired + private HistoryHourlyService historyHourlyService; + + @Autowired + private HistoryDailyService historyDailyService; + + @GetMapping("getHourlyAqi") + @ApiOperation(value = "���������������AQI", notes = "���������������AQI") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String") + }) + public ResultMessage getHourlyAqi(HttpServletRequest request) { + Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); + if (!params.containsKey("mac")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + Map<String, Object> result = historyHourlyService.getHourlyAqiByMac(params.get("mac").toString()); + return ResultMessage.ok(result); + } + + @GetMapping("getMonthAvg") + @ApiOperation(value = "������������������������������������", notes = "������������������������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sensorCode", value = "������code", required = true, paramType = "query", dataType = "String") + }) + public ResultMessage getMonthAvg(HttpServletRequest request) { + Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); + if (!params.containsKey("mac") || !params.containsKey("sensorCode")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + Map<String, Object> result = historyDailyService.getMonthAvg(params); + return ResultMessage.ok(result); + } + +} diff --git a/screen-api/src/main/java/com/moral/api/entity/HistoryDaily.java b/screen-api/src/main/java/com/moral/api/entity/HistoryDaily.java new file mode 100644 index 0000000..c6b463b --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/entity/HistoryDaily.java @@ -0,0 +1,45 @@ +package com.moral.api.entity; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * ��������� + * </p> + * + * @author moral + * @since 2021-07-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class HistoryDaily extends Model<HistoryDaily> { + + private static final long serialVersionUID = 1L; + + /** + * ������mac + */ + private String mac; + + /** + * ������ + */ + private Date time; + + /** + * ������ + */ + private String value; + + + @Override + protected Serializable pkVal() { + return null; + } + +} diff --git a/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java b/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java new file mode 100644 index 0000000..efa413c --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java @@ -0,0 +1,50 @@ +package com.moral.api.entity; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * ������������������ + * </p> + * + * @author moral + * @since 2021-07-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class HistoryHourly extends Model<HistoryHourly> { + + private static final long serialVersionUID = 1L; + + /** + * ������mac + */ + private String mac; + + /** + * ������������ + */ + private Date time; + + /** + * ������ + */ + private String value; + + /** + * ������ + */ + private Integer version; + + + @Override + protected Serializable pkVal() { + return null; + } + +} diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistoryDailyMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistoryDailyMapper.java new file mode 100644 index 0000000..35614f0 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/mapper/HistoryDailyMapper.java @@ -0,0 +1,20 @@ +package com.moral.api.mapper; + +import java.util.Map; + +import com.moral.api.entity.HistoryDaily; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * ��������� Mapper ������ + * </p> + * + * @author moral + * @since 2021-07-14 + */ +public interface HistoryDailyMapper extends BaseMapper<HistoryDaily> { + + Map<String, Object> getAvgByMac(Map<String, Object> params); + +} diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java new file mode 100644 index 0000000..ec74607 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java @@ -0,0 +1,16 @@ +package com.moral.api.mapper; + +import com.moral.api.entity.HistoryHourly; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * ������������������ Mapper ������ + * </p> + * + * @author moral + * @since 2021-07-14 + */ +public interface HistoryHourlyMapper extends BaseMapper<HistoryHourly> { + +} diff --git a/screen-api/src/main/java/com/moral/api/service/HistoryDailyService.java b/screen-api/src/main/java/com/moral/api/service/HistoryDailyService.java new file mode 100644 index 0000000..15d62eb --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/HistoryDailyService.java @@ -0,0 +1,20 @@ +package com.moral.api.service; + +import java.util.Map; + +import com.moral.api.entity.HistoryDaily; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * ��������� ��������� + * </p> + * + * @author moral + * @since 2021-07-14 + */ +public interface HistoryDailyService extends IService<HistoryDaily> { + + Map<String, Object> getMonthAvg(Map<String, Object> params); + +} diff --git a/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java b/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java new file mode 100644 index 0000000..241a855 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/HistoryHourlyService.java @@ -0,0 +1,20 @@ +package com.moral.api.service; + +import java.util.Map; + +import com.moral.api.entity.HistoryHourly; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * ������������������ ��������� + * </p> + * + * @author moral + * @since 2021-07-14 + */ +public interface HistoryHourlyService extends IService<HistoryHourly> { + + Map<String,Object> getHourlyAqiByMac(String mac); + +} diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java new file mode 100644 index 0000000..5c1316e --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java @@ -0,0 +1,44 @@ +package com.moral.api.service.impl; + +import com.moral.api.entity.HistoryDaily; +import com.moral.api.mapper.HistoryDailyMapper; +import com.moral.api.service.HistoryDailyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import com.moral.util.DateUtils; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * <p> + * ��������� ��������������� + * </p> + * + * @author moral + * @since 2021-07-14 + */ +@Service +public class HistoryDailyServiceImpl extends ServiceImpl<HistoryDailyMapper, HistoryDaily> implements HistoryDailyService { + + @Autowired + private HistoryDailyMapper historyDailyMapper; + + @Override + public Map<String, Object> getMonthAvg(Map<String, Object> params) { + params.put("start", DateUtils.getFirstDayOfCurrMonth()); + params.put("end", DateUtils.getLastDayOfCurrMonth()); + Map<String, Object> data = historyDailyMapper.getAvgByMac(params); + Map<String, Object> result = new HashMap<>(); + if (ObjectUtils.isEmpty(data)) { + result.put("avg", Constants.NULL_VALUE); + return result; + } + result.put("avg", data.get(params.get("sensorCode"))); + return result; + } +} diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java new file mode 100644 index 0000000..b64554c --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java @@ -0,0 +1,50 @@ +package com.moral.api.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.HistoryHourly; +import com.moral.api.mapper.HistoryHourlyMapper; +import com.moral.api.service.HistoryHourlyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import com.moral.util.AQIUtils; +import com.moral.util.DateUtils; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * <p> + * ������������������ ��������������� + * </p> + * + * @author moral + * @since 2021-07-14 + */ +@Service +public class HistoryHourlyServiceImpl extends ServiceImpl<HistoryHourlyMapper, HistoryHourly> implements HistoryHourlyService { + + @Autowired + private HistoryHourlyMapper historyHourlyMapper; + + @Override + public Map<String, Object> getHourlyAqiByMac(String mac) { + QueryWrapper<HistoryHourly> queryWrapper = new QueryWrapper<>(); + String time = DateUtils.dateToDateString(new Date(), DateUtils.yyyy_MM_dd_HH_EN) + ":00:00"; + queryWrapper.eq("mac", mac).eq("time", time); + //������������������ + HistoryHourly historyHourly = historyHourlyMapper.selectOne(queryWrapper); + Map<String, Object> result = new HashMap<>(); + if (historyHourly == null) { + result.put("AQI", Constants.NULL_VALUE); + return result; + } + Map<String, Object> data = JSONObject.parseObject(historyHourly.getValue(), Map.class); + result.put("AQI", AQIUtils.hourlyAqi(data)); + return result; + } +} diff --git a/screen-api/src/main/resources/mapper/HistoryDailyMapper.xml b/screen-api/src/main/resources/mapper/HistoryDailyMapper.xml new file mode 100644 index 0000000..a54c78b --- /dev/null +++ b/screen-api/src/main/resources/mapper/HistoryDailyMapper.xml @@ -0,0 +1,21 @@ +<?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.api.mapper.HistoryDailyMapper"> + + <!-- ������������������������ --> + <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryDaily"> + <result column="mac" property="mac"/> + <result column="time" property="time"/> + <result column="value" property="value"/> + </resultMap> + + <select id="getAvgByMac" resultType="java.util.Map"> + SELECT + AVG(`value` ->'$.${sensorCode}') AS '${sensorCode}' + FROM history_daily + WHERE mac = #{mac} + AND time <![CDATA[>=]]> #{start} + AND time <![CDATA[<=]]> #{end} + </select> + +</mapper> \ No newline at end of file diff --git a/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml b/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml new file mode 100644 index 0000000..90af3f8 --- /dev/null +++ b/screen-api/src/main/resources/mapper/HistoryHourlyMapper.xml @@ -0,0 +1,13 @@ +<?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.api.mapper.HistoryHourlyMapper"> + + <!-- ������������������������ --> + <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryHourly"> + <result column="mac" property="mac"/> + <result column="time" property="time"/> + <result column="value" property="value"/> + <result column="version" property="version"/> + </resultMap> + +</mapper> \ No newline at end of file diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java index 6351a17..246e402 100644 --- a/screen-common/src/main/java/com/moral/constant/Constants.java +++ b/screen-common/src/main/java/com/moral/constant/Constants.java @@ -153,4 +153,28 @@ * ������������code * */ public static final String SENSOR_CODE_CO= "a21005"; + + /* + * PM2.5 code + * */ + public static final String SENSOR_CODE_PM25= "a34004"; + + /* + * PM10 code + * */ + public static final String SENSOR_CODE_PM10= "a34002"; + + /* + * SO2 code + * */ + public static final String SENSOR_CODE_SO2= "a21026"; + + /* + * NO2 code + * */ + public static final String SENSOR_CODE_NO2= "a21004"; + + /** The Constant NULL_VALUE. */ + public static final String NULL_VALUE = "N/V"; + } diff --git a/screen-common/src/main/java/com/moral/constant/RedisConstants.java b/screen-common/src/main/java/com/moral/constant/RedisConstants.java index 40ad154..25c36a2 100644 --- a/screen-common/src/main/java/com/moral/constant/RedisConstants.java +++ b/screen-common/src/main/java/com/moral/constant/RedisConstants.java @@ -64,5 +64,10 @@ * */ public static final String UNIT_CONVERSION = "unit_conversion"; + /* + * redis���5������������key + * */ + public static final String DATA_FIVE_MINUTES = "data_five_minutes"; + } diff --git a/screen-common/src/main/java/com/moral/util/AQIUtils.java b/screen-common/src/main/java/com/moral/util/AQIUtils.java new file mode 100644 index 0000000..70cddb2 --- /dev/null +++ b/screen-common/src/main/java/com/moral/util/AQIUtils.java @@ -0,0 +1,193 @@ +package com.moral.util; + +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import com.moral.constant.Constants; + +public class AQIUtils { + public static int hourlyAqi(Map<String, Object> map) { + List<Integer> AQIList = new ArrayList<>(); + for (Map.Entry<String, Object> entry : map.entrySet()) { + String key = entry.getKey(); + if (entry.getValue().toString().equals("")) { + continue; + } + int PM2_5AQI; + int PM10AQI; + int SO2AQI; + int NO2AQI; + int COAQI; + int O3AQI; + switch (key) { + case Constants.SENSOR_CODE_PM25: + PM2_5AQI = PM2_5AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(PM2_5AQI); + break; + case Constants.SENSOR_CODE_PM10: + PM10AQI = PM10AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(PM10AQI); + break; + case Constants.SENSOR_CODE_SO2: + SO2AQI = SO2AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(SO2AQI); + break; + case Constants.SENSOR_CODE_NO2: + NO2AQI = NO2AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(NO2AQI); + break; + case Constants.SENSOR_CODE_CO: + COAQI = COAQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(COAQI); + break; + case Constants.SENSOR_CODE_O3: + O3AQI = O3AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(O3AQI); + break; + default: + break; + } + } + int AQIMAX = 0; + if (!ObjectUtils.isEmpty(AQIList)) { + AQIMAX = Collections.max(AQIList); + } + return AQIMAX; + } + + //PM2.5 IAQI + public static int PM2_5AQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 35) { + result = 50d / 35d * (value - 0) + 0; + } else if (value <= 75) { + result = 50d / 40d * (value - 35) + 50; + } else if (value <= 115) { + result = 50d / 40d * (value - 75) + 100; + } else if (value <= 150) { + result = 50d / 35d * (value - 115) + 150; + } else if (value <= 250) { + result = 100d / 100d * (value - 150) + 200; + } else if (value <= 350) { + result = 100d / 100d * (value - 250) + 300; + } else { + result = 100d / 150d * (value - 350) + 400; + } + return (int) Math.ceil(result); + } + + //PM10 IAQI + public static int PM10AQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 50) { + result = 50d / 50d * (value - 0) + 0; + } else if (value <= 150) { + result = 50d / 100d * (value - 50) + 50; + } else if (value <= 250) { + result = 50d / 100d * (value - 150) + 100; + } else if (value <= 350) { + result = 50d / 100d * (value - 250) + 150; + } else if (value <= 420) { + result = 100d / 70d * (value - 350) + 200; + } else if (value <= 500) { + result = 100d / 80d * (value - 420) + 300; + } else { + result = 100d / 100d * (value - 500) + 400; + } + return (int) Math.ceil(result); + } + + //SO2 IAQI + public static int SO2AQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 150) { + result = 50d / 150d * (value - 0) + 0; + } else if (value <= 500) { + result = 50d / 350d * (value - 150) + 50; + } else if (value <= 650) { + result = 50d / 150d * (value - 500) + 100; + } else { + result = 50d / 150d * (value - 650) + 150; + } + return (int) Math.ceil(result); + } + + //NO2 IAQI + public static int NO2AQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 100) { + result = 50d / 100d * (value - 0) + 0; + } else if (value <= 200) { + result = 50d / 100d * (value - 100) + 50; + } else if (value <= 700) { + result = 50d / 500d * (value - 200) + 100; + } else if (value <= 1200) { + result = 50d / 500d * (value - 700) + 150; + } else if (value <= 2340) { + result = 100d / 1140d * (value - 1200) + 200; + } else if (value <= 3090) { + result = 100d / 750d * (value - 2340) + 300; + } else { + result = 100d / 750d * (value - 3090) + 400; + } + return (int) Math.ceil(result); + } + + //CO IAQI + public static int COAQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 5) { + result = 50d / 5d * (value - 0) + 0; + } else if (value <= 10) { + result = 50d / 5d * (value - 5) + 50; + } else if (value <= 35) { + result = 50d / 25d * (value - 10) + 100; + } else if (value <= 60) { + result = 50d / 25d * (value - 35) + 150; + } else if (value <= 90) { + result = 100d / 30d * (value - 60) + 200; + } else if (value <= 120) { + result = 100d / 30d * (value - 90) + 300; + } else { + result = 100d / 30d * (value - 120) + 400; + } + return (int) Math.ceil(result); + } + + //O3 IAQI + public static int O3AQI(Double value) { + double result; + if (value <= 0) { + result = 0; + } else if (value <= 100) { + result = 50d / 100d * (value - 0) + 0; + } else if (value <= 160) { + result = 50d / 60d * (value - 100) + 50; + } else if (value <= 215) { + result = 50d / 55d * (value - 160) + 100; + } else if (value <= 265) { + result = 50d / 150d * (value - 215) + 150; + } else if (value <= 800) { + result = 100d / 535d * (value - 265) + 200; + } else if (value <= 2100) { + result = 100d / 12d * (value - 800) + 300; + } else { + result = 100d / 12d * (value - 48) + 400; + } + return (int) Math.ceil(result); + } +} diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java index 5fde952..1d777ef 100644 --- a/screen-common/src/main/java/com/moral/util/DateUtils.java +++ b/screen-common/src/main/java/com/moral/util/DateUtils.java @@ -761,6 +761,17 @@ } /** + * ������������������������ + * + * @return + */ + public static Date getFirstDayOfCurrMonth() { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.DAY_OF_MONTH, 1); + return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); + } + + /** * ������������������������������ * * @return @@ -769,8 +780,7 @@ Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, 1); cal.set(Calendar.DAY_OF_MONTH, 0); - - return cal.getTime(); + return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); } /** @@ -1326,4 +1336,8 @@ calendar.set(Calendar.DAY_OF_MONTH, 1); return getDate(dateToDateString(calendar.getTime(), yyyy_MM_dd_EN)); } + + public static void main(String[] args) { + System.out.println(getFirstDayOfCurrMonth()); + } } diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java index 4fc7ac3..368cfb5 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java @@ -1,6 +1,7 @@ package com.moral.api.service.impl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -22,6 +23,7 @@ import com.moral.api.service.HistoryMinutelyService; import com.moral.api.service.SensorService; import com.moral.constant.Constants; +import com.moral.constant.RedisConstants; import com.moral.util.AmendUtils; import com.moral.util.DateUtils; @@ -41,6 +43,9 @@ public void createTable(String timeUnits) { historyFiveMinutelyMapper.createTable(timeUnits); } + + @Autowired + private RedisTemplate redisTemplate; @Override @Transactional @@ -111,6 +116,8 @@ } }); dataMap.put("value", JSONObject.toJSONString(jsonMap)); + //������redis + redisTemplate.opsForHash().put(RedisConstants.DATA_FIVE_MINUTES, key, jsonMap); insertData.add(dataMap); }); -- Gitblit v1.8.0