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