diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..905408c
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,113 @@
+
+
+ 4.0.0
+
+ com.xydl
+ mqtt
+ 1.0-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.6.1
+
+
+
+
+ 1.8
+ 8
+ 8
+ UTF-8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ org.eclipse.paho
+ org.eclipse.paho.client.mqttv3
+ 1.2.1
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.28
+
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.31_noneautotype
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.0.0
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.4.2
+
+
+
+
+ com.alibaba
+ druid
+ 1.1.10
+
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.9
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.8
+ 1.8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/xydl/MqttApplication.java b/src/main/java/com/xydl/MqttApplication.java
new file mode 100644
index 0000000..5831936
--- /dev/null
+++ b/src/main/java/com/xydl/MqttApplication.java
@@ -0,0 +1,18 @@
+package com.xydl;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@EnableScheduling
+@MapperScan(basePackages = "com.xydl.mapper")
+@SpringBootApplication//标识该类为主程序启动类
+public class MqttApplication {
+ //主程序启动方法
+ public static void main(String[] args) {
+ SpringApplication.run(MqttApplication.class,args);
+ }
+
+
+}
diff --git a/src/main/java/com/xydl/config/DruidConfig.java b/src/main/java/com/xydl/config/DruidConfig.java
new file mode 100644
index 0000000..f7e14f6
--- /dev/null
+++ b/src/main/java/com/xydl/config/DruidConfig.java
@@ -0,0 +1,15 @@
+package com.xydl.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class DruidConfig {
+ @ConfigurationProperties(prefix = "spring.datasource")
+ @Bean
+ public DruidDataSource getDurid(){
+ return new DruidDataSource();
+ }
+}
diff --git a/src/main/java/com/xydl/config/MyBatisConfig.java b/src/main/java/com/xydl/config/MyBatisConfig.java
new file mode 100644
index 0000000..09be1fb
--- /dev/null
+++ b/src/main/java/com/xydl/config/MyBatisConfig.java
@@ -0,0 +1,20 @@
+package com.xydl.config;
+
+
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MyBatisConfig {
+
+ public ConfigurationCustomizer configurationCustomizer(){
+ return new ConfigurationCustomizer() {
+ @Override
+ public void customize(MybatisConfiguration configuration) {
+ //下划线与驼峰命名进行自动映射
+ configuration.setMapUnderscoreToCamelCase(true);
+ }
+ };
+ }
+}
diff --git a/src/main/java/com/xydl/controller/JDBCController.java b/src/main/java/com/xydl/controller/JDBCController.java
new file mode 100644
index 0000000..6e4573f
--- /dev/null
+++ b/src/main/java/com/xydl/controller/JDBCController.java
@@ -0,0 +1,44 @@
+package com.xydl.controller;
+
+import com.xydl.util.DataSourceUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.sql.DataSource;
+import java.sql.*;
+
+
+@RestController
+public class JDBCController {
+ private static final Logger logger = LoggerFactory.getLogger(DataSourceUtils.class);
+
+
+ @RequestMapping("/data")
+ public void getData() {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "insert into pop_id(node_id,id) values(?,?)";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1, "");
+ pstmt.setInt(2, 100);
+ pstmt.executeUpdate();
+ } catch (Exception e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(pstmt, conn);
+ }
+ }
+
+
+
+
+
+}
+
+
+
+
diff --git a/src/main/java/com/xydl/controller/TestController.java b/src/main/java/com/xydl/controller/TestController.java
new file mode 100644
index 0000000..2114835
--- /dev/null
+++ b/src/main/java/com/xydl/controller/TestController.java
@@ -0,0 +1,26 @@
+package com.xydl.controller;
+
+
+import com.xydl.model.Eia;
+import com.xydl.service.EiaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+@Controller
+public class TestController {
+
+ @Autowired
+ private EiaService eiaService;
+
+ @RequestMapping("/eia")
+ @ResponseBody
+ public List eia() {
+ System.out.println("get eia");
+ return eiaService.getEia();
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/xydl/mapper/EaifMapper.java b/src/main/java/com/xydl/mapper/EaifMapper.java
new file mode 100644
index 0000000..ad6b59f
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/EaifMapper.java
@@ -0,0 +1,21 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Eaif;
+import com.xydl.model.Epa;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface EaifMapper {
+
+
+ //红外测温
+ List getEaif();
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/EiaMapper.java b/src/main/java/com/xydl/mapper/EiaMapper.java
new file mode 100644
index 0000000..a51bfda
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/EiaMapper.java
@@ -0,0 +1,21 @@
+package com.xydl.mapper;
+
+import com.xydl.model.Eia;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface EiaMapper {
+
+
+ //铁芯、夹件、电容性设备
+ List getEia();
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/EpaMapper.java b/src/main/java/com/xydl/mapper/EpaMapper.java
new file mode 100644
index 0000000..ad27a16
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/EpaMapper.java
@@ -0,0 +1,34 @@
+package com.xydl.mapper;
+
+import com.xydl.model.Epa;
+import com.xydl.model.SuperModel;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface EpaMapper {
+
+
+ //油色谱
+ List getEpa(int devid);
+
+ List getData(String sql);
+
+ List getEqmidsByTableName(String tableName);
+
+ List getTableNamesBySyncTable(String syncTable);
+
+ String getSqlBySyncTable(String syncTable, String tableName);
+
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/EtpMapper.java b/src/main/java/com/xydl/mapper/EtpMapper.java
new file mode 100644
index 0000000..62909c7
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/EtpMapper.java
@@ -0,0 +1,21 @@
+package com.xydl.mapper;
+
+import com.xydl.model.Etp;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface EtpMapper {
+
+
+ //绕组测温
+ List getEtp();
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/MicMapper.java b/src/main/java/com/xydl/mapper/MicMapper.java
new file mode 100644
index 0000000..232c068
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/MicMapper.java
@@ -0,0 +1,24 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Epa;
+import com.xydl.model.Microclimate;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface MicMapper {
+
+
+
+ //微气象
+ List getMicroclimate();
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/MoaMapper.java b/src/main/java/com/xydl/mapper/MoaMapper.java
new file mode 100644
index 0000000..06e3bbe
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/MoaMapper.java
@@ -0,0 +1,24 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Epa;
+import com.xydl.model.Moa;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface MoaMapper {
+
+
+
+ //绝缘监测-金属氧化物
+ List getMoa();
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/PdMapper.java b/src/main/java/com/xydl/mapper/PdMapper.java
new file mode 100644
index 0000000..fccc8f0
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/PdMapper.java
@@ -0,0 +1,25 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Epa;
+import com.xydl.model.Pd;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface PdMapper {
+
+
+
+ //局放监测
+ List getPd();
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/RptTemperMapper.java b/src/main/java/com/xydl/mapper/RptTemperMapper.java
new file mode 100644
index 0000000..148ecc3
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/RptTemperMapper.java
@@ -0,0 +1,24 @@
+package com.xydl.mapper;
+
+import com.xydl.model.Eia;
+import com.xydl.model.Epa;
+import com.xydl.model.Etp;
+import com.xydl.model.RptTemper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface RptTemperMapper {
+
+
+
+ //测温点
+ List getRptTemper();
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/ScurMapper.java b/src/main/java/com/xydl/mapper/ScurMapper.java
new file mode 100644
index 0000000..c437371
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/ScurMapper.java
@@ -0,0 +1,25 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Epa;
+import com.xydl.model.Scur;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface ScurMapper {
+
+
+
+ //电缆环流
+ List getScur();
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/Sf6Mapper.java b/src/main/java/com/xydl/mapper/Sf6Mapper.java
new file mode 100644
index 0000000..53c497f
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/Sf6Mapper.java
@@ -0,0 +1,22 @@
+package com.xydl.mapper;
+
+import com.xydl.model.Epa;
+import com.xydl.model.Sf6;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface Sf6Mapper {
+
+
+ //SF6监测
+ List getSf6();
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/mapper/Sf6envMapper.java b/src/main/java/com/xydl/mapper/Sf6envMapper.java
new file mode 100644
index 0000000..22fb0f0
--- /dev/null
+++ b/src/main/java/com/xydl/mapper/Sf6envMapper.java
@@ -0,0 +1,22 @@
+package com.xydl.mapper;
+
+
+import com.xydl.model.Epa;
+import com.xydl.model.Sf6env;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface Sf6envMapper {
+
+
+ //SF6环境
+ List getSf6env();
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/model/Eaif.java b/src/main/java/com/xydl/model/Eaif.java
new file mode 100644
index 0000000..2905b27
--- /dev/null
+++ b/src/main/java/com/xydl/model/Eaif.java
@@ -0,0 +1,30 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Eaif {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String captureTime;
+
+ @JsonProperty("MaxTmp")
+ private double maxTemp;
+
+ @JsonProperty("MinTmp")
+ private double minTemp;
+
+ @JsonProperty("AvgTmp")
+ private double avgTemp;
+
+}
diff --git a/src/main/java/com/xydl/model/Eia.java b/src/main/java/com/xydl/model/Eia.java
new file mode 100644
index 0000000..ba7ab65
--- /dev/null
+++ b/src/main/java/com/xydl/model/Eia.java
@@ -0,0 +1,33 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Eia {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String captureTime;
+
+ @JsonProperty("MaxTmp")
+ private String maxTemp;
+
+ @JsonProperty("MinTmp")
+ private String minTemp;
+
+ @JsonProperty("AvgTmp")
+ private String avgTemp;
+
+ @JsonProperty("Phase")
+ private String phase;
+
+
+}
diff --git a/src/main/java/com/xydl/model/Epa.java b/src/main/java/com/xydl/model/Epa.java
new file mode 100644
index 0000000..d28fb7b
--- /dev/null
+++ b/src/main/java/com/xydl/model/Epa.java
@@ -0,0 +1,65 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
+
+import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/*
+油色谱
+ */
+@Data
+public class Epa {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime ;
+
+ @JsonProperty("H2")
+ private double h2ppm;
+
+ @JsonProperty("CH4")
+ private double ch4ppm;
+
+ @JsonProperty("C2H6")
+ private double c2h6ppm;
+
+ @JsonProperty("C2H4")
+ private double c2h4ppm;
+
+ @JsonProperty("C2H2")
+ private double c2h2ppm;
+
+ @JsonProperty("CO")
+ private double coppm;
+
+ @JsonProperty("CO2")
+ private double co2ppm;
+
+ @JsonProperty("O2")
+ private double o2ppm;
+
+ @JsonProperty("N2")
+ private double n2ppm;
+
+ @JsonProperty("TotalHydrocarbon")
+ private double totalHydroCarbon;
+
+ @JsonProperty("GasPress")
+ private double gaspress;
+
+ @JsonProperty("H2O")
+ private double h2oppm;
+
+ @JsonProperty("Phase")
+ private String phase;
+
+}
diff --git a/src/main/java/com/xydl/model/Etp.java b/src/main/java/com/xydl/model/Etp.java
new file mode 100644
index 0000000..bc51eaa
--- /dev/null
+++ b/src/main/java/com/xydl/model/Etp.java
@@ -0,0 +1,33 @@
+package com.xydl.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Etp {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("MaxTmp")
+ private double t1;
+
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/model/Microclimate.java b/src/main/java/com/xydl/model/Microclimate.java
new file mode 100644
index 0000000..33762d3
--- /dev/null
+++ b/src/main/java/com/xydl/model/Microclimate.java
@@ -0,0 +1,42 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Microclimate {
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("AirTemperature")
+ private double envTmp;
+
+ @JsonProperty("AirPressure")
+ private double envPres;
+
+ @JsonProperty("Humidity")
+ private double envHum;
+
+ @JsonProperty("Precipitation")
+ private double rnfll;
+
+ @JsonProperty("PrecipitationIntensity")
+ private double PreciInten = 0;
+
+ @JsonProperty("RadiationIntensity")
+ private double radiInten = 0;
+
+
+
+
+
+}
diff --git a/src/main/java/com/xydl/model/Moa.java b/src/main/java/com/xydl/model/Moa.java
new file mode 100644
index 0000000..65a939d
--- /dev/null
+++ b/src/main/java/com/xydl/model/Moa.java
@@ -0,0 +1,36 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Moa {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String captureTime;
+
+ @JsonProperty("SystemVoltage")
+ private double pt1;
+
+ @JsonProperty("TotalCurrent")
+ private double lc1;
+
+ @JsonProperty("ResistiveCurrent")
+ private double rc1;
+
+ @JsonProperty("ActionCount")
+ private double ligcnt1;
+
+ @JsonProperty("LastActionTime")
+ private String lastligtm1;
+
+}
diff --git a/src/main/java/com/xydl/model/Pd.java b/src/main/java/com/xydl/model/Pd.java
new file mode 100644
index 0000000..f5b9450
--- /dev/null
+++ b/src/main/java/com/xydl/model/Pd.java
@@ -0,0 +1,30 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Pd {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("DischargeCapacity")
+ private double waveForm;
+
+ @JsonProperty("DischargePosition")
+ private double apppadsch;
+
+ @JsonProperty("PulseCount")
+ private double plsNum;
+
+}
diff --git a/src/main/java/com/xydl/model/RptTemper.java b/src/main/java/com/xydl/model/RptTemper.java
new file mode 100644
index 0000000..aefe16f
--- /dev/null
+++ b/src/main/java/com/xydl/model/RptTemper.java
@@ -0,0 +1,42 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class RptTemper {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String createTime;
+
+ @JsonProperty("OlTmpA")
+ private double aoTemper;
+
+ @JsonProperty("OlTmpB")
+ private double boTemper;
+
+ @JsonProperty("OlTmpC")
+ private double coTemper;
+
+ @JsonProperty("IlTmpA")
+ private double aiTemper;
+
+ @JsonProperty("IlTmpB")
+ private double biTemper;
+
+ @JsonProperty("IlTmpC")
+ private double ciTemper;
+
+ @JsonProperty("OntologyTmp")
+ private double boxTemper;
+
+
+}
diff --git a/src/main/java/com/xydl/model/Scur.java b/src/main/java/com/xydl/model/Scur.java
new file mode 100644
index 0000000..bf38181
--- /dev/null
+++ b/src/main/java/com/xydl/model/Scur.java
@@ -0,0 +1,22 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Scur {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("CoreCurrent")
+ private double currentVal;
+}
diff --git a/src/main/java/com/xydl/model/Sf6.java b/src/main/java/com/xydl/model/Sf6.java
new file mode 100644
index 0000000..ffda062
--- /dev/null
+++ b/src/main/java/com/xydl/model/Sf6.java
@@ -0,0 +1,35 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Sf6 {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("Temperature")
+ private double temp1;
+
+ @JsonProperty("Pressure20C")
+ private double pressure1;
+
+ @JsonProperty("AbsolutePressure")
+ private double AbsolutePressure = pressure1 + 900;
+
+ @JsonProperty("Density")
+ private double md1;
+
+ @JsonProperty("Moisture")
+ private double pm1;
+
+}
diff --git a/src/main/java/com/xydl/model/Sf6env.java b/src/main/java/com/xydl/model/Sf6env.java
new file mode 100644
index 0000000..d6ff49d
--- /dev/null
+++ b/src/main/java/com/xydl/model/Sf6env.java
@@ -0,0 +1,43 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.Date;
+
+@Data
+public class Sf6env {
+
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime;
+
+ @JsonProperty("gas1")
+ private double gas1;
+
+ @JsonProperty("yq1")
+ private double yq1;
+
+ @JsonProperty("md1")
+ private double md1;
+
+ @JsonProperty("pm1")
+ private double pm1;
+
+ @JsonProperty("gascnt1")
+ private double gascnt1;
+
+ @JsonProperty("hmcnt1")
+ private double hmcnt1;
+
+ @JsonProperty("sf6warn1")
+ private double sf6warn1;
+
+ @JsonProperty("o2warn1")
+ private double o2warn1;
+}
diff --git a/src/main/java/com/xydl/model/SuperModel.java b/src/main/java/com/xydl/model/SuperModel.java
new file mode 100644
index 0000000..5eac7c3
--- /dev/null
+++ b/src/main/java/com/xydl/model/SuperModel.java
@@ -0,0 +1,231 @@
+package com.xydl.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class SuperModel {
+
+ /**
+ * EPA
+ */
+ @JsonProperty("SubDeviceID")
+ private String subDeviceID;
+
+ @JsonProperty("SensorCode")
+ private String sensorId;
+
+ @JsonProperty("AcquisitionTime")
+ private String dTime ;
+
+ @JsonProperty("H2")
+ private double h2ppm;
+
+ @JsonProperty("CH4")
+ private double ch4ppm;
+
+ @JsonProperty("C2H6")
+ private double c2h6ppm;
+
+ @JsonProperty("C2H4")
+ private double c2h4ppm;
+
+ @JsonProperty("C2H2")
+ private double c2h2ppm;
+
+ @JsonProperty("CO")
+ private double coppm;
+
+ @JsonProperty("CO2")
+ private double co2ppm;
+
+ @JsonProperty("O2")
+ private double o2ppm;
+
+ @JsonProperty("N2")
+ private double n2ppm;
+
+ @JsonProperty("TotalHydrocarbon")
+ private double totalHydroCarbon;
+
+ @JsonProperty("GasPress")
+ private double gaspress;
+
+ @JsonProperty("H2O")
+ private double h2oppm;
+
+ @JsonProperty("Phase")
+ private String phase;
+
+ /**
+ * Eaif
+ */
+
+// @JsonProperty("AcquisitionTime")
+// private String captureTime;
+
+ @JsonProperty("MaxTmp")
+ private double maxTemp;
+
+ @JsonProperty("MinTmp")
+ private double minTemp;
+
+ @JsonProperty("AvgTmp")
+ private double avgTemp;
+
+ /**
+ * Eia
+ */
+
+ /**
+ * Etp
+ */
+
+
+// @JsonProperty("MaxTmp")
+// private double t1;
+
+
+ /**
+ * Microclimate
+ */
+
+
+ @JsonProperty("AirTemperature")
+ private double envTmp;
+
+ @JsonProperty("AirPressure")
+ private double envPres;
+
+ @JsonProperty("Humidity")
+ private double envHum;
+
+ @JsonProperty("Precipitation")
+ private double rnfll;
+
+ @JsonProperty("PrecipitationIntensity")
+ private double PreciInten = 0;
+
+ @JsonProperty("RadiationIntensity")
+ private double radiInten = 0;
+
+ /**
+ * Moa
+ */
+
+
+ @JsonProperty("SystemVoltage")
+ private double pt1;
+
+ @JsonProperty("TotalCurrent")
+ private double lc1;
+
+ @JsonProperty("ResistiveCurrent")
+ private double rc1;
+
+ @JsonProperty("ActionCount")
+ private double ligcnt1;
+
+ @JsonProperty("LastActionTime")
+ private String lastligtm1;
+
+ /**
+ * Pd
+ */
+
+
+ @JsonProperty("DischargeCapacity")
+ private double waveForm;
+
+ @JsonProperty("DischargePosition")
+ private double apppadsch;
+
+ @JsonProperty("PulseCount")
+ private double plsNum;
+
+ /**
+ * RptTemper
+ */
+
+
+// @JsonProperty("AcquisitionTime")
+// private String createTime;
+
+ @JsonProperty("OlTmpA")
+ private double aoTemper;
+
+ @JsonProperty("OlTmpB")
+ private double boTemper;
+
+ @JsonProperty("OlTmpC")
+ private double coTemper;
+
+ @JsonProperty("IlTmpA")
+ private double aiTemper;
+
+ @JsonProperty("IlTmpB")
+ private double biTemper;
+
+ @JsonProperty("IlTmpC")
+ private double ciTemper;
+
+ @JsonProperty("OntologyTmp")
+ private double boxTemper;
+
+ /**
+ * Scur
+ */
+
+
+ @JsonProperty("CoreCurrent")
+ private double currentVal;
+
+ /**
+ * Sf6
+ */
+
+
+ @JsonProperty("Temperature")
+ private double temp1;
+
+ @JsonProperty("Pressure20C")
+ private double pressure1;
+
+ @JsonProperty("AbsolutePressure")
+ private double AbsolutePressure = pressure1 + 900;
+
+ @JsonProperty("Density")
+ private double md1Sf6;
+
+ @JsonProperty("Moisture")
+ private double pm1Sf6;
+
+
+ /**
+ * Sf6env
+ */
+
+ @JsonProperty("gas1")
+ private double gas1;
+
+ @JsonProperty("yq1")
+ private double yq1;
+
+ @JsonProperty("md1")
+ private double md1;
+
+ @JsonProperty("pm1")
+ private double pm1;
+
+ @JsonProperty("gascnt1")
+ private double gascnt1;
+
+ @JsonProperty("hmcnt1")
+ private double hmcnt1;
+
+ @JsonProperty("sf6warn1")
+ private double sf6warn1;
+
+ @JsonProperty("o2warn1")
+ private double o2warn1;
+
+
+}
diff --git a/src/main/java/com/xydl/service/EiaService.java b/src/main/java/com/xydl/service/EiaService.java
new file mode 100644
index 0000000..efb8f7b
--- /dev/null
+++ b/src/main/java/com/xydl/service/EiaService.java
@@ -0,0 +1,33 @@
+package com.xydl.service;
+
+import com.xydl.model.*;
+
+import java.util.List;
+import java.util.Map;
+
+public interface EiaService {
+
+ List getEaif();
+
+ List getEia();
+
+ void getEpa();
+
+ List getEtp();
+
+ List getMic();
+
+ List getMoa();
+
+ List getPd();
+
+ List getRptTemper();
+
+ List getScur();
+
+ List getSf6();
+
+ List getSf6env();
+
+
+}
diff --git a/src/main/java/com/xydl/service/impl/EiaServiceImpl.java b/src/main/java/com/xydl/service/impl/EiaServiceImpl.java
new file mode 100644
index 0000000..4acda12
--- /dev/null
+++ b/src/main/java/com/xydl/service/impl/EiaServiceImpl.java
@@ -0,0 +1,438 @@
+package com.xydl.service.impl;
+
+
+import com.xydl.mapper.*;
+import com.xydl.model.*;
+import com.xydl.service.EiaService;
+import com.xydl.util.CommonUtils;
+import com.xydl.util.DataSourceUtils;
+import com.xydl.util.FormatUtil;
+import com.xydl.util.MqttUtil;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.sql.*;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.Date;
+
+
+@Service
+public class EiaServiceImpl implements EiaService {
+ private static final Logger logger = LoggerFactory.getLogger(EiaServiceImpl.class);
+
+ private static final String SYNC_TABLE = "sync_tables_info";
+
+ @Autowired
+ private EaifMapper eaifMapper;
+
+ @Autowired
+ private EpaMapper epaMapper;
+
+ @Autowired
+ private EiaMapper eiaMapper;
+
+ @Autowired
+ private EtpMapper etpMapper;
+
+ @Autowired
+ private MicMapper micMapper;
+
+ @Autowired
+ private MoaMapper moaMapper;
+
+ @Autowired
+ private PdMapper pdMapper;
+
+ @Autowired
+ private RptTemperMapper rptTemperMapper;
+
+ @Autowired
+ private ScurMapper scurMapper;
+
+ @Autowired
+ private Sf6Mapper sf6Mapper;
+
+ @Autowired
+ private Sf6envMapper sf6envMapper;
+
+
+ @Override
+ public List getEaif() {
+ return eaifMapper.getEaif();
+//
+ }
+
+ @Override
+ public List getEia() {
+ return eiaMapper.getEia();
+ }
+
+ @Override
+ public void getEpa() {
+ List tableNames = epaMapper.getTableNamesBySyncTable(SYNC_TABLE);
+
+// for(String tableName : tableNames){
+// System.out.println(tableName);
+// List eqmids = epaMapper.getEqmidsByTableName(tableName);
+// for(int eqmid : eqmids){
+// List epas = epaMapper.getEpa(eqmid);
+// String jsonStringEpa = FormatUtil.list2Json(epas);
+// MqttUtil.publish2MQTT(jsonStringEpa);
+// }
+// }
+ for(String tableName : tableNames){
+ String sql = epaMapper.getSqlBySyncTable(SYNC_TABLE,tableName);
+ List eqmids = epaMapper.getEqmidsByTableName(tableName);
+ if(sql.contains("?")){
+ for(int eqmid : eqmids){
+ String newSql = sql.replaceAll("\\?",eqmid+"");
+ List epas = epaMapper.getData(newSql);
+ String jsonStringEpa = FormatUtil.list2Json(epas);
+ MqttUtil.publish2MQTT(jsonStringEpa);
+ }
+ }
+ }
+ }
+
+ @Override
+ public List getEtp() {
+ return etpMapper.getEtp();
+ }
+
+ @Override
+ public List getMic() {
+ return micMapper.getMicroclimate();
+ }
+
+ @Override
+ public List getMoa() {
+ return moaMapper.getMoa();
+ }
+
+ @Override
+ public List getPd() {
+ return pdMapper.getPd();
+ }
+
+ @Override
+ public List getRptTemper() {
+ return rptTemperMapper.getRptTemper();
+ }
+
+ @Override
+ public List getScur() {
+ return scurMapper.getScur();
+ }
+
+ @Override
+ public List getSf6() {
+ return sf6Mapper.getSf6();
+ }
+
+ @Override
+ public List getSf6env() {
+ return sf6envMapper.getSf6env();
+ }
+
+ public List getAllTableName() {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ List tableNames = new ArrayList<>();
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "select DISTINCT table_name from sync_tables_info";
+ pstmt = conn.prepareStatement(sql);
+ rs = pstmt.executeQuery();
+
+ while(rs.next()){
+ tableNames.add(rs.getString("table_name"));
+ }
+ } catch (SQLException e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(rs, pstmt, conn);
+ }
+
+ return tableNames;
+ }
+
+ public Map getFieldMap(String tableName) {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ Map fieldsMap = new HashMap<>();
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "select sync_fields_info.field_name, sync_fields_info.dest_field_name " +
+ "from sync_fields_info,sync_tables_info " +
+ "where sync_fields_info.client_id = 10 and sync_fields_info.table_name = sync_tables_info.table_name and sync_tables_info.table_name=?";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1, tableName);
+ rs = pstmt.executeQuery();
+ ResultSetMetaData metaData = rs.getMetaData();
+
+ while(rs.next()){
+ fieldsMap.put(rs.getString("field_name"),rs.getString("dest_field_name"));
+ }
+ } catch (SQLException e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(rs, pstmt, conn);
+ }
+
+ return fieldsMap;
+ }
+
+ public String getLastRecordTimeSended(String tableName,String deviceId) {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ Timestamp timeStamp = null;
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "select field_val2 from sync_records where table_name =? and devid_val=?";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1, tableName);
+ pstmt.setString(2, deviceId);
+ rs = pstmt.executeQuery();
+ if(rs.next()){
+ timeStamp = rs.getTimestamp("field_val2");
+
+ }
+ } catch (SQLException e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(rs, pstmt, conn);
+ }
+
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timeStamp);
+ }
+
+ public List getDeviceID(String tableName) {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ String sqlExecuting = null ;
+ List deviceIDs = new ArrayList<>();
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "select distinct devid_val from sync_records where table_name =?";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1, tableName);
+ rs = pstmt.executeQuery();
+ while(rs.next()){
+ deviceIDs.add(rs.getString("devid_val"));
+ }
+ } catch (SQLException e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(rs, pstmt, conn);
+ }
+
+ return deviceIDs;
+ }
+
+ public String getSQL(String tableName) {
+ Connection conn = null;
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ String sqlExecuting = null ;
+ try {
+ conn = DataSourceUtils.getConnection();
+ String sql = "select * from sync_tables_info where table_name =?";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1, tableName);
+ rs = pstmt.executeQuery();
+ if(rs.next()){
+ sqlExecuting = rs.getString("sql");
+ }
+ } catch (SQLException e) {
+ logger.error("execute sql exception:", e);
+ } finally {
+ DataSourceUtils.closeResource(rs, pstmt, conn);
+ }
+
+ return sqlExecuting;
+ }
+
+ public List