|
@@ -125,6 +125,7 @@ public class PostgreSQLClient implements ApplicationRunner {
|
|
|
// 触发器发送通知 通过 LISTEN 来监听(订阅)通知
|
|
|
statement.execute("LISTEN notify_event");
|
|
|
statement.execute("LISTEN notify_summary_event");
|
|
|
+ statement.execute("LISTEN notify_detail_event");
|
|
|
|
|
|
// 采用轮询的方式查询是否有新的通知产生,
|
|
|
// 暂时没有想到更好的方式替换掉 while 死循环。(可以采用postgresql数据库集成KafKa的方式,但是需要对数据库进行改动可能)
|
|
@@ -143,7 +144,7 @@ public class PostgreSQLClient implements ApplicationRunner {
|
|
|
String formattedDateTime = currentDateTime.format(formatter);
|
|
|
|
|
|
String id = (String) changeDataMap.get("id"); // 联锁ID
|
|
|
- String systemId = (String) changeDataMap.get("interlock_system_id"); // 联锁ID
|
|
|
+ String systemId = (String) changeDataMap.get("interlock_system_id"); // 联锁系统ID
|
|
|
|
|
|
// 根据联锁系统ID查询出 每个正常状态 对应的值
|
|
|
InterlockBase base = baseService.getById(systemId);
|
|
@@ -202,6 +203,68 @@ public class PostgreSQLClient implements ApplicationRunner {
|
|
|
detailHistoryService.save(interlockDetailHistory);
|
|
|
}
|
|
|
|
|
|
+ }else if("notify_detail_event".equals(name)){
|
|
|
+ LocalDateTime currentDateTime = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formattedDateTime = currentDateTime.format(formatter);
|
|
|
+
|
|
|
+ String id = (String) changeDataMap.get("id"); // 联锁条件ID
|
|
|
+ String summaryid = (String) changeDataMap.get("summaryid"); // 联锁ID
|
|
|
+ String systemId = (String) changeDataMap.get("interlock_system_id"); // 联锁系统ID
|
|
|
+
|
|
|
+ // 根据联锁系统ID查询出 每个正常状态 对应的值
|
|
|
+ InterlockBase base = baseService.getById(systemId);
|
|
|
+ InterlockSummary interlockSummary = summaryService.getById(summaryid);
|
|
|
+
|
|
|
+ InterlockSummaryHistory interlockSummaryHistory = InterlockSummaryHistoryConvert.INSTANCE.toHistory(interlockSummary);
|
|
|
+ interlockSummaryHistory.setSummaryOriginId(id);
|
|
|
+ interlockSummaryHistory.setTagTime(formattedDateTime);
|
|
|
+ interlockSummaryHistory.setInterlockStatusTy(base.getInterlockStatusTy());//联锁状态-正常状态-值
|
|
|
+ interlockSummaryHistory.setInterlockStatusTyName(base.getInterlockStatusTyName());//联锁状态-正常状态-名称
|
|
|
+ interlockSummaryHistory.setInterlockStatusWtyName(base.getInterlockStatusWtyName());//联锁状态-故障状态-名称
|
|
|
+ //联锁状态
|
|
|
+ if(interlockSummaryHistory.getInterlockStatus().equals(base.getInterlockStatusTy())){//正常
|
|
|
+ interlockSummaryHistory.setInterlockStatusName(base.getInterlockStatusTyName());//当前联锁状态的名称
|
|
|
+ }else{//故障
|
|
|
+ interlockSummaryHistory.setInterlockStatusName(base.getInterlockStatusWtyName());//当前联锁状态的名称
|
|
|
+ }
|
|
|
+ summaryHistoryService.save(interlockSummaryHistory);
|
|
|
+
|
|
|
+ InterlockDetail detail = detailService.getById(id);
|
|
|
+ InterlockDetailHistory interlockDetailHistory = InterlockDetailHistoryConvert.INSTANCE.toHistory(detail);
|
|
|
+ interlockDetailHistory.setSummaryid(interlockSummaryHistory.getId());
|
|
|
+ interlockDetailHistory.setSummaryOriginId(id);
|
|
|
+ interlockDetailHistory.setTagTime(formattedDateTime);
|
|
|
+ //保存当前0/1的含义
|
|
|
+ //旁路状态
|
|
|
+ interlockDetailHistory.setBypassYes(base.getBypassYes());//旁路状态-正常状态-值
|
|
|
+ interlockDetailHistory.setBypassYesName(base.getBypassYesName());//旁路状态-正常状态-名称
|
|
|
+ interlockDetailHistory.setBypassNoName(base.getBypassNoName());//旁路状态-故障状态-名称
|
|
|
+ if(interlockDetailHistory.getBypass().equals(base.getBypassYes())){//正常
|
|
|
+ interlockDetailHistory.setBypassName(base.getBypassYesName());//当前旁路状态的名称
|
|
|
+ }else{//故障
|
|
|
+ interlockDetailHistory.setBypassName(base.getBypassNoName());//当前旁路状态的名称
|
|
|
+ }
|
|
|
+ //仪表状态
|
|
|
+ interlockDetailHistory.setInstrumentStatusNormal(base.getInstrumentStatusNormal());//仪表状态-正常状态-值
|
|
|
+ interlockDetailHistory.setInstrumentStatusNormalName(base.getInstrumentStatusNormalName());//仪表状态-正常状态-名称
|
|
|
+ interlockDetailHistory.setInstrumentStatusAbnormalName(base.getInstrumentStatusAbnormalName());//仪表状态-故障状态-名称
|
|
|
+ if(interlockDetailHistory.getInstrumentStatus().equals(base.getInstrumentStatusNormal())){//正常
|
|
|
+ interlockDetailHistory.setInstrumentStatusName(base.getInstrumentStatusNormalName());//当前仪表状态的名称
|
|
|
+ }else{//故障
|
|
|
+ interlockDetailHistory.setInstrumentStatusName(base.getInstrumentStatusAbnormalName());//当前仪表状态的名称
|
|
|
+ }
|
|
|
+ //控制系统状态
|
|
|
+ interlockDetailHistory.setControlSystemStatusNormal(base.getControlSystemStatusNormal());//控制系统状态-正常状态-值
|
|
|
+ interlockDetailHistory.setControlSystemStatusNormalName(base.getControlSystemStatusNormalName());//控制系统状态-正常状态-名称
|
|
|
+ interlockDetailHistory.setControlSystemStatusAbnormalName(base.getControlSystemStatusAbnormalName());//控制系统状态-故障状态-名称
|
|
|
+ if(interlockDetailHistory.getControlSystemStatus().equals(base.getControlSystemStatusNormal())){//正常
|
|
|
+ interlockDetailHistory.setControlSystemStatusName(base.getControlSystemStatusNormalName());//当前控制系统状态的名称
|
|
|
+ }else{//故障
|
|
|
+ interlockDetailHistory.setControlSystemStatusName(base.getControlSystemStatusAbnormalName());//当前控制系统状态的名称
|
|
|
+ }
|
|
|
+ detailHistoryService.save(interlockDetailHistory);
|
|
|
+
|
|
|
}else {
|
|
|
//Map<String, Object> changeDataMap = JSONObject.parseObject(parameter, new TypeReference<Map<String, Object>>() {
|
|
|
//});
|