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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 272 insertions(+), 0 deletions(-)

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