diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java index 199a6b0..820b1a2 100644 --- a/src/main/java/org/well/well/resp/WasteGasResponse.java +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -26,7 +26,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wasteGasManager.processNormalData(jsonObject,devCode); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java index 199a6b0..820b1a2 100644 --- a/src/main/java/org/well/well/resp/WasteGasResponse.java +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -26,7 +26,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wasteGasManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index 8003f20..45be4c0 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -23,7 +23,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wellManager.processNormalData(jsonObject,devCode); diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java index 199a6b0..820b1a2 100644 --- a/src/main/java/org/well/well/resp/WasteGasResponse.java +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -26,7 +26,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wasteGasManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index 8003f20..45be4c0 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -23,7 +23,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wellManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7fb9125..ddb6e49 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -35,7 +35,7 @@ public static AbstractResponse makeResponse(String content) { JSONObject json = JSONObject.fromObject(content); if (null == json) return null; - AbstractResponse response = abstractResponseHashMap.get(json.get("devType").toString()); + AbstractResponse response = abstractResponseHashMap.get(json.getString("devType")); return response; } diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java index 199a6b0..820b1a2 100644 --- a/src/main/java/org/well/well/resp/WasteGasResponse.java +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -26,7 +26,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wasteGasManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index 8003f20..45be4c0 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -23,7 +23,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wellManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7fb9125..ddb6e49 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -35,7 +35,7 @@ public static AbstractResponse makeResponse(String content) { JSONObject json = JSONObject.fromObject(content); if (null == json) return null; - AbstractResponse response = abstractResponseHashMap.get(json.get("devType").toString()); + AbstractResponse response = abstractResponseHashMap.get(json.getString("devType")); return response; } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index b441c56..61ea57f 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -88,7 +88,7 @@ #============================================================================ # log #============================================================================ -log.base=..//logs//sink.log +log.base=D://logs//sink.log log.pattern.default=%d %5p [%t] %c:%L - %m%n log.console.jansi=true log.file.enable=true diff --git a/pom.xml b/pom.xml index 8913eea..f7c0fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -48,17 +48,6 @@ 5.1.25 - - - - - - - - - - - org.springframework diff --git a/src/main/java/org/well/well/domain/AlarmJob.java b/src/main/java/org/well/well/domain/AlarmJob.java index a992d85..8a0eb25 100644 --- a/src/main/java/org/well/well/domain/AlarmJob.java +++ b/src/main/java/org/well/well/domain/AlarmJob.java @@ -22,7 +22,6 @@ * 主键 */ @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; /** diff --git a/src/main/java/org/well/well/domain/AlarmRecord.java b/src/main/java/org/well/well/domain/AlarmRecord.java index 7ffc8eb..5b77c6e 100644 --- a/src/main/java/org/well/well/domain/AlarmRecord.java +++ b/src/main/java/org/well/well/domain/AlarmRecord.java @@ -46,7 +46,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.getId(); - this.jobId = jobId; + this.jobId = SnowFlakeUtil.getId(); this.alarmType = alarmType; this.alarmLevel = alarmLevel; this.alarmContent = alarmContent; diff --git a/src/main/java/org/well/well/kafka/KafkaConsumer.java b/src/main/java/org/well/well/kafka/KafkaConsumer.java index c0f154e..6cc8690 100644 --- a/src/main/java/org/well/well/kafka/KafkaConsumer.java +++ b/src/main/java/org/well/well/kafka/KafkaConsumer.java @@ -1,7 +1,6 @@ package org.well.well.kafka; import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.ConsumerRecords; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,7 +12,7 @@ import java.util.concurrent.Executors; public class KafkaConsumer implements MessageListener { - private static final Logger LOGGER = LoggerFactory.getLogger(TopicApiUseKafkaListener.class); + private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumer.class); private ClassPathXmlApplicationContext ac; private static ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -34,11 +33,6 @@ String value = record.value(); LOGGER.info("######收到kafka消息:" + value); - - System.out.println("######收到kafka消息:" + value); - System.out.println("######消费数据条数:" + (++i)); - - AbstractResponse resp = ResponseResolver.makeResponse(value); if (resp == null) return; if (ac == null) intContext(); diff --git a/src/main/java/org/well/well/manager/AlarmJobManager.java b/src/main/java/org/well/well/manager/AlarmJobManager.java index 698284d..31bbc64 100644 --- a/src/main/java/org/well/well/manager/AlarmJobManager.java +++ b/src/main/java/org/well/well/manager/AlarmJobManager.java @@ -10,6 +10,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.domain.AlarmJob; import org.well.well.domain.Device; +import org.well.well.util.SnowFlakeUtil; import java.util.Date; import java.util.HashMap; @@ -54,8 +55,9 @@ } } - public AlarmJob saveData(String devCode, String wellCode, String devTypeName, String jobType) { + public AlarmJob saveData(Long jobId,String devCode, String wellCode, String devTypeName, String jobType) { AlarmJob alarmJob = new AlarmJob(); + alarmJob.setId(jobId); alarmJob.setDevcode(devCode); alarmJob.setWellCode(wellCode); alarmJob.setJobStatus("0"); diff --git a/src/main/java/org/well/well/manager/LGGasManager.java b/src/main/java/org/well/well/manager/LGGasManager.java index 61aea14..74c2cbd 100644 --- a/src/main/java/org/well/well/manager/LGGasManager.java +++ b/src/main/java/org/well/well/manager/LGGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -54,22 +55,23 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("gas")) { continue; } - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); //1.存数据 @@ -85,7 +87,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -111,14 +113,22 @@ if (device == null) { return; } + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //3.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -130,8 +140,8 @@ } public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { diff --git a/src/main/java/org/well/well/manager/LGLiquidManager.java b/src/main/java/org/well/well/manager/LGLiquidManager.java index 740045b..882dc4b 100644 --- a/src/main/java/org/well/well/manager/LGLiquidManager.java +++ b/src/main/java/org/well/well/manager/LGLiquidManager.java @@ -13,10 +13,7 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.LGLiquid; +import org.well.well.domain.*; import org.well.well.dto.LiquidDTO; import org.well.well.util.SnowFlakeUtil; @@ -44,7 +41,8 @@ private DeviceManager deviceManager; @Resource private BusWellManager busWellManager; - + @Resource + private AlarmJobManager alarmJobManager; private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); @@ -69,21 +67,22 @@ save(liquid); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+liquidDTO.getUptime()); } return resultMap; } public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { if (null == ((JSONObject) jsonArray.get(i)).get("liquid")) { continue; } - String level = ((JSONObject) jsonArray.get(i)).get("liquid").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); + String level = ((JSONObject) jsonArray.get(i)).getString("liquid"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); if (StringUtils.isBlank(level)) continue; Float levelFloat = new BigDecimal(level).floatValue() / 100; @@ -126,9 +125,14 @@ if (device == null) { return; } - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null?SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.LG.toString(), "1"); + } //2.写入新的告警 - alarmRecordManager.saveData(null, "1", null, + alarmRecordManager.saveData(jobId, "1", null, alarmContent, level, device, devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 @@ -137,6 +141,7 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/LiquidManager.java b/src/main/java/org/well/well/manager/LiquidManager.java index 714a156..e12ac06 100644 --- a/src/main/java/org/well/well/manager/LiquidManager.java +++ b/src/main/java/org/well/well/manager/LiquidManager.java @@ -51,7 +51,7 @@ Map resultMap = new HashMap(); try { - Long id=SnowFlakeUtil.getId(); + Long id = SnowFlakeUtil.getId(); Liquid liquid = new Liquid(); liquid.setDbId(id); liquid.setDevId(liquidDTO.getDevCode()); @@ -88,36 +88,35 @@ //3.清离线 deviceManager.clearOffline(devCode); //4.清除设备告警 - alarmRecordManager.clearAlarmByNormalData(devCode, "2"); + alarmRecordManager.clearAlarmByNormalData(devCode, ""); String thresh = alarmRuleManager.getRuleStr(devCode, DeviceTypeEnum.Liquid.toString());//获取报警阈值 if (Float.valueOf(level) >= Float.valueOf(thresh)) {//超限 Device device = deviceManager.getDeviceByDevCode(devCode); - AlarmRecord alarmRecord = alarmRecordManager.getThresholdAlarm(devCode); //获取报警等级 String alarmContent = LiquidAlarmEnum.OVER_THRESH.getName(); - if (null != alarmRecord) {//已存在报警 - //1.清除上一条告警记录 - alarmRecordManager.clearAlarm(devCode, "1", ""); - alarmRecordManager.saveData(null, "1", null, alarmContent, - level, alarmRecord.getDevice(), devCode, alarmRecord.getWellCode(), upTime, alarmContent); - } else {//不存在上一条报警时 - if (device == null) return;//未注册设备舍弃 - //2.写入新的告警 - alarmRecordManager.saveData( null, "1", null, - alarmContent, level, device, - devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); + //不存在上一条报警时 + if (device == null) return;//未注册设备舍弃 + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId = alarmJob == null ? SnowFlakeUtil.getId() : alarmJob.getId(); + if (alarmJob == null) { + alarmJobManager.saveData(jobId, devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Liquid.toString(), "1"); + } + //2.写入新的告警 + alarmRecordManager.saveData(jobId, "1", null, + alarmContent, level, device, + devCode, busWell == null ? "" : busWell.getWellCode(), upTime, alarmContent); // //3.toDo:向app推送报警消息 - ThreadUtil.excuteMsg( null, alarmContent, busWell == null ? "" : busWell.getWellCode()); - } + ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + } else {//未超限 - //1.清除之前的报警 - alarmRecordManager.clearAlarmByNormalData(devCode, "1"); - //2.结束之前的工单 -// alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + + //1.结束之前的工单 + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/MeterManager.java b/src/main/java/org/well/well/manager/MeterManager.java index 3f0cfee..dee7fad 100644 --- a/src/main/java/org/well/well/manager/MeterManager.java +++ b/src/main/java/org/well/well/manager/MeterManager.java @@ -7,6 +7,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.SnowFlakeUtil; import javax.annotation.Resource; import java.util.Map; @@ -86,7 +87,7 @@ Device device = deviceManager.getDeviceByDevCode(devCode); if (device == null) return;//未注册设备舍弃 //1.生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.Meter.toString(),"1"); //2.写入新的告警 alarmRecordManager.saveData(alarmJob.getId(), "1", null, diff --git a/src/main/java/org/well/well/manager/MethaneManager.java b/src/main/java/org/well/well/manager/MethaneManager.java index 641e24c..ee90c14 100644 --- a/src/main/java/org/well/well/manager/MethaneManager.java +++ b/src/main/java/org/well/well/manager/MethaneManager.java @@ -2,26 +2,25 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import org.hibernate.Criteria; -import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.well.well.AlarmEnumDTO.MethaneAlarmEnum; +import org.well.well.base.DeviceTypeEnum; import org.well.well.core.hibernate.HibernateEntityDao; import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; +import org.well.well.domain.AlarmJob; import org.well.well.domain.BusWell; import org.well.well.domain.Device; import org.well.well.domain.Methane; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; import java.sql.Timestamp; -import java.text.ParseException; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -58,6 +57,7 @@ save(methane); } catch (Exception e) { e.printStackTrace(); + logger.error("----uptime时间转换失败-----:"+uptime); } return resultMap; } @@ -65,16 +65,14 @@ @Transactional(rollbackFor = Exception.class) public void processNormalData(JSONObject jsonObject, String devCode) { - String cell = jsonObject.get("cell").toString(); - JSONArray jsonArray = (JSONArray) jsonObject.get("datas"); + String cell = jsonObject.getString("cell"); + JSONArray jsonArray = jsonObject.getJSONArray("datas"); BusWell busWell = busWellManager.getWellByDevCode(devCode); for (int i = 0; i < jsonArray.size(); i++) { try { - String gas = ((JSONObject) jsonArray.get(i)).get("gas").toString(); - String upTime = ((JSONObject) jsonArray.get(i)).get("uptime").toString(); -// if(isExist(devCode,upTime)) continue;//去重 + String gas = ((JSONObject) jsonArray.get(i)).getString("gas"); + String upTime = ((JSONObject) jsonArray.get(i)).getString("uptime"); gas = String.format("%.2f", Double.valueOf(gas)); - //1.存数据 saveData(devCode, busWell == null ? "" : busWell.getWellCode(), gas, cell, upTime);//存储采集数据 //2.有无超限处理流程(判断最后一条数据) @@ -85,7 +83,7 @@ List ruleRankList = alarmRuleManager.getRuleRank(devCode); float rankThresh = 0; String isAlarm = "1"; - if (ruleRankList.size() > 0) { + if (ruleRankList.size() > 0&&ruleRankList.get(0)[0]!=null) { Object rankValue = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[2]; rankThresh = rankValue != null ? Float.valueOf(rankValue.toString()) : 0; isAlarm = ((Object[]) ruleRankList.get(ruleRankList.size() - 1))[4].toString(); @@ -107,14 +105,21 @@ } if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Methane.toString(), "1"); + } //1.写入新的告警 - alarmRecordManager.saveData(null, "1", alarmLevel, + alarmRecordManager.saveData(jobId, "1", alarmLevel, alarmContent, gas, device, devCode, busWell != null ? busWell.getWellCode() : "", upTime, alarmContent); //2.toDo:向app推送报警消息 ThreadUtil.excuteMsg(null, alarmContent, busWell == null ? "" : busWell.getWellCode()); + }else { + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); } //3.清离线 deviceManager.clearOffline(devCode); @@ -128,8 +133,8 @@ public void processAlarmData(JSONObject jsonObject, String devCode) { - JSONArray jsonArray = (JSONArray) jsonObject.get("eventType"); - String logTime = (jsonObject.get("logTime")).toString(); + JSONArray jsonArray = jsonObject.getJSONArray("eventType"); + String logTime = jsonObject.getString("logTime"); for (int i = 0; i < jsonArray.size(); i++) { try { //1.清除同类型的报警信息 diff --git a/src/main/java/org/well/well/manager/NoiseDigManager.java b/src/main/java/org/well/well/manager/NoiseDigManager.java index a61fc08..4ef351c 100644 --- a/src/main/java/org/well/well/manager/NoiseDigManager.java +++ b/src/main/java/org/well/well/manager/NoiseDigManager.java @@ -14,10 +14,8 @@ import org.well.well.core.util.DateUtils; import org.well.well.core.util.StringUtils; import org.well.well.core.util.ThreadUtil; -import org.well.well.domain.AlarmRecord; -import org.well.well.domain.BusWell; -import org.well.well.domain.Device; -import org.well.well.domain.NoiseDig; +import org.well.well.domain.*; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -126,7 +124,12 @@ if (device == null) return;//未注册设备舍弃 - + AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode, "1"); + Long jobId=alarmJob==null? SnowFlakeUtil.getId():alarmJob.getId(); + if(alarmJob==null){ + alarmJobManager.saveData(jobId,devCode, busWell != null ? + busWell.getWellCode() : "", DeviceTypeEnum.Dig.toString(), "1"); + } //2.写入新的告警 alarmRecordManager.saveData(null, "1", alarmLevel, alarmContent, val, device, @@ -139,6 +142,8 @@ } else {//未超限 //1.清除之前的报警 alarmRecordManager.clearAlarmByNormalData(devCode, "1"); + alarmJobManager.updateAlarmJobByDevCode(devCode, "数据正常,系统自动结束工单"); + } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/manager/TempHumiManager.java b/src/main/java/org/well/well/manager/TempHumiManager.java index ed44d6b..c09b306 100644 --- a/src/main/java/org/well/well/manager/TempHumiManager.java +++ b/src/main/java/org/well/well/manager/TempHumiManager.java @@ -15,6 +15,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -140,7 +141,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.TempHumi.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell.getWellCode()); @@ -158,7 +159,7 @@ AlarmJob alarmJob =null; if("1".equals(isJob)){ //1.若开启工单,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell.getWellCode(), DeviceTypeEnum.TempHumi.toString(),"1"); } @@ -206,7 +207,7 @@ //3.若无工单写入新的工单 AlarmJob alarmJob = alarmJobManager.getByDevAndType(devCode,"0"); if (null == alarmJob) { - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.TempHumi.toString(),"0"); } //4.写入新的报警 diff --git a/src/main/java/org/well/well/manager/WasteGasManager.java b/src/main/java/org/well/well/manager/WasteGasManager.java index 43837db..917f45c 100644 --- a/src/main/java/org/well/well/manager/WasteGasManager.java +++ b/src/main/java/org/well/well/manager/WasteGasManager.java @@ -14,6 +14,7 @@ import org.well.well.core.util.ThreadUtil; import org.well.well.domain.*; import org.well.well.util.PushList; +import org.well.well.util.SnowFlakeUtil; import javax.annotation.Resource; import java.io.IOException; @@ -193,7 +194,7 @@ Long jobID = alarmRecord.getJobId(); if ("1".equals(isJob) && null == jobID) { //生成新的工单 - AlarmJob alarmJob = alarmJobManager.saveData(devCode, alarmRecord.getWellCode(), + AlarmJob alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, alarmRecord.getWellCode(), DeviceTypeEnum.WasteGas.toString(), "1"); jobID=alarmJob.getId(); ThreadUtil.excuteMsg(jobID, "",busWell == null ? "" : busWell.getWellCode()); @@ -211,7 +212,7 @@ AlarmJob alarmJob = null; if ("1".equals(isJob)) { //1.开启工单的话,生成新的工单 - alarmJob = alarmJobManager.saveData(devCode, busWell != null ? + alarmJob = alarmJobManager.saveData(SnowFlakeUtil.getId(),devCode, busWell != null ? busWell.getWellCode() : "", DeviceTypeEnum.WasteGas.toString(), "1"); } diff --git a/src/main/java/org/well/well/resp/LGResponse.java b/src/main/java/org/well/well/resp/LGResponse.java index 6f7ae9d..8a16698 100644 --- a/src/main/java/org/well/well/resp/LGResponse.java +++ b/src/main/java/org/well/well/resp/LGResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 lgGasManager.processNormalData(jsonObject,devCode); lgLiquidManager.processNormalData(jsonObject,devCode); @@ -48,8 +47,8 @@ } else if (mType[4].equals(json.get("mType"))) {//三码存储 try { - String imei = jsonObject.get("imei").toString(); - String iccid = jsonObject.get("iccid").toString(); + String imei = jsonObject.getString("imei"); + String iccid = jsonObject.getString("iccid"); imeiManager.saveData(devCode,imei,iccid); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/well/well/resp/LiquidResponse.java b/src/main/java/org/well/well/resp/LiquidResponse.java index 6541017..5dc5dc0 100644 --- a/src/main/java/org/well/well/resp/LiquidResponse.java +++ b/src/main/java/org/well/well/resp/LiquidResponse.java @@ -27,7 +27,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType")) || (mType[3].equals(json.get("mType")))) {//处理上报数据 liquidManager.processNormalData(jsonObject, devCode); diff --git a/src/main/java/org/well/well/resp/MethaneResponse.java b/src/main/java/org/well/well/resp/MethaneResponse.java index 3d4ae4a..d6a2fbd 100644 --- a/src/main/java/org/well/well/resp/MethaneResponse.java +++ b/src/main/java/org/well/well/resp/MethaneResponse.java @@ -26,9 +26,8 @@ DeviceConfigManager deviceConfigManager = ac.getBean(DeviceConfigManager.class); ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); - String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); - JSONObject jsonObject = (JSONObject) json.get("mBody"); + String devCode = json.getString("devCode"); + JSONObject jsonObject = json.getJSONObject("mBody"); if (mType[0].equals(json.get("mType")) || mType[3].equals(json.get("mType"))) {//存储上报数据 methaneManager.processNormalData(jsonObject,devCode); } else if (mType[1].equals(json.get("mType"))) {//存储报警事件 diff --git a/src/main/java/org/well/well/resp/WasteGasResponse.java b/src/main/java/org/well/well/resp/WasteGasResponse.java index 199a6b0..820b1a2 100644 --- a/src/main/java/org/well/well/resp/WasteGasResponse.java +++ b/src/main/java/org/well/well/resp/WasteGasResponse.java @@ -26,7 +26,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wasteGasManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/resp/WellResponse.java b/src/main/java/org/well/well/resp/WellResponse.java index 8003f20..45be4c0 100644 --- a/src/main/java/org/well/well/resp/WellResponse.java +++ b/src/main/java/org/well/well/resp/WellResponse.java @@ -23,7 +23,6 @@ ImeiManager imeiManager = ac.getBean(ImeiManager.class); JSONObject json = JSONObject.fromObject(this.getContent()); String devCode = json.get("devCode").toString(); - logger.info("--------RECEIVE:设备编号:" + devCode + ",上传数据:" + json.toString() + "-------"); JSONObject jsonObject = (JSONObject) json.get("mBody"); if (mType[0].equals(json.get("mType"))) {//存储上报数据 wellManager.processNormalData(jsonObject,devCode); diff --git a/src/main/java/org/well/well/util/ResponseResolver.java b/src/main/java/org/well/well/util/ResponseResolver.java index 7fb9125..ddb6e49 100644 --- a/src/main/java/org/well/well/util/ResponseResolver.java +++ b/src/main/java/org/well/well/util/ResponseResolver.java @@ -35,7 +35,7 @@ public static AbstractResponse makeResponse(String content) { JSONObject json = JSONObject.fromObject(content); if (null == json) return null; - AbstractResponse response = abstractResponseHashMap.get(json.get("devType").toString()); + AbstractResponse response = abstractResponseHashMap.get(json.getString("devType")); return response; } diff --git a/src/main/resources/wellSensor/application.properties b/src/main/resources/wellSensor/application.properties index b441c56..61ea57f 100644 --- a/src/main/resources/wellSensor/application.properties +++ b/src/main/resources/wellSensor/application.properties @@ -88,7 +88,7 @@ #============================================================================ # log #============================================================================ -log.base=..//logs//sink.log +log.base=D://logs//sink.log log.pattern.default=%d %5p [%t] %c:%L - %m%n log.console.jansi=true log.file.enable=true diff --git a/target/classes/wellSensor/application.properties b/target/classes/wellSensor/application.properties index b441c56..61ea57f 100644 --- a/target/classes/wellSensor/application.properties +++ b/target/classes/wellSensor/application.properties @@ -88,7 +88,7 @@ #============================================================================ # log #============================================================================ -log.base=..//logs//sink.log +log.base=D://logs//sink.log log.pattern.default=%d %5p [%t] %c:%L - %m%n log.console.jansi=true log.file.enable=true