From bf8cb657cd550ce3061401bdf2842723d3c190a2 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Tue, 03 Aug 2021 14:39:21 +0800
Subject: [PATCH] 中间数据迁入正式表,kafka小时数据存入中间表,删除中间表数据
---
screen-job/src/main/java/com/moral/api/service/HistoryHourlyService.java | 6 +
screen-job/src/main/resources/mapper/DeviceMapper.xml | 46 +++++-----
screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java | 7 +
screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java | 23 +++--
screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml | 19 ++++
screen-job/src/main/resources/mapper/HistoryAqiMapper.xml | 12 +-
screen-manage/src/main/java/com/moral/api/controller/DeviceController.java | 3
screen-job/src/main/java/com/moral/api/task/DeleteHistoryHourlyTransitionTask.java | 29 +++++++
screen-manage/src/main/resources/mapper/HistoryHourlyMapper.xml | 11 ++
screen-manage/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java | 8 ++
screen-job/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java | 7 +
screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java | 17 ++++
screen-common/src/main/java/com/moral/constant/Constants.java | 5 -
screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java | 18 ++++
14 files changed, 167 insertions(+), 44 deletions(-)
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 00a8cc3..246e402 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -120,11 +120,6 @@
public static final String UN_ADJUST = "unadjust";
/*
- * ���������������
- * */
- public static final String TRANSITION = "transition";
-
- /*
* ���������������������
* */
public static final String DEVICE_STATE_OFFLINE = "0";
diff --git a/screen-job/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java b/screen-job/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
index 9b3c8d7..79d40fc 100644
--- a/screen-job/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
+++ b/screen-job/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
@@ -1,7 +1,6 @@
package com.moral.api.mapper;
import java.util.List;
-import java.util.Map;
import com.moral.api.entity.HistoryHourly;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -16,4 +15,10 @@
*/
public interface HistoryHourlyMapper extends BaseMapper<HistoryHourly> {
+ void insertHistoryHourly(List<HistoryHourly> list);
+
+ List<HistoryHourly> getHistoryHourlyTransition();
+
+ void deleteHistoryHourlyTransition();
+
}
diff --git a/screen-job/src/main/java/com/moral/api/service/HistoryHourlyService.java b/screen-job/src/main/java/com/moral/api/service/HistoryHourlyService.java
index b8b345c..fa49b22 100644
--- a/screen-job/src/main/java/com/moral/api/service/HistoryHourlyService.java
+++ b/screen-job/src/main/java/com/moral/api/service/HistoryHourlyService.java
@@ -13,4 +13,10 @@
*/
public interface HistoryHourlyService extends IService<HistoryHourly> {
+ //������������������������������������
+ void insertHistoryHourly();
+
+ //���������������������������
+ void deleteHistoryHourlyTransition();
+
}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
index 68af169..d22e534 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
@@ -4,7 +4,11 @@
import com.moral.api.mapper.HistoryHourlyMapper;
import com.moral.api.service.HistoryHourlyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* <p>
@@ -17,4 +21,18 @@
@Service
public class HistoryHourlyServiceImpl extends ServiceImpl<HistoryHourlyMapper, HistoryHourly> implements HistoryHourlyService {
+ @Autowired
+ private HistoryHourlyMapper historyHourlyMapper;
+
+ @Override
+ public void insertHistoryHourly() {
+ //���������������������������
+ List<HistoryHourly> list = historyHourlyMapper.getHistoryHourlyTransition();
+ historyHourlyMapper.insertHistoryHourly(list);
+ }
+
+ @Override
+ public void deleteHistoryHourlyTransition() {
+ historyHourlyMapper.deleteHistoryHourlyTransition();
+ }
}
diff --git a/screen-job/src/main/java/com/moral/api/task/DeleteHistoryHourlyTransitionTask.java b/screen-job/src/main/java/com/moral/api/task/DeleteHistoryHourlyTransitionTask.java
new file mode 100644
index 0000000..312deb7
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/task/DeleteHistoryHourlyTransitionTask.java
@@ -0,0 +1,29 @@
+package com.moral.api.task;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.moral.api.service.HistoryHourlyService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+@Component
+public class DeleteHistoryHourlyTransitionTask {
+
+ @Autowired
+ private HistoryHourlyService historyHourlyService;
+
+ //���������������������������
+ @XxlJob("deleteHourlyTransition")
+ public ReturnT insertHistoryFiveMinutely() {
+ try {
+ historyHourlyService.deleteHistoryHourlyTransition();
+ } catch (Exception e) {
+ XxlJobHelper.log(e.getMessage());
+ return ReturnT.FAIL;
+ }
+ return ReturnT.SUCCESS;
+ }
+
+}
diff --git a/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java b/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
index 8a272b3..5ef990c 100644
--- a/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
+++ b/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
@@ -5,6 +5,7 @@
import com.moral.api.service.HistoryDailyService;
import com.moral.api.service.HistoryFiveMinutelyService;
+import com.moral.api.service.HistoryHourlyService;
import com.moral.api.service.HistoryMonthlyService;
import com.moral.api.service.HistoryWeeklyService;
import com.xxl.job.core.biz.model.ReturnT;
@@ -16,6 +17,9 @@
@Autowired
private HistoryFiveMinutelyService historyFiveMinutelyService;
+
+ @Autowired
+ private HistoryHourlyService historyHourlyService;
@Autowired
private HistoryDailyService historyDailyService;
@@ -38,6 +42,19 @@
return ReturnT.SUCCESS;
}
+ //���������������������������������������
+ @XxlJob("insertHistoryHourly")
+ public ReturnT insertHistoryHourly() {
+ try {
+ historyHourlyService.insertHistoryHourly();
+ } catch (Exception e) {
+ XxlJobHelper.log(e.getMessage());
+ return ReturnT.FAIL;
+ }
+ return ReturnT.SUCCESS;
+ }
+
+
//���������������
@XxlJob("insertHistoryDaily")
public ReturnT insertHistoryDaily() {
diff --git a/screen-job/src/main/resources/mapper/DeviceMapper.xml b/screen-job/src/main/resources/mapper/DeviceMapper.xml
index 493dc7b..7831eb5 100644
--- a/screen-job/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-job/src/main/resources/mapper/DeviceMapper.xml
@@ -2,28 +2,28 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.DeviceMapper">
- <!-- ������������������������ -->
- <resultMap id="BaseResultMap" type="com.moral.api.entity.Device">
- <id column="id" property="id" />
- <result column="name" property="name" />
- <result column="mac" property="mac" />
- <result column="address" property="address" />
- <result column="longitude" property="longitude" />
- <result column="latitude" property="latitude" />
- <result column="state" property="state" />
- <result column="operate_ids" property="operateIds" />
- <result column="monitor_point_id" property="monitorPointId" />
- <result column="organization_id" property="organizationId" />
- <result column="device_version_id" property="deviceVersionId" />
- <result column="profession" property="profession" />
- <result column="tech" property="tech" />
- <result column="detector" property="detector" />
- <result column="purchaser" property="purchaser" />
- <result column="create_time" property="createTime" />
- <result column="update_time" property="updateTime" />
- <result column="install_time" property="installTime" />
- <result column="is_delete" property="isDelete" />
- <result column="extend" property="extend" />
- </resultMap>
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.Device">
+ <id column="id" property="id"/>
+ <result column="name" property="name"/>
+ <result column="mac" property="mac"/>
+ <result column="address" property="address"/>
+ <result column="longitude" property="longitude"/>
+ <result column="latitude" property="latitude"/>
+ <result column="state" property="state"/>
+ <result column="operate_ids" property="operateIds"/>
+ <result column="monitor_point_id" property="monitorPointId"/>
+ <result column="organization_id" property="organizationId"/>
+ <result column="device_version_id" property="deviceVersionId"/>
+ <result column="profession" property="profession"/>
+ <result column="tech" property="tech"/>
+ <result column="detector" property="detector"/>
+ <result column="purchaser" property="purchaser"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="install_time" property="installTime"/>
+ <result column="is_delete" property="isDelete"/>
+ <result column="extend" property="extend"/>
+ </resultMap>
</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/HistoryAqiMapper.xml b/screen-job/src/main/resources/mapper/HistoryAqiMapper.xml
index 24658a1..989a8f5 100644
--- a/screen-job/src/main/resources/mapper/HistoryAqiMapper.xml
+++ b/screen-job/src/main/resources/mapper/HistoryAqiMapper.xml
@@ -2,11 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.HistoryAqiMapper">
- <!-- ������������������������ -->
- <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryAqi">
- <result column="city_code" property="cityCode" />
- <result column="time" property="time" />
- <result column="value" property="value" />
- </resultMap>
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryAqi">
+ <result column="city_code" property="cityCode"/>
+ <result column="time" property="time"/>
+ <result column="value" property="value"/>
+ </resultMap>
</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml b/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml
index 90af3f8..f80edaf 100644
--- a/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml
+++ b/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -10,4 +10,23 @@
<result column="version" property="version"/>
</resultMap>
+ <insert id="insertHistoryHourly">
+ INSERT INTO history_hourly VALUES
+ <foreach collection="list" item="item" separator=",">
+ (#{item.mac}, #{item.time}, #{item.value}, #{item.version})
+ </foreach>
+ </insert>
+
+ <select id="getHistoryHourlyTransition" resultType="com.moral.api.entity.HistoryHourly">
+ SELECT mac,
+ `time`,
+ `value`,
+ `version`
+ FROM history_hourly_transition
+ WHERE create_time = update_time
+ </select>
+
+ <delete id="deleteHistoryHourlyTransition">
+ DELETE FROM history_hourly_transition
+ </delete>
</mapper>
\ No newline at end of file
diff --git a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
index bb495c8..a373700 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
@@ -108,6 +108,9 @@
@ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
@ApiImplicitParam(name = "name", value = "������������������������", required = false, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "mac", value = "mac������������", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "organizationId", value = "������������������", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "monitorPointId", value = "������id", required = false, paramType = "query", dataType = "String")
+
})
@RequestMapping(value = "select", method = RequestMethod.GET)
public ResultMessage select(HttpServletRequest request) {
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
index 46898e3..793721b 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
@@ -1,9 +1,12 @@
package com.moral.api.mapper;
+import org.apache.ibatis.annotations.Param;
+
import java.util.Map;
import com.moral.api.entity.HistoryHourly;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
/**
* <p>
@@ -17,4 +20,9 @@
void insertHistoryHourlyUnAdjust(Map<String, Object> params);
+ int getCountByMacAndTime(@Param("mac") String mac, @Param("time") String time);
+
+ void insertHistoryHourlyTransition(Map<String, Object> params);
+
+ void updateHistoryTransition(@Param("mac") String mac, @Param("time") String time);
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
index f21db4c..ba88b76 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
@@ -39,10 +39,10 @@
public void insertHistoryHourly(Map<String, Object> data) {
Map<String, Object> dataAdjust = new HashMap<>(data);
String mac = data.remove("mac").toString();
- Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
+ Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
Integer version = (Integer) data.remove("ver");
- Map<String, Object> result = new HashMap<>(data);
+ Map<String, Object> result = new HashMap<>();
result.put("mac", mac);
result.put("time", time);
result.put("version", version);
@@ -56,11 +56,18 @@
dataAdjust.remove("mac");
dataAdjust.remove("DataTime");
dataAdjust.remove("ver");
- HistoryHourly historyHourly = new HistoryHourly();
- historyHourly.setMac(mac);
- historyHourly.setTime(time);
- historyHourly.setVersion(version);
- historyHourly.setValue(JSONObject.toJSONString(dataAdjust));
- historyHourlyMapper.insert(historyHourly);
+
+ int count = historyHourlyMapper.getCountByMacAndTime(mac, DateUtils.dateToDateString(time));
+
+ //���������������������������mac,���������������������������������������������������
+ if (count == 0) {
+ //������������������������������������������
+ result.put("value", JSONObject.toJSONString(dataAdjust));
+ //������
+ historyHourlyMapper.insertHistoryHourlyTransition(result);
+ } else {
+ //������
+ historyHourlyMapper.updateHistoryTransition(mac, DateUtils.dateToDateString(time));
+ }
}
}
diff --git a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
index fe4e63a..ed7bf99 100644
--- a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
+++ b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java
@@ -20,7 +20,12 @@
@Slf4j
@Component
public class AdjustDataUtils {
- //���������������
+ /**
+ * @param deviceData ������������
+ * @param adjustFormula ������������
+ * @param aqiMap ���������������������������������aqi������
+ * @return Map<String, Object> ���������������
+ * */
public Map<String, Object> adjust(Map<String, Object> deviceData, Map<String, Object> adjustFormula, Map<String, Object> aqiMap) {
try {
Date time = DateUtils.getDate((String) deviceData.get("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
diff --git a/screen-manage/src/main/resources/mapper/HistoryHourlyMapper.xml b/screen-manage/src/main/resources/mapper/HistoryHourlyMapper.xml
index a2dde7f..104b6bf 100644
--- a/screen-manage/src/main/resources/mapper/HistoryHourlyMapper.xml
+++ b/screen-manage/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -14,4 +14,15 @@
INSERT INTO history_hourly_${timeUnits} VALUES (#{mac}, #{time}, #{value}, #{version})
</insert>
+ <select id="getCountByMacAndTime" resultType="java.lang.Integer">
+ SELECT count(1) FROM history_hourly_transition WHERE mac = #{mac} AND `time` = #{time}
+ </select>
+
+ <insert id="insertHistoryHourlyTransition">
+ INSERT INTO history_hourly_transition (mac, `time`, `value`, version) VALUES (#{mac}, #{time}, #{value}, #{version})
+ </insert>
+
+ <update id="updateHistoryTransition">
+ UPDATE history_hourly_transition SET update_time = now() WHERE mac = #{mac} AND `time` = {time}
+ </update>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0