diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java index b51a39d..dc50cbd 100644 --- a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java +++ b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java @@ -29,9 +29,7 @@ private boolean enabled = true; // every 10 seconds - @Scheduled(cron = "0 0 5 * * ?") -// @Scheduled(cron = "0 0/1 * * * ?") -// @Scheduled(cron = "0 */2 * * * ?") + @Scheduled(cron = "${cron.time}") public void execute() { if (!enabled) { return; diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java index b51a39d..dc50cbd 100644 --- a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java +++ b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java @@ -29,9 +29,7 @@ private boolean enabled = true; // every 10 seconds - @Scheduled(cron = "0 0 5 * * ?") -// @Scheduled(cron = "0 0/1 * * * ?") -// @Scheduled(cron = "0 */2 * * * ?") + @Scheduled(cron = "${cron.time}") public void execute() { if (!enabled) { return; diff --git a/src/main/java/org/well/well/util/PushList.java b/src/main/java/org/well/well/util/PushList.java index 74568fe..ba5e1af 100644 --- a/src/main/java/org/well/well/util/PushList.java +++ b/src/main/java/org/well/well/util/PushList.java @@ -1,85 +1,85 @@ -package org.well.well.util; - -import java.util.ArrayList; -import java.util.List; - -import com.gexin.rp.sdk.base.IPushResult; -import com.gexin.rp.sdk.base.impl.ListMessage; -import com.gexin.rp.sdk.base.impl.Target; -import com.gexin.rp.sdk.http.IGtPush; -import com.gexin.rp.sdk.template.NotificationTemplate; -import com.gexin.rp.sdk.template.style.Style0; - -/** - * Created by test203 on 2019/6/11. - */ - - -public class PushList { - //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; - - private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); - private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); - private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); - - //别名推送方式 - // static String Alias1 = ""; - // static String Alias2 = ""; - static String host = "http://sdk.open.api.igexin.com/apiex.htm"; - - public static void pushToUser(List cids, String title, String content){ - // 配置返回每个用户返回用户状态,可选 - System.setProperty("gexin_pushList_needDetails", "true"); - // 配置返回每个别名及其对应cid的用户状态,可选 - // System.setProperty("gexin_pushList_needAliasDetails", "true"); - IGtPush push = new IGtPush(host, appKey, masterSecret); - // 通知透传模板 - NotificationTemplate template = notificationTemplateDemo(title,content); - ListMessage message = new ListMessage(); - message.setData(template); - // 设置消息离线,并设置离线时间 - message.setOffline(true); - // 离线有效时间,单位为毫秒,可选 - message.setOfflineExpireTime(24 * 1000 * 3600); - // 配置推送目标 - List targets = new ArrayList(); - for (String cid : cids) { - Target target = new Target(); - target.setAppId(appId); - target.setClientId(cid); - targets.add(target); - } - - // taskId用于在推送时去查找对应的message - String taskId = push.getContentId(message); - IPushResult ret = push.pushMessageToList(taskId, targets); - System.out.println(ret.getResponse().toString()); - } - - public static NotificationTemplate notificationTemplateDemo(String title,String content) { - NotificationTemplate template = new NotificationTemplate(); - // 设置APPID与APPKEY - template.setAppId(appId); - template.setAppkey(appKey); - - Style0 style = new Style0(); - // 设置通知栏标题与内容 - style.setTitle(title); - style.setText(content); - // 配置通知栏图标 - style.setLogo("icon.png"); - // 配置通知栏网络图标 - style.setLogoUrl(""); - // 设置通知是否响铃,震动,或者可清除 - style.setRing(true); - style.setVibrate(true); - style.setClearable(true); - template.setStyle(style); - - // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 - template.setTransmissionType(2); - template.setTransmissionContent("请输入您要透传的内容"); - return template; - } -} - +//package org.well.well.util; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import com.gexin.rp.sdk.base.IPushResult; +//import com.gexin.rp.sdk.base.impl.ListMessage; +//import com.gexin.rp.sdk.base.impl.Target; +//import com.gexin.rp.sdk.http.IGtPush; +//import com.gexin.rp.sdk.template.NotificationTemplate; +//import com.gexin.rp.sdk.template.style.Style0; +// +///** +// * Created by test203 on 2019/6/11. +// */ +// +// +//public class PushList { +// //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; +// +// private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); +// private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); +// private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); +// +// //别名推送方式 +// // static String Alias1 = ""; +// // static String Alias2 = ""; +// static String host = "http://sdk.open.api.igexin.com/apiex.htm"; +// +// public static void pushToUser(List cids, String title, String content){ +// // 配置返回每个用户返回用户状态,可选 +// System.setProperty("gexin_pushList_needDetails", "true"); +// // 配置返回每个别名及其对应cid的用户状态,可选 +// // System.setProperty("gexin_pushList_needAliasDetails", "true"); +// IGtPush push = new IGtPush(host, appKey, masterSecret); +// // 通知透传模板 +// NotificationTemplate template = notificationTemplateDemo(title,content); +// ListMessage message = new ListMessage(); +// message.setData(template); +// // 设置消息离线,并设置离线时间 +// message.setOffline(true); +// // 离线有效时间,单位为毫秒,可选 +// message.setOfflineExpireTime(24 * 1000 * 3600); +// // 配置推送目标 +// List targets = new ArrayList(); +// for (String cid : cids) { +// Target target = new Target(); +// target.setAppId(appId); +// target.setClientId(cid); +// targets.add(target); +// } +// +// // taskId用于在推送时去查找对应的message +// String taskId = push.getContentId(message); +// IPushResult ret = push.pushMessageToList(taskId, targets); +// System.out.println(ret.getResponse().toString()); +// } +// +// public static NotificationTemplate notificationTemplateDemo(String title,String content) { +// NotificationTemplate template = new NotificationTemplate(); +// // 设置APPID与APPKEY +// template.setAppId(appId); +// template.setAppkey(appKey); +// +// Style0 style = new Style0(); +// // 设置通知栏标题与内容 +// style.setTitle(title); +// style.setText(content); +// // 配置通知栏图标 +// style.setLogo("icon.png"); +// // 配置通知栏网络图标 +// style.setLogoUrl(""); +// // 设置通知是否响铃,震动,或者可清除 +// style.setRing(true); +// style.setVibrate(true); +// style.setClearable(true); +// template.setStyle(style); +// +// // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 +// template.setTransmissionType(2); +// template.setTransmissionContent("请输入您要透传的内容"); +// return template; +// } +//} +// diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java index b51a39d..dc50cbd 100644 --- a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java +++ b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java @@ -29,9 +29,7 @@ private boolean enabled = true; // every 10 seconds - @Scheduled(cron = "0 0 5 * * ?") -// @Scheduled(cron = "0 0/1 * * * ?") -// @Scheduled(cron = "0 */2 * * * ?") + @Scheduled(cron = "${cron.time}") public void execute() { if (!enabled) { return; diff --git a/src/main/java/org/well/well/util/PushList.java b/src/main/java/org/well/well/util/PushList.java index 74568fe..ba5e1af 100644 --- a/src/main/java/org/well/well/util/PushList.java +++ b/src/main/java/org/well/well/util/PushList.java @@ -1,85 +1,85 @@ -package org.well.well.util; - -import java.util.ArrayList; -import java.util.List; - -import com.gexin.rp.sdk.base.IPushResult; -import com.gexin.rp.sdk.base.impl.ListMessage; -import com.gexin.rp.sdk.base.impl.Target; -import com.gexin.rp.sdk.http.IGtPush; -import com.gexin.rp.sdk.template.NotificationTemplate; -import com.gexin.rp.sdk.template.style.Style0; - -/** - * Created by test203 on 2019/6/11. - */ - - -public class PushList { - //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; - - private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); - private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); - private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); - - //别名推送方式 - // static String Alias1 = ""; - // static String Alias2 = ""; - static String host = "http://sdk.open.api.igexin.com/apiex.htm"; - - public static void pushToUser(List cids, String title, String content){ - // 配置返回每个用户返回用户状态,可选 - System.setProperty("gexin_pushList_needDetails", "true"); - // 配置返回每个别名及其对应cid的用户状态,可选 - // System.setProperty("gexin_pushList_needAliasDetails", "true"); - IGtPush push = new IGtPush(host, appKey, masterSecret); - // 通知透传模板 - NotificationTemplate template = notificationTemplateDemo(title,content); - ListMessage message = new ListMessage(); - message.setData(template); - // 设置消息离线,并设置离线时间 - message.setOffline(true); - // 离线有效时间,单位为毫秒,可选 - message.setOfflineExpireTime(24 * 1000 * 3600); - // 配置推送目标 - List targets = new ArrayList(); - for (String cid : cids) { - Target target = new Target(); - target.setAppId(appId); - target.setClientId(cid); - targets.add(target); - } - - // taskId用于在推送时去查找对应的message - String taskId = push.getContentId(message); - IPushResult ret = push.pushMessageToList(taskId, targets); - System.out.println(ret.getResponse().toString()); - } - - public static NotificationTemplate notificationTemplateDemo(String title,String content) { - NotificationTemplate template = new NotificationTemplate(); - // 设置APPID与APPKEY - template.setAppId(appId); - template.setAppkey(appKey); - - Style0 style = new Style0(); - // 设置通知栏标题与内容 - style.setTitle(title); - style.setText(content); - // 配置通知栏图标 - style.setLogo("icon.png"); - // 配置通知栏网络图标 - style.setLogoUrl(""); - // 设置通知是否响铃,震动,或者可清除 - style.setRing(true); - style.setVibrate(true); - style.setClearable(true); - template.setStyle(style); - - // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 - template.setTransmissionType(2); - template.setTransmissionContent("请输入您要透传的内容"); - return template; - } -} - +//package org.well.well.util; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import com.gexin.rp.sdk.base.IPushResult; +//import com.gexin.rp.sdk.base.impl.ListMessage; +//import com.gexin.rp.sdk.base.impl.Target; +//import com.gexin.rp.sdk.http.IGtPush; +//import com.gexin.rp.sdk.template.NotificationTemplate; +//import com.gexin.rp.sdk.template.style.Style0; +// +///** +// * Created by test203 on 2019/6/11. +// */ +// +// +//public class PushList { +// //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; +// +// private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); +// private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); +// private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); +// +// //别名推送方式 +// // static String Alias1 = ""; +// // static String Alias2 = ""; +// static String host = "http://sdk.open.api.igexin.com/apiex.htm"; +// +// public static void pushToUser(List cids, String title, String content){ +// // 配置返回每个用户返回用户状态,可选 +// System.setProperty("gexin_pushList_needDetails", "true"); +// // 配置返回每个别名及其对应cid的用户状态,可选 +// // System.setProperty("gexin_pushList_needAliasDetails", "true"); +// IGtPush push = new IGtPush(host, appKey, masterSecret); +// // 通知透传模板 +// NotificationTemplate template = notificationTemplateDemo(title,content); +// ListMessage message = new ListMessage(); +// message.setData(template); +// // 设置消息离线,并设置离线时间 +// message.setOffline(true); +// // 离线有效时间,单位为毫秒,可选 +// message.setOfflineExpireTime(24 * 1000 * 3600); +// // 配置推送目标 +// List targets = new ArrayList(); +// for (String cid : cids) { +// Target target = new Target(); +// target.setAppId(appId); +// target.setClientId(cid); +// targets.add(target); +// } +// +// // taskId用于在推送时去查找对应的message +// String taskId = push.getContentId(message); +// IPushResult ret = push.pushMessageToList(taskId, targets); +// System.out.println(ret.getResponse().toString()); +// } +// +// public static NotificationTemplate notificationTemplateDemo(String title,String content) { +// NotificationTemplate template = new NotificationTemplate(); +// // 设置APPID与APPKEY +// template.setAppId(appId); +// template.setAppkey(appKey); +// +// Style0 style = new Style0(); +// // 设置通知栏标题与内容 +// style.setTitle(title); +// style.setText(content); +// // 配置通知栏图标 +// style.setLogo("icon.png"); +// // 配置通知栏网络图标 +// style.setLogoUrl(""); +// // 设置通知是否响铃,震动,或者可清除 +// style.setRing(true); +// style.setVibrate(true); +// style.setClearable(true); +// template.setStyle(style); +// +// // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 +// template.setTransmissionType(2); +// template.setTransmissionContent("请输入您要透传的内容"); +// return template; +// } +//} +// diff --git a/src/main/java/org/well/well/util/SnowFlakeUtil.java b/src/main/java/org/well/well/util/SnowFlakeUtil.java index b6992a4..2002664 100644 --- a/src/main/java/org/well/well/util/SnowFlakeUtil.java +++ b/src/main/java/org/well/well/util/SnowFlakeUtil.java @@ -1,5 +1,7 @@ package org.well.well.util; +import xyz.downgoon.snowflake.Snowflake; + import javax.annotation.Resource; import java.util.Random; @@ -41,6 +43,12 @@ // return snowflake.nextId(); // } + private static Snowflake snowflake = new Snowflake(0, 2); + + public static Long getBizPhyId() { + return snowflake.nextId(); + } + public static Long getId() { // return SnowFlakeUtil.get().id(); @@ -48,6 +56,9 @@ long fraction = (long) (range * new Random().nextDouble()); return (Long) (fraction + 100000000); } + public static void main(String []args){ + System.out.println(SnowFlakeUtil.getBizPhyId()); + } } diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java index b51a39d..dc50cbd 100644 --- a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java +++ b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java @@ -29,9 +29,7 @@ private boolean enabled = true; // every 10 seconds - @Scheduled(cron = "0 0 5 * * ?") -// @Scheduled(cron = "0 0/1 * * * ?") -// @Scheduled(cron = "0 */2 * * * ?") + @Scheduled(cron = "${cron.time}") public void execute() { if (!enabled) { return; diff --git a/src/main/java/org/well/well/util/PushList.java b/src/main/java/org/well/well/util/PushList.java index 74568fe..ba5e1af 100644 --- a/src/main/java/org/well/well/util/PushList.java +++ b/src/main/java/org/well/well/util/PushList.java @@ -1,85 +1,85 @@ -package org.well.well.util; - -import java.util.ArrayList; -import java.util.List; - -import com.gexin.rp.sdk.base.IPushResult; -import com.gexin.rp.sdk.base.impl.ListMessage; -import com.gexin.rp.sdk.base.impl.Target; -import com.gexin.rp.sdk.http.IGtPush; -import com.gexin.rp.sdk.template.NotificationTemplate; -import com.gexin.rp.sdk.template.style.Style0; - -/** - * Created by test203 on 2019/6/11. - */ - - -public class PushList { - //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; - - private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); - private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); - private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); - - //别名推送方式 - // static String Alias1 = ""; - // static String Alias2 = ""; - static String host = "http://sdk.open.api.igexin.com/apiex.htm"; - - public static void pushToUser(List cids, String title, String content){ - // 配置返回每个用户返回用户状态,可选 - System.setProperty("gexin_pushList_needDetails", "true"); - // 配置返回每个别名及其对应cid的用户状态,可选 - // System.setProperty("gexin_pushList_needAliasDetails", "true"); - IGtPush push = new IGtPush(host, appKey, masterSecret); - // 通知透传模板 - NotificationTemplate template = notificationTemplateDemo(title,content); - ListMessage message = new ListMessage(); - message.setData(template); - // 设置消息离线,并设置离线时间 - message.setOffline(true); - // 离线有效时间,单位为毫秒,可选 - message.setOfflineExpireTime(24 * 1000 * 3600); - // 配置推送目标 - List targets = new ArrayList(); - for (String cid : cids) { - Target target = new Target(); - target.setAppId(appId); - target.setClientId(cid); - targets.add(target); - } - - // taskId用于在推送时去查找对应的message - String taskId = push.getContentId(message); - IPushResult ret = push.pushMessageToList(taskId, targets); - System.out.println(ret.getResponse().toString()); - } - - public static NotificationTemplate notificationTemplateDemo(String title,String content) { - NotificationTemplate template = new NotificationTemplate(); - // 设置APPID与APPKEY - template.setAppId(appId); - template.setAppkey(appKey); - - Style0 style = new Style0(); - // 设置通知栏标题与内容 - style.setTitle(title); - style.setText(content); - // 配置通知栏图标 - style.setLogo("icon.png"); - // 配置通知栏网络图标 - style.setLogoUrl(""); - // 设置通知是否响铃,震动,或者可清除 - style.setRing(true); - style.setVibrate(true); - style.setClearable(true); - template.setStyle(style); - - // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 - template.setTransmissionType(2); - template.setTransmissionContent("请输入您要透传的内容"); - return template; - } -} - +//package org.well.well.util; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import com.gexin.rp.sdk.base.IPushResult; +//import com.gexin.rp.sdk.base.impl.ListMessage; +//import com.gexin.rp.sdk.base.impl.Target; +//import com.gexin.rp.sdk.http.IGtPush; +//import com.gexin.rp.sdk.template.NotificationTemplate; +//import com.gexin.rp.sdk.template.style.Style0; +// +///** +// * Created by test203 on 2019/6/11. +// */ +// +// +//public class PushList { +// //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; +// +// private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); +// private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); +// private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); +// +// //别名推送方式 +// // static String Alias1 = ""; +// // static String Alias2 = ""; +// static String host = "http://sdk.open.api.igexin.com/apiex.htm"; +// +// public static void pushToUser(List cids, String title, String content){ +// // 配置返回每个用户返回用户状态,可选 +// System.setProperty("gexin_pushList_needDetails", "true"); +// // 配置返回每个别名及其对应cid的用户状态,可选 +// // System.setProperty("gexin_pushList_needAliasDetails", "true"); +// IGtPush push = new IGtPush(host, appKey, masterSecret); +// // 通知透传模板 +// NotificationTemplate template = notificationTemplateDemo(title,content); +// ListMessage message = new ListMessage(); +// message.setData(template); +// // 设置消息离线,并设置离线时间 +// message.setOffline(true); +// // 离线有效时间,单位为毫秒,可选 +// message.setOfflineExpireTime(24 * 1000 * 3600); +// // 配置推送目标 +// List targets = new ArrayList(); +// for (String cid : cids) { +// Target target = new Target(); +// target.setAppId(appId); +// target.setClientId(cid); +// targets.add(target); +// } +// +// // taskId用于在推送时去查找对应的message +// String taskId = push.getContentId(message); +// IPushResult ret = push.pushMessageToList(taskId, targets); +// System.out.println(ret.getResponse().toString()); +// } +// +// public static NotificationTemplate notificationTemplateDemo(String title,String content) { +// NotificationTemplate template = new NotificationTemplate(); +// // 设置APPID与APPKEY +// template.setAppId(appId); +// template.setAppkey(appKey); +// +// Style0 style = new Style0(); +// // 设置通知栏标题与内容 +// style.setTitle(title); +// style.setText(content); +// // 配置通知栏图标 +// style.setLogo("icon.png"); +// // 配置通知栏网络图标 +// style.setLogoUrl(""); +// // 设置通知是否响铃,震动,或者可清除 +// style.setRing(true); +// style.setVibrate(true); +// style.setClearable(true); +// template.setStyle(style); +// +// // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 +// template.setTransmissionType(2); +// template.setTransmissionContent("请输入您要透传的内容"); +// return template; +// } +//} +// diff --git a/src/main/java/org/well/well/util/SnowFlakeUtil.java b/src/main/java/org/well/well/util/SnowFlakeUtil.java index b6992a4..2002664 100644 --- a/src/main/java/org/well/well/util/SnowFlakeUtil.java +++ b/src/main/java/org/well/well/util/SnowFlakeUtil.java @@ -1,5 +1,7 @@ package org.well.well.util; +import xyz.downgoon.snowflake.Snowflake; + import javax.annotation.Resource; import java.util.Random; @@ -41,6 +43,12 @@ // return snowflake.nextId(); // } + private static Snowflake snowflake = new Snowflake(0, 2); + + public static Long getBizPhyId() { + return snowflake.nextId(); + } + public static Long getId() { // return SnowFlakeUtil.get().id(); @@ -48,6 +56,9 @@ long fraction = (long) (range * new Random().nextDouble()); return (Long) (fraction + 100000000); } + public static void main(String []args){ + System.out.println(SnowFlakeUtil.getBizPhyId()); + } } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index f6145cf..a164e04 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -14,7 +14,7 @@ #PostgreSQL db.default.driverClassName=org.postgresql.Driver -db.default.url=jdbc:postgresql://111.198.10.15:11209/smartwell +db.default.url=jdbc:postgresql://111.198.10.15:11209/smartwell_zq_cs db.default.username=postgres db.default.password=Casic203 validationQuery=SELECT 1 @@ -152,7 +152,8 @@ scheduler.enabled=true scheduler.com.casic.baseService.scheduler.DeviceCheckingJob.execute=true deviceChecking.enabled=true -#cron.time=0 37 15 * * ? +cron.time=0 0 2 * * ? +checked.day=7 # ============================================================================ # ���ͼ�� diff --git a/pom.xml b/pom.xml index e9dcc64..ac8e701 100644 --- a/pom.xml +++ b/pom.xml @@ -242,6 +242,11 @@ 2.7.6 + + xyz.downgoon + snowflake + 1.0.0 + diff --git a/src/main/java/org/well/mysql/sink/WellSink.java b/src/main/java/org/well/mysql/sink/WellSink.java index dee5c4f..af1df3e 100644 --- a/src/main/java/org/well/mysql/sink/WellSink.java +++ b/src/main/java/org/well/mysql/sink/WellSink.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.well.well.util.SnowFlakeUtil; import java.util.ArrayList; import java.util.List; @@ -176,6 +177,9 @@ // temp="{\"mType\":\"Data\",\"devType\":\"Noise\",\"devCode\":\"3120312313213\",\"mBody\":{\"cell\":99,\"datas\":[{\"noiseVal\":84.7926,\"noiseFreq\":1421,\"uptime\":\"20191017141000\"},{\"noiseVal\":48.1797,\"noiseFreq\":212,\"uptime\":\"20190822141300\"},{\"noiseVal\":33.1398,\"noiseFreq\":553,\"uptime\":\"20190822141600\"},{\"noiseVal\":0.85,\"noiseFreq\":1049,\"uptime\":\"20190822141900\"},{\"noiseVal\":4000.86,\"noiseFreq\":1545,\"uptime\":\"20191017142200\"}],\"logTime\":\"20190822141337\",\"bType\":\"NoiseData\"},\"ts\":1566454417130}"; // // temp="{\"mType\":\"Data\",\"devType\":\"Tube\",\"devCode\":\"1111111111\",\"mBody\":{\"cell\":95,\"datas\":[{\"gas\":0.064453125,\"uptime\":\"20191017085400\"},{\"gas\":0.080566406,\"uptime\":\"20191017095400\"},{\"gas\":10,\"uptime\":\"20191017105400\"},{\"gas\":0.09990235,\"uptime\":\"20191017115400\"},{\"gas\":0.070898436,\"uptime\":\"20191017125400\"},{\"gas\":26.8701172,\"uptime\":\"20210813115400\"}],\"logTime\":\"20210813105400\",\"bType\":\"MethaneData\"},\"ts\":1571292084960}"; + temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028091422\",\"bType\":\"WellEvent\"},\"ts\":1666919662714}"; + +temp="{\"mType\":\"Event\",\"devType\":\"Well\",\"devCode\":\"412022030904\",\"mBody\":{\"eventType\":[\"WellOpenAlarm\"],\"logTime\":\"20221028170840\",\"bType\":\"WellEvent\"},\"ts\":1666948120626}\n"; AbstractResponse resp = ResponseResolver.makeResponse(temp); resp.setAc(ac); // for(String dd:arr){ diff --git a/src/main/java/org/well/well/base/DeviceTypeEnum.java b/src/main/java/org/well/well/base/DeviceTypeEnum.java index d570944..7cc7ae9 100644 --- a/src/main/java/org/well/well/base/DeviceTypeEnum.java +++ b/src/main/java/org/well/well/base/DeviceTypeEnum.java @@ -25,7 +25,8 @@ FLOWGAUGE("流量计", 20), RAINGAUGE("雨量计", 21), LG("燃气智能监测终端(一体化)", 22), - Tube("管盯", 23); + Tube("管盯", 23), + COMBUSTIBLE_GAS("可燃气体", 24); // 成员变量 diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 77c2cf1..1e52fba 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -2,6 +2,7 @@ import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; +import org.well.well.util.SnowFlakeUtil; import javax.persistence.*; import java.io.Serializable; @@ -44,6 +45,7 @@ public AlarmRecord(Long jobId, String alarmType,Integer alarmLevel, String alarmContent, String alarmValue, Device device, String deviceCode, String wellCode, Date alarmTime,String alarmMsg) { + this.id = SnowFlakeUtil.getBizPhyId(); this.jobId = jobId; this.alarmType = alarmType; this.alarmLevel = alarmLevel; @@ -58,7 +60,6 @@ } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") public Long getId() { return id; diff --git a/src/main/java/org/well/well/manager/AlarmRecordManager.java b/src/main/java/org/well/well/manager/AlarmRecordManager.java index d3fae84..3a9815d 100644 --- a/src/main/java/org/well/well/manager/AlarmRecordManager.java +++ b/src/main/java/org/well/well/manager/AlarmRecordManager.java @@ -98,7 +98,6 @@ List alarmRecordList = criteria.list(); return alarmRecordList != null && alarmRecordList.size() > 0 ? alarmRecordList.get(0) : null; - } public AlarmRecord getDeviceAlarm(String devCode, String alarmValue) {//获取设备本身报警消息(正在告警) diff --git a/src/main/java/org/well/well/manager/DeviceManager.java b/src/main/java/org/well/well/manager/DeviceManager.java index 18a7905..004bdb0 100644 --- a/src/main/java/org/well/well/manager/DeviceManager.java +++ b/src/main/java/org/well/well/manager/DeviceManager.java @@ -1,5 +1,6 @@ package org.well.well.manager; +import org.springframework.beans.factory.annotation.Value; import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; @@ -13,6 +14,8 @@ @Service public class DeviceManager extends HibernateEntityDao { + @Value("${checked.day}") + private Integer checkedDay; public Criteria getCriteria() { return getSession().createCriteria(Device.class); @@ -69,7 +72,7 @@ try { Map paramMap = new HashMap(); paramMap.put("devCode", device.getDevCode()); - paramMap.put("beg", DateUtils.sdf_day.format(DateUtils.getSevenBeforeDate())); + paramMap.put("day",checkedDay); List list = getSession().createSQLQuery(sql).setProperties(paramMap).list(); if (list.size() == 0) { setOfflineBySevenNoData(device.getDevCode()); @@ -90,57 +93,62 @@ String sql = ""; if (devTypeName.equals(DeviceTypeEnum.Liquid.toString())) { sql = "select * from data_liquid " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + - " DEVCODE=:devCode"; + "where date_part('day',now()-uptime) <:day and" + + "DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Well.toString())) { sql = "select * from data_wellcover " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.WasteGas.toString())) { sql = "select * from data_harmful_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.Methane.toString())) { sql = "select * from data_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.NoiseDig.toString())) { sql = "select * from data_dig " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } else if (devTypeName.equals(DeviceTypeEnum.TempHumi.toString())) { sql = "select * from data_temp_hum " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.Meter.toString())){ sql = "select * from data_meter " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) < :day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.FLOWGAUGE.toString())){ sql = "select * from data_flowmeter " + - " where date_format(logtime,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if(devTypeName.equals(DeviceTypeEnum.RAINGAUGE.toString())){ sql = "select * from data_hyetometer " + - " where date_format(LOGTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-logtime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); }else if (devTypeName.equals(DeviceTypeEnum.LG.toString())) { sql = "select * from data_gasliquid_gas " + - " where date_format(UPTIME,'%Y-%m-%d')>=:beg and" + + " where date_part('day',now()-uptime) <:day and" + + " DEVCODE=:devCode"; + findDeviceDataInSevenDays(device, sql); + }else if(devTypeName.equals(DeviceTypeEnum.COMBUSTIBLE_GAS.toString())){ + sql = "select * from data_gas_dector " + + " where date_part('day',now()-uptime) <:day and" + " DEVCODE=:devCode"; findDeviceDataInSevenDays(device, sql); } diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index 9bbec2b..e6e2098 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -14,7 +14,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 3fc7d40..a038393 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -13,7 +13,7 @@ import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; -import org.well.well.util.PushList; +//import org.well.well.util.PushList; import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; diff --git a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java index b51a39d..dc50cbd 100644 --- a/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java +++ b/src/main/java/org/well/well/scheduler/DeviceCheckingJob.java @@ -29,9 +29,7 @@ private boolean enabled = true; // every 10 seconds - @Scheduled(cron = "0 0 5 * * ?") -// @Scheduled(cron = "0 0/1 * * * ?") -// @Scheduled(cron = "0 */2 * * * ?") + @Scheduled(cron = "${cron.time}") public void execute() { if (!enabled) { return; diff --git a/src/main/java/org/well/well/util/PushList.java b/src/main/java/org/well/well/util/PushList.java index 74568fe..ba5e1af 100644 --- a/src/main/java/org/well/well/util/PushList.java +++ b/src/main/java/org/well/well/util/PushList.java @@ -1,85 +1,85 @@ -package org.well.well.util; - -import java.util.ArrayList; -import java.util.List; - -import com.gexin.rp.sdk.base.IPushResult; -import com.gexin.rp.sdk.base.impl.ListMessage; -import com.gexin.rp.sdk.base.impl.Target; -import com.gexin.rp.sdk.http.IGtPush; -import com.gexin.rp.sdk.template.NotificationTemplate; -import com.gexin.rp.sdk.template.style.Style0; - -/** - * Created by test203 on 2019/6/11. - */ - - -public class PushList { - //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; - - private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); - private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); - private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); - - //别名推送方式 - // static String Alias1 = ""; - // static String Alias2 = ""; - static String host = "http://sdk.open.api.igexin.com/apiex.htm"; - - public static void pushToUser(List cids, String title, String content){ - // 配置返回每个用户返回用户状态,可选 - System.setProperty("gexin_pushList_needDetails", "true"); - // 配置返回每个别名及其对应cid的用户状态,可选 - // System.setProperty("gexin_pushList_needAliasDetails", "true"); - IGtPush push = new IGtPush(host, appKey, masterSecret); - // 通知透传模板 - NotificationTemplate template = notificationTemplateDemo(title,content); - ListMessage message = new ListMessage(); - message.setData(template); - // 设置消息离线,并设置离线时间 - message.setOffline(true); - // 离线有效时间,单位为毫秒,可选 - message.setOfflineExpireTime(24 * 1000 * 3600); - // 配置推送目标 - List targets = new ArrayList(); - for (String cid : cids) { - Target target = new Target(); - target.setAppId(appId); - target.setClientId(cid); - targets.add(target); - } - - // taskId用于在推送时去查找对应的message - String taskId = push.getContentId(message); - IPushResult ret = push.pushMessageToList(taskId, targets); - System.out.println(ret.getResponse().toString()); - } - - public static NotificationTemplate notificationTemplateDemo(String title,String content) { - NotificationTemplate template = new NotificationTemplate(); - // 设置APPID与APPKEY - template.setAppId(appId); - template.setAppkey(appKey); - - Style0 style = new Style0(); - // 设置通知栏标题与内容 - style.setTitle(title); - style.setText(content); - // 配置通知栏图标 - style.setLogo("icon.png"); - // 配置通知栏网络图标 - style.setLogoUrl(""); - // 设置通知是否响铃,震动,或者可清除 - style.setRing(true); - style.setVibrate(true); - style.setClearable(true); - template.setStyle(style); - - // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 - template.setTransmissionType(2); - template.setTransmissionContent("请输入您要透传的内容"); - return template; - } -} - +//package org.well.well.util; +// +//import java.util.ArrayList; +//import java.util.List; +// +//import com.gexin.rp.sdk.base.IPushResult; +//import com.gexin.rp.sdk.base.impl.ListMessage; +//import com.gexin.rp.sdk.base.impl.Target; +//import com.gexin.rp.sdk.http.IGtPush; +//import com.gexin.rp.sdk.template.NotificationTemplate; +//import com.gexin.rp.sdk.template.style.Style0; +// +///** +// * Created by test203 on 2019/6/11. +// */ +// +// +//public class PushList { +// //采用"Java SDK 快速入门", "第二步 获取访问凭证 "中获得的应用配置,用户可以自行替换; +// +// private static String appId = Configure.getProperty("gt.appId","qQqFtTBrUa7SGLjntUlpT4"); +// private static String appKey = Configure.getProperty("gt.appKey","GNjHLiqJkD6OoeZbtbdfi5"); +// private static String masterSecret = Configure.getProperty("gt.masterSecret","TZRYQknkxLAJ58uH56PeS6"); +// +// //别名推送方式 +// // static String Alias1 = ""; +// // static String Alias2 = ""; +// static String host = "http://sdk.open.api.igexin.com/apiex.htm"; +// +// public static void pushToUser(List cids, String title, String content){ +// // 配置返回每个用户返回用户状态,可选 +// System.setProperty("gexin_pushList_needDetails", "true"); +// // 配置返回每个别名及其对应cid的用户状态,可选 +// // System.setProperty("gexin_pushList_needAliasDetails", "true"); +// IGtPush push = new IGtPush(host, appKey, masterSecret); +// // 通知透传模板 +// NotificationTemplate template = notificationTemplateDemo(title,content); +// ListMessage message = new ListMessage(); +// message.setData(template); +// // 设置消息离线,并设置离线时间 +// message.setOffline(true); +// // 离线有效时间,单位为毫秒,可选 +// message.setOfflineExpireTime(24 * 1000 * 3600); +// // 配置推送目标 +// List targets = new ArrayList(); +// for (String cid : cids) { +// Target target = new Target(); +// target.setAppId(appId); +// target.setClientId(cid); +// targets.add(target); +// } +// +// // taskId用于在推送时去查找对应的message +// String taskId = push.getContentId(message); +// IPushResult ret = push.pushMessageToList(taskId, targets); +// System.out.println(ret.getResponse().toString()); +// } +// +// public static NotificationTemplate notificationTemplateDemo(String title,String content) { +// NotificationTemplate template = new NotificationTemplate(); +// // 设置APPID与APPKEY +// template.setAppId(appId); +// template.setAppkey(appKey); +// +// Style0 style = new Style0(); +// // 设置通知栏标题与内容 +// style.setTitle(title); +// style.setText(content); +// // 配置通知栏图标 +// style.setLogo("icon.png"); +// // 配置通知栏网络图标 +// style.setLogoUrl(""); +// // 设置通知是否响铃,震动,或者可清除 +// style.setRing(true); +// style.setVibrate(true); +// style.setClearable(true); +// template.setStyle(style); +// +// // 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动 +// template.setTransmissionType(2); +// template.setTransmissionContent("请输入您要透传的内容"); +// return template; +// } +//} +// diff --git a/src/main/java/org/well/well/util/SnowFlakeUtil.java b/src/main/java/org/well/well/util/SnowFlakeUtil.java index b6992a4..2002664 100644 --- a/src/main/java/org/well/well/util/SnowFlakeUtil.java +++ b/src/main/java/org/well/well/util/SnowFlakeUtil.java @@ -1,5 +1,7 @@ package org.well.well.util; +import xyz.downgoon.snowflake.Snowflake; + import javax.annotation.Resource; import java.util.Random; @@ -41,6 +43,12 @@ // return snowflake.nextId(); // } + private static Snowflake snowflake = new Snowflake(0, 2); + + public static Long getBizPhyId() { + return snowflake.nextId(); + } + public static Long getId() { // return SnowFlakeUtil.get().id(); @@ -48,6 +56,9 @@ long fraction = (long) (range * new Random().nextDouble()); return (Long) (fraction + 100000000); } + public static void main(String []args){ + System.out.println(SnowFlakeUtil.getBizPhyId()); + } } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index f6145cf..a164e04 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -14,7 +14,7 @@ #PostgreSQL db.default.driverClassName=org.postgresql.Driver -db.default.url=jdbc:postgresql://111.198.10.15:11209/smartwell +db.default.url=jdbc:postgresql://111.198.10.15:11209/smartwell_zq_cs db.default.username=postgres db.default.password=Casic203 validationQuery=SELECT 1 @@ -152,7 +152,8 @@ scheduler.enabled=true scheduler.com.casic.baseService.scheduler.DeviceCheckingJob.execute=true deviceChecking.enabled=true -#cron.time=0 37 15 * * ? +cron.time=0 0 2 * * ? +checked.day=7 # ============================================================================ # ���ͼ�� diff --git a/wellSensor.iml b/wellSensor.iml index ded6d09..22b1b11 100644 --- a/wellSensor.iml +++ b/wellSensor.iml @@ -18,7 +18,6 @@ - @@ -121,6 +120,7 @@ +