ソースを参照

[task-1530] 【后端】中大七院冰箱温控数据对接

Li Yuan 2 年 前
コミット
f3007f49a2

+ 33 - 0
exchange/.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 82 - 0
exchange/pom.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.jyxt.thridparty</groupId>
+    <artifactId>exchange</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>exchange</name>
+    <packaging>jar</packaging>
+    <description>exchange project for thrid party</description>
+    <properties>
+        <java.version>1.8</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <spring-boot.version>2.7.6</spring-boot.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.oracle.database.jdbc</groupId>
+            <artifactId>ojdbc8</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <configuration>
+                    <mainClass>com.jyxt.thridparty.exchange.ExchangeApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>repackage</id>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 48 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/ExchangeApplication.java

@@ -0,0 +1,48 @@
+package com.jyxt.thridparty.exchange;
+
+import com.jyxt.thridparty.exchange.bx.VendorBinxiang;
+import com.jyxt.thridparty.exchange.bx.repository.BinxiangRepository;
+import com.jyxt.thridparty.exchange.bx.repository.VendorBinxiangRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import java.util.List;
+
+@SpringBootApplication
+//@EnableScheduling
+public class ExchangeApplication implements CommandLineRunner {
+
+    private static final Logger log = LoggerFactory.getLogger(ExchangeApplication.class);
+
+    @Autowired
+    private VendorBinxiangRepository vendorBinxiangRepository;
+
+    @Autowired
+    private BinxiangRepository binxiangRepository;
+
+    public static void main(String[] args) {
+        SpringApplication.run(ExchangeApplication.class, args);
+
+    }
+
+    @Override
+    public void run(String... args) throws Exception {
+        List<VendorBinxiang> bxs = vendorBinxiangRepository.query();
+        if(bxs != null){
+            for (VendorBinxiang bx : bxs) {
+                try {
+                    binxiangRepository.save(bx);
+                    log.info(String.format("save a new id with: %s",bx.getId()));
+                }catch (Exception ex){
+                    log.error(ex.getMessage());
+                }
+            }
+        }
+
+    }
+}

+ 38 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/ExchangeConfiguration.java

