diff --git a/pom.xml b/pom.xml
index 328bb8d..143ed41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,108 +3,114 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
- com.xydl
- mqtt
- 1.0.0
-
org.springframework.boot
spring-boot-starter-parent
- 2.6.1
-
+ 2.7.17
+
-
+ com.xydl
+ mqtt
+ 1.0.0
- 1.8
- 8
- 8
+ 8
UTF-8
-
-
- com.auth0
- java-jwt
- 3.4.0
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
-
org.springframework.boot
spring-boot-starter-web
-
org.springframework.boot
spring-boot-starter-test
test
-
-
-
- org.eclipse.paho
- org.eclipse.paho.client.mqttv3
- 1.2.1
-
-
+
+ io.springfox
+ springfox-boot-starter
+ 3.0.0
+
+
+ org.projectlombok
+ lombok
+ 1.18.24
+ provided
+
com.mysql
mysql-connector-j
8.0.33
-
-
-
- com.alibaba
- fastjson
- 1.2.31_noneautotype
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
- 3.0.0
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.20
-
-
- com.baomidou
- mybatis-plus-boot-starter
- 3.5.0
+ org.apache.commons
+ commons-lang3
+ 3.14.0
-
-
-
- com.alibaba
- druid-spring-boot-starter
- 1.2.9
+ javax.validation
+ validation-api
+ 2.0.1.Final
+
+
- org.projectlombok
- lombok
+ org.eclipse.paho
+ org.eclipse.paho.client.mqttv3
+ 1.2.1
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.0
+
-
-
-
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
+
+
+ src/main/java
+
+ **/*
+
+
+
+ src/main/resources
+
+ **/*
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
\ No newline at end of file
diff --git a/sql/init.sql b/sql/init.sql
index a6c80c9..0703f78 100644
--- a/sql/init.sql
+++ b/sql/init.sql
@@ -17,16 +17,16 @@ CREATE TABLE `sync_tables_info` (
-- Records of sync_tables_info
-- ----------------------------
-INSERT INTO `sync_tables_info` VALUES (10, 'data_eaif_h', 'SELECT t2.equipmentid , t2.sensorid, DATE_FORMAT(t1.capturetime, ''%Y-%m-%d %H:%i:%s'') as capturetime,t1.maxtemp,t1.mintemp,t1.avgtemp,t2.`Phase` FROM `data_eaif_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.capturetime>%%KEYVALUE%% ORDER BY t1.capturetime LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-11 16:17:33');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_eia_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.d_ct_1, t2.phase FROM `data_eia_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-11 16:17:38');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_epa_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time,t1.h2ppm,t1.ch4ppm,t1.c2h6ppm,t1.c2h4ppm,t1.c2h2ppm,t1.coppm,t1.co2ppm,t1.o2ppm,t1.n2ppm,t1.totalhydrocarbon,t1.gaspress,t1.h2oppm,t2.`Phase` FROM `data_epa_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:19:56');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_etp_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time,t1.t1 FROM `data_etp_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:19:33');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_microclimate_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.envtmp, t1.envpres, t1.envhum, t1.rnfll, t2.phase FROM `data_microclimate_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:40:54');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_moa_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.pt1, t1.lc1, t1.rc1, t1.ligcnt1, t1.lastligtm1, t2.phase FROM `data_moa_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:43:47');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_pd_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.waveform, t1.plsnum, t1.apppadsch, t2.phase FROM `data_pd_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:40:29');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_scur_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.current_val, t2.phase FROM `data_scur_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:44:23');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_sf6env_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.gas1, t1.yq1, t1.md1, t1.pm1, t1.gascnt1, t1.hmcnt1,t1.sf6warn1, t1.o2warn1,t2.phase FROM `data_sf6env_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:42:33');
-INSERT INTO `sync_tables_info` VALUES (10, 'data_sf6_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.temp1, t1.md1, t1.pressure1+900, t1.pressure1, t1.pm1, t2.phase FROM `data_sf6_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-13 09:42:12');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_eaif_h', 'SELECT t2.equipmentid , t2.sensorid, DATE_FORMAT(t1.capturetime, ''%Y-%m-%d %H:%i:%s'') as capturetime,t1.maxtemp,t1.mintemp,t1.avgtemp,t2.`Phase` FROM `data_eaif_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.capturetime>%%KEYVALUE%% ORDER BY t1.capturetime LIMIT 1000', 'eqmid', 'sensorid', 'capturetime', 3, '2023-12-11 16:17:33');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_eia_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.d_ct_1, t2.phase FROM `data_eia_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-11 16:17:38');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_epa_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time,t1.h2ppm,t1.ch4ppm,t1.c2h6ppm,t1.c2h4ppm,t1.c2h2ppm,t1.coppm,t1.co2ppm,t1.o2ppm,t1.n2ppm,t1.totalhydrocarbon,t1.gaspress,t1.h2oppm,t2.`Phase` FROM `data_epa_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:19:56');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_etp_h', 'SELECT t2.equipmentid, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time,t1.t1 FROM `data_etp_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:19:33');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_microclimate_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.envtmp, t1.envpres, t1.envhum, t1.rnfll, t2.phase FROM `data_microclimate_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:40:54');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_moa_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.pt1, t1.lc1, t1.rc1, t1.ligcnt1, t1.lastligtm1, t2.phase FROM `data_moa_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:43:47');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_pd_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.waveform, t1.plsnum, t1.apppadsch, t2.phase FROM `data_pd_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:40:29');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_scur_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.current_val, t2.phase FROM `data_scur_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:44:23');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_sf6env_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.gas1, t1.yq1, t1.md1, t1.pm1, t1.gascnt1, t1.hmcnt1,t1.sf6warn1, t1.o2warn1,t2.phase FROM `data_sf6env_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:42:33');
+INSERT INTO `sync_tables_info` VALUES (10, 'data_sf6_h', 'SELECT t2.equipmentid AS SubDeviceID, t2.sensorid, DATE_FORMAT(t1.d_time, ''%Y-%m-%d %H:%i:%s'') as d_time, t1.temp1, t1.md1, t1.pressure1+900, t1.pressure1, t1.pm1, t2.phase FROM `data_sf6_h` AS t1 JOIN i2relation AS t2 ON t1.eqmid=t2.eqmid WHERE t1.eqmid=%%DEVID%% AND t1.d_time>%%KEYVALUE%% ORDER BY t1.d_time LIMIT 1000', 'eqmid', 'sensorid', 'd_time', 3, '2023-12-13 09:42:12');
CREATE TABLE `sync_fields_info` (
diff --git a/src/main/java/com/xydl/MqttApplication.java b/src/main/java/com/xydl/MqttApplication.java
index ac70c6e..b3c7526 100644
--- a/src/main/java/com/xydl/MqttApplication.java
+++ b/src/main/java/com/xydl/MqttApplication.java
@@ -1,24 +1,20 @@
package com.xydl;
-import com.xydl.service.impl.MqttServiceImpl;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Timer;
-import java.util.TimerTask;
+@EnableSwagger2
@EnableScheduling
@MapperScan(basePackages = "com.xydl.mapper")
-@SpringBootApplication//标识该类为主程序启动类
+@SpringBootApplication
public class MqttApplication {
- //主程序启动方法
+
public static void main(String[] args) {
- SpringApplication.run(MqttApplication.class,args);
+ SpringApplication.run(MqttApplication.class, args);
}
-
}
diff --git a/src/main/java/com/xydl/entity/I2relation.java b/src/main/java/com/xydl/entity/I2relation.java
new file mode 100644
index 0000000..5adb2ca
--- /dev/null
+++ b/src/main/java/com/xydl/entity/I2relation.java
@@ -0,0 +1,45 @@
+package com.xydl.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "i2relation")
+@ApiModel("i2relation表")
+public class I2relation {
+
+ @Id
+ @Column(name = "sensorid")
+ private String sensorid;
+
+ @Column(name = "eqmid")
+ private Integer eqmid;
+
+ @Column(name = "cacid")
+ private String cacid;
+
+ @Column(name = "equipmentid")
+ private String equipmentid;
+
+ @Column(name = "monitortype")
+ private String monitortype;
+
+ @Column(name = "phase")
+ private String phase;
+
+ @Column(name = "sensorindex")
+ private Integer sensorindex;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/entity/SyncFieldsInfo.java b/src/main/java/com/xydl/entity/SyncFieldsInfo.java
new file mode 100644
index 0000000..87fdae0
--- /dev/null
+++ b/src/main/java/com/xydl/entity/SyncFieldsInfo.java
@@ -0,0 +1,43 @@
+package com.xydl.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "sync_fields_info")
+@ApiModel("sync_fields_info表")
+public class SyncFieldsInfo {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "id")
+ private Integer id;
+
+ @Column(name = "client_id")
+ private Integer clientId;
+
+ @Column(name = "table_name")
+ private String tableName;
+
+ @Column(name = "field_name")
+ private String fieldName;
+
+ @Column(name = "field_type")
+ private Byte fieldType;
+
+ @Column(name = "dest_field_name")
+ private String destFieldName;
+
+ @Column(name = "sensorindex")
+ private Integer sensorindex;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/entity/SyncRecords.java b/src/main/java/com/xydl/entity/SyncRecords.java
new file mode 100644
index 0000000..3499ee3
--- /dev/null
+++ b/src/main/java/com/xydl/entity/SyncRecords.java
@@ -0,0 +1,33 @@
+package com.xydl.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "sync_records")
+@ApiModel("sync_records表")
+public class SyncRecords {
+
+ @EmbeddedId
+ private SyncRecordsKey id;
+
+ @Column(name = "field_val1")
+ private Long fieldVal1;
+
+ @Column(name = "field_val2")
+ private Date fieldVal2;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/entity/SyncRecordsKey.java b/src/main/java/com/xydl/entity/SyncRecordsKey.java
new file mode 100644
index 0000000..c5c9b5b
--- /dev/null
+++ b/src/main/java/com/xydl/entity/SyncRecordsKey.java
@@ -0,0 +1,31 @@
+package com.xydl.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Embeddable
+public class SyncRecordsKey implements Serializable {
+
+
+ @Column(name = "client_id")
+ private Integer clientId;
+
+ @Column(name = "table_name")
+ private String tableName;
+
+
+ @Column(name = "devid_val")
+ private String devidVal;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/entity/SyncTablesInfo.java b/src/main/java/com/xydl/entity/SyncTablesInfo.java
new file mode 100644
index 0000000..4587c52
--- /dev/null
+++ b/src/main/java/com/xydl/entity/SyncTablesInfo.java
@@ -0,0 +1,42 @@
+package com.xydl.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "sync_tables_info")
+@ApiModel("sync_tables_info表")
+public class SyncTablesInfo {
+
+ @EmbeddedId
+ private SyncTablesInfoKey id;
+
+ @Column(name = "sql")
+ private String sql;
+
+ @Column(name = "devid_field_name")
+ private String devidFieldName;
+
+ @Column(name = "outer_devid_fname")
+ private String outerDevidFname;
+
+ @Column(name = "field_name")
+ private String fieldName;
+
+ @Column(name = "field_type")
+ private Byte fieldType;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/entity/SyncTablesInfoKey.java b/src/main/java/com/xydl/entity/SyncTablesInfoKey.java
new file mode 100644
index 0000000..f3695f8
--- /dev/null
+++ b/src/main/java/com/xydl/entity/SyncTablesInfoKey.java
@@ -0,0 +1,28 @@
+package com.xydl.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Embeddable
+public class SyncTablesInfoKey implements Serializable {
+
+
+ @Column(name = "client_id")
+ private Integer clientId;
+
+
+ @Column(name = "table_name")
+ private String tableName;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/model/AssetItem.java b/src/main/java/com/xydl/model/AssetItem.java
new file mode 100644
index 0000000..ce9ad6f
--- /dev/null
+++ b/src/main/java/com/xydl/model/AssetItem.java
@@ -0,0 +1,39 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.xydl.entity.I2relation;
+import com.xydl.entity.SyncFieldsInfo;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AssetItem {
+ @JsonProperty("AssetCode")
+ String assetCode;
+ @JsonProperty("AttributeList")
+ List attributeList;
+ @JsonProperty("Timestamp")
+ Long timestamp;
+
+ public static AssetItem fromData(Map map, String timeField,
+ I2relation relation, List fieldList) {
+ AssetItem root = new AssetItem();
+ root.setAssetCode(relation.getSensorid());
+ List list = new ArrayList<>();
+ for (SyncFieldsInfo field : fieldList) {
+ if (relation.getSensorindex().equals(field.getSensorindex())) {
+ AttributeItem item = AttributeItem.fromData(map, field);
+ list.add(item);
+ }
+ }
+ root.setAttributeList(list);
+ LocalDateTime time = (LocalDateTime) map.get(timeField);
+ root.setTimestamp(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
+ return root;
+ }
+}
diff --git a/src/main/java/com/xydl/model/AssetList.java b/src/main/java/com/xydl/model/AssetList.java
new file mode 100644
index 0000000..073f8e0
--- /dev/null
+++ b/src/main/java/com/xydl/model/AssetList.java
@@ -0,0 +1,33 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.xydl.entity.I2relation;
+import com.xydl.entity.SyncFieldsInfo;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class AssetList {
+ @JsonProperty("AssetList")
+ List assetList;
+
+ public static AssetList fromData(List