Commit b2e70b7e authored by zhengjiangtao's avatar zhengjiangtao

修改动环告警存入逻辑

parent 8bf63c6b
package com.yeejoin.amos.bank.webSocket; package com.yeejoin.amos.bank.webSocket;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_ABNORMAL_STATUS;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_CAUSE;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_LEVEL;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_NORMAL_STATUS;
import static com.yeejoin.amos.bank.constants.AlarmConstant.ALARM_TYPE;
import static com.yeejoin.amos.bank.constants.AlarmConstant.CLEAR_PERSON;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
...@@ -30,11 +37,13 @@ import com.yeejoin.amos.bank.common.enums.AlarmPointEnum; ...@@ -30,11 +37,13 @@ import com.yeejoin.amos.bank.common.enums.AlarmPointEnum;
import com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum; import com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum;
import com.yeejoin.amos.bank.dao.entity.Alarm; import com.yeejoin.amos.bank.dao.entity.Alarm;
import com.yeejoin.amos.bank.dao.entity.AlarmPoint; import com.yeejoin.amos.bank.dao.entity.AlarmPoint;
import com.yeejoin.amos.bank.dao.mapper.AlarmMapper;
import com.yeejoin.amos.bank.dao.repository.IAlarmRepository; import com.yeejoin.amos.bank.dao.repository.IAlarmRepository;
import com.yeejoin.amos.bank.remote.client.PatrolRemoteClient; import com.yeejoin.amos.bank.remote.client.PatrolRemoteClient;
import com.yeejoin.amos.bank.service.IAlarmPointService; import com.yeejoin.amos.bank.service.IAlarmPointService;
import com.yeejoin.amos.bank.service.IAlarmService; import com.yeejoin.amos.bank.service.IAlarmService;
import com.yeejoin.amos.bank.service.ITopographyService; import com.yeejoin.amos.bank.service.ITopographyService;
import com.yeejoin.amos.bank.utils.DateTimeKit;
import com.yeejoin.amos.bank.utils.HttpUtil; import com.yeejoin.amos.bank.utils.HttpUtil;
import com.yeejoin.amos.bank.utils.JsonUtil; import com.yeejoin.amos.bank.utils.JsonUtil;
import com.yeejoin.amos.op.core.common.response.CommonResponse; import com.yeejoin.amos.op.core.common.response.CommonResponse;
...@@ -66,6 +75,8 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient { ...@@ -66,6 +75,8 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
private static ApplicationContext allpicationContext; private static ApplicationContext allpicationContext;
private PatrolRemoteClient patrolRemoteClient; private PatrolRemoteClient patrolRemoteClient;
private AlarmMapper alarmMapper;
public static void setAllpicationContext(ApplicationContext context) { public static void setAllpicationContext(ApplicationContext context) {
allpicationContext = context; allpicationContext = context;
...@@ -88,6 +99,7 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient { ...@@ -88,6 +99,7 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
alarmService = (IAlarmService) allpicationContext.getBean(IAlarmService.class); alarmService = (IAlarmService) allpicationContext.getBean(IAlarmService.class);
patrolRemoteClient= (PatrolRemoteClient) allpicationContext.getBean(PatrolRemoteClient.class); patrolRemoteClient= (PatrolRemoteClient) allpicationContext.getBean(PatrolRemoteClient.class);
iAlarmDao =(IAlarmRepository) allpicationContext.getBean(IAlarmRepository.class); iAlarmDao =(IAlarmRepository) allpicationContext.getBean(IAlarmRepository.class);
alarmMapper = (AlarmMapper) allpicationContext.getBean(AlarmMapper.class);
try { try {
Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties"); Properties props = PropertiesLoaderUtils.loadAllProperties("application.properties");
...@@ -175,8 +187,6 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient { ...@@ -175,8 +187,6 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
log.info("send websocekt info:" + param); log.info("send websocekt info:" + param);
//告警记录 //告警记录
ArrayList<Alarm> alarmList = new ArrayList<>();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (JSONObject atrJson : alarmAttributes) { for (JSONObject atrJson : alarmAttributes) {
String atrName = (String) atrJson.get("name"); String atrName = (String) atrJson.get("name");
String alarmType = (String) atrJson.get("displayName"); String alarmType = (String) atrJson.get("displayName");
...@@ -185,41 +195,12 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient { ...@@ -185,41 +195,12 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
continue; continue;
} }
//告警记录 String sourceId = msgJson.getString("sourceId");
String queryColumn = msgJson.getString("sourceId") + "_" + alarmType; String orgCode = msgJson.getString("orgCode");
//查出当前记录中的告警记录 String authOrg = msgJson.getString("authOrg");
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn); //添加告警记录
if (curAlarmList != null && curAlarmList.size() > 0) { addRecordAlarm(alarmType, res, sourceId, orgCode, authOrg);
Alarm alarm = curAlarmList.get(0);
// if(alarm != null || AlarmPointEnum.异常.getName().equals(res)) {
alarm.setUpdateDate(df.format(new Date()));
alarm.setCurrentState(res);
alarmList.add(alarm);
// }
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(msgJson.getString("sourceId"));
alarm.setAlarmSourceIp(msgJson.getString("sourceId"));
alarm.setAlarmSourceType(alarmType);
alarm.setUpdateDate(df.format(new Date()));
String orgCode = msgJson.getString("orgCode");
String authOrg = msgJson.getString("authOrg");
String authOrgTemp = JsonUtil.arraysToString(JsonUtil.toStringArray(authOrg));
if (!ObjectUtils.isEmpty(authOrgTemp)) {
orgCode = authOrgTemp;
}
alarm.setOrgCode(orgCode);
alarm.setQueryColumn(queryColumn);
alarm.setAlarmLevel("警告告警");
alarm.setCurrentState(res);
alarmList.add(alarm);
}
} }
//alarmService.save(alarmList);
iAlarmDao.saveAll(alarmList);
log.info("Save shidu alarm records ....success");
} }
}else { }else {
throw new YeeException("eqpId 不能为空!!!"); throw new YeeException("eqpId 不能为空!!!");
...@@ -239,6 +220,59 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient { ...@@ -239,6 +220,59 @@ public class ShiduAlarmWebSocketClient extends WebSocketClient {
} }
return null; return null;
} }
/**
* 添加告警记录
* @param alarmType 告警类型
* @param alarmStatus 状态,正常 异常
* @param sourceId
* @param orgCode
* @param authOrg
*/
private void addRecordAlarm(String alarmType, String alarmStatus,String sourceId,String orgCode,String authOrg) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//告警记录
String queryColumn = sourceId + "_" + alarmType;
//查出当前记录中的告警记录
List<Alarm> curAlarmList = alarmService.findByQueryColumn(queryColumn);
if (curAlarmList != null && curAlarmList.size() > 0) {
Alarm alarm = curAlarmList.get(0);
alarm.setUpdateDate(df.format(new Date()));
if (!ObjectUtils.isEmpty(alarm.getHappenDate())) {
String subtract = DateTimeKit.getSubtract(alarm.getHappenDate());
alarm.setContinueDate(subtract);
}
if ("异常".equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
} else {
alarm.setClearDate(DateTimeKit.now());
alarm.setClearPerson(CLEAR_PERSON);
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
alarmMapper.updateAlarm(alarm);
} else {//记录无告警则新增
Alarm alarm = new Alarm();
alarm.setSourceId(sourceId);
alarm.setAlarmLevel("警告告警");
alarm.setAlarmSourceIp(sourceId);
alarm.setAlarmSourceType(ALARM_TYPE);
alarm.setClearDate("");
alarm.setContinueDate("");
alarm.setEnsureDate("");
alarm.setEnsurePerson("");
alarm.setOrgCode(orgCode);
alarm.setHappenDate(DateTimeKit.now());
alarm.setQueryColumn( sourceId + "_" + alarmType);
if ("异常".equals(alarmStatus)) {
alarm.setCurrentState(ALARM_ABNORMAL_STATUS);
iAlarmDao.save(alarm);
} else {
alarm.setCurrentState(ALARM_NORMAL_STATUS);
}
}
log.info("Save shidu alarm records ....success");
}
@Override @Override
public void onClose(int paramInt, String paramString, boolean paramBoolean) { public void onClose(int paramInt, String paramString, boolean paramBoolean) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment