From 0819312988ae6e041360fd354ef57a73633b7354 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 07 九月 2024 16:16:12 +0800
Subject: [PATCH] 二厂数字化工况预警与停机报警提交

---
 src/main/java/com/ard/alarm/digitization/service/impl/Digitization2ServiceImpl.java |  272 ++++++++++++++++++++++++++++++++++++++
 src/main/java/com/ard/alarm/digitization/model/CylbdBj.java                         |   54 +++++++
 src/main/java/com/ard/alarm/digitization/service/Digitization2Service.java          |    4 
 src/main/java/com/ard/alarm/digitization/model/Gkbj.java                            |   54 +++++++
 pom.xml                                                                             |    5 
 5 files changed, 389 insertions(+), 0 deletions(-)

diff --git a/pom.xml b/pom.xml
index ec3a63f..569fa5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,11 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/src/main/java/com/ard/alarm/digitization/model/CylbdBj.java b/src/main/java/com/ard/alarm/digitization/model/CylbdBj.java
new file mode 100644
index 0000000..bd7ffeb
--- /dev/null
+++ b/src/main/java/com/ard/alarm/digitization/model/CylbdBj.java
@@ -0,0 +1,54 @@
+package com.ard.alarm.digitization.model;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CylbdBj {
+
+    private Integer id;
+
+    private String orgName;
+
+    private String km;
+
+    private String dm;
+
+    private String dmc;
+
+    private String jh;
+
+    private String wellCommonName;
+
+    private Date fssj;
+
+    private String bdbj;
+
+    private String bjtz;
+
+    private Float cyl1;
+
+    private Float cyl2;
+
+    private String hsqk;
+
+    private String gxsj;
+
+    private String xqkdm;
+
+    private String qdfs;
+
+    private String cyfs;
+
+    private String czsj;
+
+    private String czr;
+
+    private String cznr;
+
+    private String bz;
+
+    private String alarmType;
+
+}
diff --git a/src/main/java/com/ard/alarm/digitization/model/Gkbj.java b/src/main/java/com/ard/alarm/digitization/model/Gkbj.java
new file mode 100644
index 0000000..2abf769
--- /dev/null
+++ b/src/main/java/com/ard/alarm/digitization/model/Gkbj.java
@@ -0,0 +1,54 @@
+package com.ard.alarm.digitization.model;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Gkbj {
+
+    private Integer id;
+
+    private String orgName;
+
+    private String km;
+
+    private String dm;
+
+    private String dmc;
+
+    private String jh;
+
+    private String wellCommonName;
+
+    private Date fssj;
+
+    private String bdbj;
+
+    private String bjtz;
+
+    private Float cyl1;
+
+    private Float cyl2;
+
+    private String hsqk;
+
+    private String gxsj;
+
+    private String xqkdm;
+
+    private String qdfs;
+
+    private String cyfs;
+
+    private String czsj;
+
+    private String czr;
+
+    private String cznr;
+
+    private String bz;
+
+    private String alarmType;
+
+}
diff --git a/src/main/java/com/ard/alarm/digitization/service/Digitization2Service.java b/src/main/java/com/ard/alarm/digitization/service/Digitization2Service.java
new file mode 100644
index 0000000..1e2dbaa
--- /dev/null
+++ b/src/main/java/com/ard/alarm/digitization/service/Digitization2Service.java
@@ -0,0 +1,4 @@
+package com.ard.alarm.digitization.service;
+
+public interface Digitization2Service {
+}
diff --git a/src/main/java/com/ard/alarm/digitization/service/impl/Digitization2ServiceImpl.java b/src/main/java/com/ard/alarm/digitization/service/impl/Digitization2ServiceImpl.java
new file mode 100644
index 0000000..72addc4
--- /dev/null
+++ b/src/main/java/com/ard/alarm/digitization/service/impl/Digitization2ServiceImpl.java
@@ -0,0 +1,272 @@
+package com.ard.alarm.digitization.service.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.ard.alarm.digitization.model.CylbdBj;
+import com.ard.alarm.digitization.model.Gkbj;
+import com.ard.alarm.digitization.service.Digitization2Service;
+import com.ard.utils.jdbc.Query;
+import com.ard.utils.mqtt.MqttProducer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.sql.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+@Slf4j(topic = "digitization2")
+public class Digitization2ServiceImpl implements Digitization2Service {
+
+    @Value("${digitization2.enabled}")
+    private Boolean digitization2Enabled;
+
+    @Value("${digitization2.mysql.dbIP}")
+    private String digitization2MysqlIP;
+
+    @Value("${digitization2.mysql.dbPort}")
+    private Integer digitization2MysqlPort;
+
+    @Value("${digitization2.mysql.dbName}")
+    private String digitization2MysqlName;
+
+    @Value("${digitization2.mysql.dbCount}")
+    private String digitization2MysqlCount;
+
+    @Value("${digitization2.mysql.dbPassword}")
+    private String digitization2MysqlPassword;
+
+    Connection connection = null;
+
+    Statement statement = null;
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    //public Date gkbjLastTime;
+    public String gkbjLastTime;
+
+    //public Date cylbdBjLastTime;
+    public String cylbdBjLastTime;
+
+    @Scheduled(cron = "*/5 * * * * ?")
+    public void alarmHandler() {
+        if(!digitization2Enabled){
+            return;
+        }
+
+        Thread gkbjThread = new Thread(){
+            @Override
+            public void run() {
+                try {
+                    Class.forName("com.mysql.cj.jdbc.Driver");
+
+                    Connection connection = DriverManager.getConnection("jdbc:mysql://" + digitization2MysqlIP + ":" + digitization2MysqlPort + "/" + digitization2MysqlName, digitization2MysqlCount, digitization2MysqlPassword);
+
+                    Statement statement = (Statement) connection.createStatement();
+
+                    if (gkbjLastTime == null) {
+                        //鍒濇鏌ヨ锛屽彧鑾峰彇10鏉℃渶杩戞暟鎹��
+                        String sql = "select * from gkbj order by fssj desc limit 0,10";
+                        ResultSet resultSet = statement.executeQuery(sql);
+                        while (resultSet.next()) {
+                            if(resultSet.isFirst()){
+                                gkbjLastTime = sdf.format(resultSet.getTimestamp("fssj"));
+                            }
+                            Gkbj gkbj = new Gkbj();
+                            gkbj.setId(resultSet.getInt("id"));
+                            gkbj.setOrgName(resultSet.getString("org_name"));
+                            gkbj.setKm(resultSet.getString("km"));
+                            gkbj.setDm(resultSet.getString("dm"));
+                            gkbj.setDmc(resultSet.getString("dmc"));
+                            gkbj.setJh(resultSet.getString("jh"));
+                            gkbj.setWellCommonName(resultSet.getString("well_common_name"));
+                            gkbj.setFssj(resultSet.getTimestamp("fssj"));
+                            gkbj.setBdbj(resultSet.getString("bdbj"));
+                            gkbj.setBjtz(resultSet.getString("bdbj"));
+                            gkbj.setCyl1(resultSet.getFloat("cyl1"));
+                            gkbj.setCyl2(resultSet.getFloat("cyl2"));
+                            gkbj.setHsqk(resultSet.getString("hsqk"));
+                            gkbj.setGxsj(resultSet.getString("gxsj"));
+                            gkbj.setXqkdm(resultSet.getString("xqkdm"));
+                            gkbj.setQdfs(resultSet.getString("qdfs"));
+                            gkbj.setCyfs(resultSet.getString("cyfs"));
+                            gkbj.setCzsj(resultSet.getString("czsj"));
+                            gkbj.setCzr(resultSet.getString("czr"));
+                            gkbj.setCznr(resultSet.getString("cznr"));
+                            gkbj.setBz(resultSet.getString("bz"));
+                            gkbj.setAlarmType("宸ュ喌棰勮");
+                            MqttProducer.publish(2, false, "digitization2", JSON.toJSONString(gkbj));
+                        }
+                        connection.close();
+                        statement.close();
+                        resultSet.close();
+                    } else {
+                        //鏌ヨ澶т簬涓婃鏌ヨ鏈�鍚庝竴鏉℃暟鎹殑鏃堕棿
+                        String sql = "select * from gkbj where fssj >= \'" + gkbjLastTime + " \'order by fssj desc";
+                        ResultSet resultSet = statement.executeQuery(sql);
+                        while (resultSet.next()) {
+                            if(resultSet.isFirst()){
+                                gkbjLastTime = sdf.format(resultSet.getTimestamp("fssj"));
+                            }
+                            Gkbj gkbj = new Gkbj();
+                            gkbj.setId(resultSet.getInt("id"));
+                            gkbj.setOrgName(resultSet.getString("org_name"));
+                            gkbj.setKm(resultSet.getString("km"));
+                            gkbj.setDm(resultSet.getString("dm"));
+                            gkbj.setDmc(resultSet.getString("dmc"));
+                            gkbj.setJh(resultSet.getString("jh"));
+                            gkbj.setWellCommonName(resultSet.getString("well_common_name"));
+                            gkbj.setFssj(resultSet.getTimestamp("fssj"));
+                            gkbj.setBdbj(resultSet.getString("bdbj"));
+                            gkbj.setBjtz(resultSet.getString("bdbj"));
+                            gkbj.setCyl1(resultSet.getFloat("cyl1"));
+                            gkbj.setCyl2(resultSet.getFloat("cyl2"));
+                            gkbj.setHsqk(resultSet.getString("hsqk"));
+                            gkbj.setGxsj(resultSet.getString("gxsj"));
+                            gkbj.setXqkdm(resultSet.getString("xqkdm"));
+                            gkbj.setQdfs(resultSet.getString("qdfs"));
+                            gkbj.setCyfs(resultSet.getString("cyfs"));
+                            gkbj.setCzsj(resultSet.getString("czsj"));
+                            gkbj.setCzr(resultSet.getString("czr"));
+                            gkbj.setCznr(resultSet.getString("cznr"));
+                            gkbj.setBz(resultSet.getString("bz"));
+                            gkbj.setAlarmType("宸ュ喌鎶ヨ");
+                            MqttProducer.publish(2, false, "digitization2", JSON.toJSONString(gkbj));
+                        }
+                        connection.close();
+                        statement.close();
+                        resultSet.close();
+                    }
+                } catch (Exception ex) {
+                    ex.printStackTrace();
+                    log.error("浜屽巶鏁板瓧鍖栧伐鍐垫姤璀︽暟鎹鐞嗗紓甯革細" + ex.getMessage());
+                }
+            }
+        };
+        gkbjThread.start();
+
+        Thread cylbdBjThread = new Thread(){
+            @Override
+            public void run() {
+                try {
+                    Class.forName("com.mysql.cj.jdbc.Driver");
+
+                    Connection connection = DriverManager.getConnection("jdbc:mysql://" + digitization2MysqlIP + ":" + digitization2MysqlPort + "/" + digitization2MysqlName, digitization2MysqlCount, digitization2MysqlPassword);
+
+                    Statement statement = (Statement) connection.createStatement();
+
+                    if (cylbdBjLastTime == null) {
+                        //鍒濇鏌ヨ锛屽彧鑾峰彇10鏉℃渶杩戞暟鎹��
+                        String sql = "select * from cylbd_bj order by fssj desc limit 0,10";
+                        ResultSet resultSet = statement.executeQuery(sql);
+                        while (resultSet.next()) {
+                            if(resultSet.isFirst()){
+                                cylbdBjLastTime = sdf.format(resultSet.getTimestamp("fssj"));
+                            }
+                            CylbdBj cylbdBj = new CylbdBj();
+                            cylbdBj.setId(resultSet.getInt("id"));
+                            cylbdBj.setOrgName(resultSet.getString("org_name"));
+                            cylbdBj.setKm(resultSet.getString("km"));
+                            cylbdBj.setDm(resultSet.getString("dm"));
+                            cylbdBj.setDmc(resultSet.getString("dmc"));
+                            cylbdBj.setJh(resultSet.getString("jh"));
+                            cylbdBj.setWellCommonName(resultSet.getString("well_common_name"));
+                            cylbdBj.setFssj(resultSet.getTimestamp("fssj"));
+                            cylbdBj.setBdbj(resultSet.getString("bdbj"));
+                            cylbdBj.setBjtz(resultSet.getString("bdbj"));
+                            cylbdBj.setCyl1(resultSet.getFloat("cyl1"));
+                            cylbdBj.setCyl2(resultSet.getFloat("cyl2"));
+                            cylbdBj.setHsqk(resultSet.getString("hsqk"));
+                            cylbdBj.setGxsj(resultSet.getString("gxsj"));
+                            cylbdBj.setXqkdm(resultSet.getString("xqkdm"));
+                            cylbdBj.setQdfs(resultSet.getString("qdfs"));
+                            cylbdBj.setCyfs(resultSet.getString("cyfs"));
+                            cylbdBj.setCzsj(resultSet.getString("czsj"));
+                            cylbdBj.setCzr(resultSet.getString("czr"));
+                            cylbdBj.setCznr(resultSet.getString("cznr"));
+                            cylbdBj.setBz(resultSet.getString("bz"));
+                            cylbdBj.setAlarmType("鍋滄満鎶ヨ");
+                            MqttProducer.publish(2, false, "digitization2", JSON.toJSONString(cylbdBj));
+                        }
+                        connection.close();
+                        statement.close();
+                        resultSet.close();
+                    } else {
+                        //鏌ヨ澶т簬涓婃鏌ヨ鏈�鍚庝竴鏉℃暟鎹殑鏃堕棿
+                        String sql = "select * from cylbd_bj where fssj >= \'" + cylbdBjLastTime + "\' order by fssj desc";
+                        ResultSet resultSet = statement.executeQuery(sql);
+                        while (resultSet.next()) {
+                            if(resultSet.isFirst()){
+                                cylbdBjLastTime = sdf.format(resultSet.getTimestamp("fssj"));
+                            }
+                            CylbdBj cylbdBj = new CylbdBj();
+                            cylbdBj.setId(resultSet.getInt("id"));
+                            cylbdBj.setOrgName(resultSet.getString("org_name"));
+                            cylbdBj.setKm(resultSet.getString("km"));
+                            cylbdBj.setDm(resultSet.getString("dm"));
+                            cylbdBj.setDmc(resultSet.getString("dmc"));
+                            cylbdBj.setJh(resultSet.getString("jh"));
+                            cylbdBj.setWellCommonName(resultSet.getString("well_common_name"));
+                            cylbdBj.setFssj(resultSet.getTimestamp("fssj"));
+                            cylbdBj.setBdbj(resultSet.getString("bdbj"));
+                            cylbdBj.setBjtz(resultSet.getString("bdbj"));
+                            cylbdBj.setCyl1(resultSet.getFloat("cyl1"));
+                            cylbdBj.setCyl2(resultSet.getFloat("cyl2"));
+                            cylbdBj.setHsqk(resultSet.getString("hsqk"));
+                            cylbdBj.setGxsj(resultSet.getString("gxsj"));
+                            cylbdBj.setXqkdm(resultSet.getString("xqkdm"));
+                            cylbdBj.setQdfs(resultSet.getString("qdfs"));
+                            cylbdBj.setCyfs(resultSet.getString("cyfs"));
+                            cylbdBj.setCzsj(resultSet.getString("czsj"));
+                            cylbdBj.setCzr(resultSet.getString("czr"));
+                            cylbdBj.setCznr(resultSet.getString("cznr"));
+                            cylbdBj.setBz(resultSet.getString("bz"));
+                            cylbdBj.setAlarmType("鍋滄満鎶ヨ");
+                            MqttProducer.publish(2, false, "digitization2", JSON.toJSONString(cylbdBj));
+                        }
+                        connection.close();
+                        statement.close();
+                        resultSet.close();
+                    }
+                } catch (Exception ex) {
+                    ex.printStackTrace();
+                    log.error("浜屽巶鏁板瓧鍖栧伐鍐垫姤璀︽暟鎹鐞嗗紓甯革細" + ex.getMessage());
+                }
+            }
+        };
+        cylbdBjThread.start();
+    }
+
+    public void initMysql() throws ClassNotFoundException, SQLException {
+        if(this.connection != null){
+            if(!this.connection.isClosed()){
+                try{
+                    this.connection.close();
+                    this.connection = null;
+                }catch(Exception e){
+                    this.connection = null;
+                }
+            }
+        }
+
+        if(this.statement != null){
+            if(!this.statement.isClosed()){
+                try{
+                    this.statement.close();
+                    this.statement = null;
+                }catch(Exception e){
+                    this.statement = null;
+                }
+            }
+        }
+
+        Class.forName("com.mysql.cj.jdbc.Driver");
+
+        this.connection = DriverManager.getConnection("jdbc:mysql://" + digitization2MysqlIP + ":" + digitization2MysqlPort + "/" + digitization2MysqlName, digitization2MysqlCount, digitization2MysqlPassword);
+
+        this.statement = (Statement) connection.createStatement();
+    }
+
+}

--
Gitblit v1.9.3