| | |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.ObjectUtils; |
| | |
| | | @Resource |
| | | private WeatherUtil weatherUtil; |
| | | |
| | | @Resource |
| | | RedisTemplate redisTemplate; |
| | | |
| | | @XxlJob("historyMinutely") |
| | | public ReturnT insertHistoryMinutelyTable(String params) { |
| | | //正式环境使用 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:00"); |
| | | Date endTimeDate = new Date(); |
| | | Date startTimeDate = DateUtil.rollMinute(endTimeDate, -1); |
| | | Date insertTimeDate = new Date(); |
| | | Date startTimeDate = DateUtil.rollMinute(insertTimeDate, -2); |
| | | Date endTimeDate = DateUtil.rollMinute(insertTimeDate, -1); |
| | | StringBuilder insertTime = new StringBuilder(sdf.format(insertTimeDate)); |
| | | StringBuilder endTime = new StringBuilder(sdf.format(endTimeDate)); |
| | | StringBuilder startTime = new StringBuilder(sdf.format(startTimeDate)); |
| | | String queryYearAndMonthDay = DateUtil.getYear(startTimeDate) + DateUtil.getMonth(startTimeDate) + DateUtil.getDay(startTimeDate); |
| | |
| | | for (Map<String, Object> deviceData : minutelyData) { |
| | | if (!ObjectUtils.isEmpty(deviceData)) { |
| | | Map<String, Object> minutelyDataMap = new LinkedHashMap<>(); |
| | | JSONObject jo = new JSONObject(true); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | minutelyDataMap.put("mac", deviceData.get("mac")); |
| | | minutelyDataMap.put("time", endTime.toString()); |
| | | JSONArray jsonArray = new JSONArray(); |
| | | minutelyDataMap.put("time", insertTime.toString()); |
| | | for (String key : deviceData.keySet()) { |
| | | if (!key.equals("mac") && !key.startsWith("M")) { |
| | | List<Object> date = new ArrayList<>(); |
| | | date.add(deviceData.get(key)); |
| | | date.add(deviceData.get("MIN" + key)); |
| | | date.add(deviceData.get("MAX" + key)); |
| | | jo.put(key, date); |
| | | map.put(key, date); |
| | | } |
| | | } |
| | | jsonArray.add(jo); |
| | | minutelyDataMap.put("json", jsonArray.get(0).toString()); |
| | | minutelyDataMap.put("json", JSONObject.toJSONString(map)); |
| | | minutelyDataList.add(minutelyDataMap); |
| | | } |
| | | } |
| | |
| | | ReturnT returnT = new ReturnT(500, e.getMessage()); |
| | | return returnT; |
| | | } |
| | | List record = new ArrayList(); |
| | | record.add("repairMinutelyData_"+endTimeDate.getTime()/1000); |
| | | redisTemplate.opsForList().leftPushAll("unrepair_data", record); |
| | | ReturnT returnT = new ReturnT(500, "插入分钟表失败"); |
| | | return returnT; |
| | | } |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | ReturnT returnT = new ReturnT(500, "插入小时表失败"); |
| | | List record = new ArrayList(); |
| | | record.add("repairHourlyData_"+endTimeDate.getTime()/1000); |
| | | redisTemplate.opsForList().leftPushAll("unrepair_data", record); |
| | | return returnT; |
| | | } |
| | | |