@@ -0,0 +1,38 @@
+package com.jyxt.thridparty.exchange;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.sql.DataSource;
+
+@Configuration
+public class ExchangeConfiguration {
+    @Bean
+    @Primary
+    @ConfigurationProperties(prefix = "spring.datasource")
+    public DataSource primaryDataSource() {
+        return DataSourceBuilder.create().build();
+    }
+
+    @Bean(name = "secondDatasource")
+    @ConfigurationProperties(prefix = "spring.second-datasource")
+    public DataSource secondDataSource() {
+        return DataSourceBuilder.create().build();
+    }
+
+    @Bean
+    @Primary
+    public JdbcTemplate primaryJdbcTemplate(DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+
+    @Bean(name = "secondJdbcTemplate")
+    public JdbcTemplate secondJdbcTemplate(@Qualifier("secondDatasource") DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+}

+ 29 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/ScheduledTasks.java

@@ -0,0 +1,29 @@
+package com.jyxt.thridparty.exchange;
+
+import com.jyxt.thridparty.exchange.bx.VendorBinxiang;
+import com.jyxt.thridparty.exchange.bx.repository.VendorBinxiangRepository;
+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.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+//@Component
+public class ScheduledTasks {
+    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
+
+    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
+    @Autowired
+    private VendorBinxiangRepository vendorBinxiangRepository;
+
+//    @Scheduled(fixedRate = 5000)
+    public void exportBinxingData() {
+        log.info("The time is now {}", dateFormat.format(new Date()));
+        List<VendorBinxiang> binxiang = vendorBinxiangRepository.query();
+        log.info(binxiang.get(0).getWendu());
+    }
+}

+ 129 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/bx/VendorBinxiang.java

@@ -0,0 +1,129 @@
+package com.jyxt.thridparty.exchange.bx;
+
+public class VendorBinxiang {
+    private String id;
+    private String wendu;
+    //采集时间
+    private String caiJiTime;
+    //冰箱ID
+    private String binXiangId;
+    //冰箱名称
+    private String binxiangName;
+    //采集器ID
+    private String caiJiId;
+    //采集器名称
+    private String caiJiName;
+    //温度上限
+    private String wenduUp;
+    //温度下限
+    private String wenduDown;
+    //实验组
+    private String shiyanzhuName;
+    //实验组ID
+    private String shiyanzhuId;
+
+    public String getWendu() {
+        return wendu;
+    }
+
+    public void setWendu(String wendu) {
+        this.wendu = wendu;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCaiJiTime() {
+        return caiJiTime;
+    }
+
+    public void setCaiJiTime(String caiJiTime) {
+        this.caiJiTime = caiJiTime;
+    }
+
+    public String getBinXiangId() {
+        return binXiangId;
+    }
+
+    public void setBinXiangId(String binXiangId) {
+        this.binXiangId = binXiangId;
+    }
+
+    public String getBinxiangName() {
+        return binxiangName;
+    }
+
+    public void setBinxiangName(String binxiangName) {
+        this.binxiangName = binxiangName;
+    }
+
+    public String getCaiJiId() {
+        return caiJiId;
+    }
+
+    public void setCaiJiId(String caiJiId) {
+        this.caiJiId = caiJiId;
+    }
+
+    public String getCaiJiName() {
+        return caiJiName;
+    }
+
+    public void setCaiJiName(String caiJiName) {
+        this.caiJiName = caiJiName;
+    }
+
+    public String getWenduUp() {
+        return wenduUp;
+    }
+
+    public void setWenduUp(String wenduUp) {
+        this.wenduUp = wenduUp;
+    }
+
+    public String getWenduDown() {
+        return wenduDown;
+    }
+
+    public void setWenduDown(String wenduDown) {
+        this.wenduDown = wenduDown;
+    }
+
+    public String getShiyanzhuName() {
+        return shiyanzhuName;
+    }
+
+    public void setShiyanzhuName(String shiyanzhuName) {
+        this.shiyanzhuName = shiyanzhuName;
+    }
+
+    public String getShiyanzhuId() {
+        return shiyanzhuId;
+    }
+
+    public void setShiyanzhuId(String shiyanzhuId) {
+        this.shiyanzhuId = shiyanzhuId;
+    }
+
+    @Override
+    public String toString() {
+        return "VendorBinxiang{" +
+                "id='" + id + '\'' +
+                ", wendu='" + wendu + '\'' +
+                ", caiJiTime='" + caiJiTime + '\'' +
+                ", binXiangId='" + binXiangId + '\'' +
+                ", binxiangName='" + binxiangName + '\'' +
+                ", caiJiId='" + caiJiId + '\'' +
+                ", caiJiName='" + caiJiName + '\'' +
+                ", wenduUp='" + wenduUp + '\'' +
+                ", wenduDown='" + wenduDown + '\'' +
+                ", shiyanzhuName='" + shiyanzhuName + '\'' +
+                ", shiyanzhuId='" + shiyanzhuId + '\'' +
+                '}';
+    }
+}

+ 46 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/bx/repository/BinxiangRepository.java

@@ -0,0 +1,46 @@
+package com.jyxt.thridparty.exchange.bx.repository;
+
+import com.jyxt.thridparty.exchange.bx.VendorBinxiang;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.PreparedStatementCreator;
+import org.springframework.stereotype.Repository;
+
+import java.sql.*;
+import java.time.Instant;
+import java.util.Calendar;
+
+@Repository
+public class BinxiangRepository {
+
+    @Autowired
+    @Qualifier("secondJdbcTemplate")
+    private JdbcTemplate jdbcTemplate;
+
+    public void save(final VendorBinxiang bx){
+        //sql语句
+        final String sql = "insert into t_dsfbxwdjl (id_,create_time_,cai_ji_shi_jian_,wen_du_,bing_xiang_id_,bing_xiang_ming_c,cai_ji_qi_id_," +
+                "cai_ji_qi_ming_ch,wen_du_shang_xian,wen_du_xia_xian_,shi_yan_zu_,shi_yan_zu_id_)" +
+                " values (?,?,?,?,?,?,?,?,?,?,?,?) ";
+        jdbcTemplate.update(new PreparedStatementCreator() {
+            public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
+                PreparedStatement prepareStatement = connection.prepareStatement(sql);
+                prepareStatement.setString(1,bx.getId());
+                prepareStatement.setTimestamp(2, Timestamp.from(Instant.now()));
+                prepareStatement.setString(3,bx.getCaiJiTime());
+                prepareStatement.setString(4,bx.getWendu());
+                prepareStatement.setString(5,bx.getBinXiangId());
+                prepareStatement.setString(6,bx.getBinxiangName());
+                prepareStatement.setString(7,bx.getCaiJiId());
+                prepareStatement.setString(8,bx.getCaiJiName());
+                prepareStatement.setString(9,bx.getWenduUp());
+                prepareStatement.setString(10,bx.getWenduDown());
+                prepareStatement.setString(11,bx.getShiyanzhuName());
+                prepareStatement.setString(12,bx.getShiyanzhuId());
+                return prepareStatement;
+            }
+        });
+    }
+
+}

+ 42 - 0
exchange/src/main/java/com/jyxt/thridparty/exchange/bx/repository/VendorBinxiangRepository.java

@@ -0,0 +1,42 @@
+package com.jyxt.thridparty.exchange.bx.repository;
+
+import com.jyxt.thridparty.exchange.bx.VendorBinxiang;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+@Repository
+public class VendorBinxiangRepository {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    public List<VendorBinxiang> query() {
+        return jdbcTemplate.query(
+                "select * from v_get_ref_temperature ",new RowMapper<VendorBinxiang>(){
+
+                    @Override
+                    public VendorBinxiang mapRow(ResultSet rs, int rowNum) throws SQLException {
+                        VendorBinxiang bx = new VendorBinxiang();
+                        bx.setId(rs.getString("id"));
+                        bx.setWendu(rs.getString("温度"));
+                        bx.setBinXiangId(rs.getString("冰箱ID"));
+                        bx.setBinxiangName(rs.getString("冰箱名称"));
+                        bx.setCaiJiId(rs.getString("采集器ID"));
+                        bx.setCaiJiName(rs.getString("采集器名称"));
+                        bx.setCaiJiTime(rs.getString("采集时间"));
+                        bx.setWenduUp(rs.getString("温度上限"));
+                        bx.setWenduDown(rs.getString("温度下限"));
+                        bx.setShiyanzhuName(rs.getString("实验组"));
+                        bx.setShiyanzhuId(rs.getString("实验组ID"));
+                        return bx;
+                    }
+                }
+        );
+    }
+
+}

+ 8 - 0
exchange/src/main/resources/application.properties

@@ -0,0 +1,8 @@
+spring.datasource.jdbc-url = jdbc:mysql://dev1.local:3306/zdqy_view?characterEncoding=utf8&useSSL=false
+spring.datasource.username = root
+spring.datasource.password = test001
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.second-datasource.jdbc-url = jdbc:mysql://dev1.local:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
+spring.second-datasource.username = root
+spring.second-datasource.password = test001
+spring.second-datasource.driver-class-name = com.mysql.cj.jdbc.Driver

+ 13 - 0
exchange/src/test/java/com/jyxt/thridparty/exchange/ExchangeApplicationTests.java

@@ -0,0 +1,13 @@
+package com.jyxt.thridparty.exchange;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class ExchangeApplicationTests {
+
+    @Test
+    void contextLoads() {
+    }
+
+}