jinpengyong
2021-11-25 6050927edf6c00f2f06b0b0775502d38eb5b7705
src/main/java/com/moral/task/HistoryFiveMinutelyTask.java
@@ -6,6 +6,8 @@
import com.moral.util.DateUtil;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
@@ -20,6 +22,9 @@
    @Resource
    SensorService sensorService;
    @Resource
    RedisTemplate redisTemplate;
    @XxlJob("createHistoryFiveMinutelyTb")
    public ReturnT createHistoryMinutelyTb(String param) {
@@ -43,20 +48,18 @@
     *     10:20:30  插入10:15--10:20的数据*/
    @XxlJob("insertHistoryFiveMinutelyTb")
    public ReturnT insertHistoryFiveMinutely(String param) {
        /*根据时间从分钟表数据钟查询五分钟数据的平均值*/
        Map<String, Object> params = getStartAndEndTime();
        List<String> sensorKeys = sensorService.getSensorKeys();
        params.put("sensorKeys", sensorKeys);
        List<Map<String, Object>> fiveMinutesSensorDatas;
        //获取当前时间
        Date errorDate = new Date();
        try {
            /*根据时间从分钟表数据钟查询五分钟数据的平均值*/
            Map<String, Object> params = getStartAndEndTime();
            List<String> sensorKeys = sensorService.getSensorKeys();
            params.put("sensorKeys", sensorKeys);
            List<Map<String, Object>> fiveMinutesSensorDatas;
            fiveMinutesSensorDatas = historyFiveMinutelyService.getFiveMinutesSensorData(params);
        } catch (Exception e) {
            return new ReturnT(500, "查询分钟表数据失败");
        }
        /*将得到的数据进行转换*/
        List<Map<String, Object>> insertDatas;
        try {
            /*将得到的数据进行转换*/
            List<Map<String, Object>> insertDatas;
            insertDatas = new ArrayList<>();
            for (Map<String, Object> data : fiveMinutesSensorDatas) {
                String mac = (String) data.get("mac");
@@ -80,17 +83,24 @@
                });
                String keyAndValueJson = JSON.toJSONString(keyAndValueMap);
                insertDataMap.put("mac", mac);
                insertDataMap.put("time", params.get("start"));
                insertDataMap.put("time", params.get("end"));
                insertDataMap.put("json", keyAndValueJson);
                insertDatas.add(insertDataMap);
            }
            /*将数据插入数据库*/
            if (!ObjectUtils.isEmpty(insertDatas)) {
                historyFiveMinutelyService.insertHistoryFiveMinutely(insertDatas, (String) params.get("yearAndMonth"));
                return new ReturnT(200, "插入五分钟数据成功");
            }
        } catch (Exception e) {
            return new ReturnT(500, "数据转换异常");
            XxlJobLogger.log("historyFiveMinutelyException:" + e.getMessage());
            e.printStackTrace();
        }
        /*将数据插入数据库*/
        historyFiveMinutelyService.insertHistoryFiveMinutely(insertDatas, (String) params.get("yearAndMonth"));
        return new ReturnT(200, "插入数据成功");
        List record = new ArrayList();
        record.add("repairFiveMinutelyData_" + errorDate.getTime() / 1000);
        redisTemplate.opsForList().leftPushAll("unrepair_data", record);
        return new ReturnT(500, "插入五分钟数据失败");
    }
    /**
@@ -114,12 +124,14 @@
        if (endMinute >= 5) {
            StringBuilder time = new StringBuilder(sdf.format(date));
            startTime = time.replace(15, 19, "0:00").toString();
            endTime = time.replace(15, 19, "4:00").toString();
            endTime = time.replace(15, 19, "5:00").toString();
        } else {
            StringBuilder endTimesb = new StringBuilder(sdf.format(date));
            endTime = endTimesb.replace(15, 19, "0:00").toString();
            date = DateUtil.rollMinute(date, -5);
            StringBuilder time = new StringBuilder(sdf.format(date));
            startTime = time.replace(15, 19, "5:00").toString();
            endTime = time.replace(15, 19, "9:00").toString();
            StringBuilder startTimesb = new StringBuilder(sdf.format(date));
            startTime = startTimesb.replace(15, 19, "5:00").toString();
        }
        year = DateUtil.getYear(date);