¶Ô±ÈÐÂÎļþ |
| | |
| | | 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(); |
| | | } |
| | | |
| | | } |