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