src/main/java/com/moral/mapper/HistoryMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/HistoryService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/task/HistoryTableInsertTask.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/HistoryMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/moral/mapper/HistoryMapper.java
@@ -23,5 +23,9 @@ List<Map<String, Object>> getSensorDataOnce(Map<String,Object> parameters); Map<String, Object> getMinData(Map<String,Object> parameters); List<History> selectByMacAndTime(Map<String, Object> parameters); int insertHistorySpecialTable(Map<String, Object> parameters); } src/main/java/com/moral/service/HistoryService.java
New file @@ -0,0 +1,13 @@ package com.moral.service; import java.util.List; import java.util.Map; import com.moral.entity.History; public interface HistoryService { List<History> selectByMacAndTime(Map<String, Object> parameters); int insertHistorySpecialTable(Map<String, Object> parameters); } src/main/java/com/moral/service/impl/HistoryServiceImpl.java
New file @@ -0,0 +1,29 @@ package com.moral.service.impl; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.moral.entity.History; import com.moral.mapper.HistoryMapper; import com.moral.service.HistoryService; @Service public class HistoryServiceImpl implements HistoryService { @Resource private HistoryMapper historyMapper; @Override public List<History> selectByMacAndTime(Map<String, Object> parameters) { return historyMapper.selectByMacAndTime(parameters); } @Override public int insertHistorySpecialTable(Map<String, Object> parameters) { return historyMapper.insertHistorySpecialTable(parameters); } } src/main/java/com/moral/task/HistoryTableInsertTask.java
@@ -20,10 +20,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.moral.entity.History; import com.moral.service.DeviceService; import com.moral.service.HistoryDailyService; import com.moral.service.HistoryHourlyService; import com.moral.service.HistoryMinutelyService; import com.moral.service.HistoryService; import com.moral.service.SensorService; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; @@ -38,6 +40,9 @@ @Resource private DeviceService deviceService; @Resource private HistoryService historyService; @Resource private HistoryMinutelyService historyMinutelyService; @@ -881,4 +886,31 @@ return returnT; } @XxlJob("historySpecial") public ReturnT insertHistorySpecialTable(String params) { Map macMap = JSON.parseObject(params); List<String> macList = (List<String>) macMap.get("mac"); LocalDateTime value = LocalDateTime.now(); LocalDateTime time = value.truncatedTo(ChronoUnit.SECONDS); LocalDateTime tenSecondsAgo = time.minusSeconds(10); Map<String, Object> devices = new HashMap<>(); devices.put("macList", macList); devices.put("time", tenSecondsAgo); try { List<History> historyData = historyService.selectByMacAndTime(devices); if (!CollectionUtils.isEmpty(historyData)) { int count = historyService.insertHistorySpecialTable(devices); XxlJobLogger.log("insertHistorySpecialTable:" + count); ReturnT returnT = new ReturnT(200, "插入historySpecial表成功"); return returnT; } } catch (Exception e) { XxlJobLogger.log("insertHistorySpecialTableException:" + e.getMessage()); logger.error(e.getMessage()); e.printStackTrace(); } ReturnT returnT = new ReturnT(500, "插入historySpecial表失败"); return returnT; } } src/main/resources/mapper/HistoryMapper.xml
@@ -157,5 +157,23 @@ group by h.mac,DATE_FORMAT(time,'%Y-%m-%dT%H:%i') </select> <select id="selectByMacAndTime" resultType="com.moral.entity.History"> SELECT * from history WHERE time = #{time} and mac in <foreach collection="macList" index="index" item="mac" open="(" separator="," close=")"> #{mac} </foreach> </select> <insert id="insertHistorySpecialTable"> insert into history_special(mac, value, time,version) SELECT * from history WHERE time = #{time} and mac in <foreach collection="macList" index="index" item="mac" open="(" separator="," close=")"> #{mac} </foreach> </insert> </mapper>