代码调整

This commit is contained in:
tiger_zhou 2023-09-20 17:11:12 +08:00
parent 922cb14c08
commit 417dc8b3dd
3 changed files with 41 additions and 23 deletions

View File

@ -44,7 +44,7 @@ public class AlertListenerJob implements ApplicationRunner {
@Override
public void accept(NccAlertInfo alertInfo) {
/*if (!alertInfo.isMock()) {
/* if (!alertInfo.isMock()) {
AlertRecord record = convertToRecord(alertInfo);
alertRecordRepository.save(record);
alertInfo.setId(record.getId());

View File

@ -110,7 +110,7 @@ public class AlertMockService {
bb.setTimestamp(System.currentTimeMillis() / 1000);
bb.setId(dto.getFrist());
bb.setIpRtuStusDown(true);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_RTU, station.getCommon().getId(), bb, station.getName(), AlertDeviceType.DEVICE_TYPE_RTU, false);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_RTU, station.getCommon().getId(), bb, station.getName(), AlertDeviceType.DEVICE_TYPE_RTU, true);
}
case PLATFORM_DOOR_CANNOT_OPEN -> {
Optional<Platform> pfOptional = LineGraphicDataRepository.getDevices(lineId, Platform.class).filter(d -> dto.getDeviceCodes().contains(d.getCode())).findAny();
@ -121,7 +121,7 @@ public class AlertMockService {
platform.setTimestamp(System.currentTimeMillis() / 1000);
Platform pf = pfOptional.orElse(null);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_PLATFORM, pf.getCommon().getId(), platform, platform.getId(), AlertDeviceType.DEVICE_TYPE_PLATFORM,
false);
true);
}
case PLATFORM_DOOR_CANNOT_CLOSE -> {
Optional<Platform> pfOptional = LineGraphicDataRepository.getDevices(lineId, Platform.class).filter(d -> dto.getDeviceCodes().contains(d.getCode())).findAny();
@ -133,7 +133,7 @@ public class AlertMockService {
platform.setTimestamp(System.currentTimeMillis() / 1000);
Platform pf = pfOptional.orElse(null);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_PLATFORM, pf.getCommon().getId(), platform, platform.getId(), AlertDeviceType.DEVICE_TYPE_PLATFORM,
false);
true);
}
/* case SWITCH_LOST -> {
Optional<Turnout> turnoutOptional = LineGraphicDataRepository.getDevices(lineId, Turnout.class).filter(d -> dto.getDeviceCodes().contains(d.getCode())).findAny();
@ -155,7 +155,7 @@ public class AlertMockService {
switchs.setReceiveTime(System.currentTimeMillis());
switchs.setIpSingleSwitchStusLostIndication(true);
Turnout turnout = turnoutOptional.orElse(null);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_SWITCH, turnout.getCommon().getId(), switchs, dto.getAll(), AlertDeviceType.DEVICE_TYPE_SWITCH, false);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_SWITCH, turnout.getCommon().getId(), switchs, dto.getAll(), AlertDeviceType.DEVICE_TYPE_SWITCH, true);
}
case AXLE_LED_RED, AXLE_LED_ORANGE, AXLE_LED_ORANGE_MOST, AXLE_LED_RED_MOST -> {
Optional<LogicSection> lsOptional = LineGraphicDataRepository.getDevices(lineId, LogicSection.class).filter(d -> dto.getDeviceCodes().contains(d.getCode())).findAny();
@ -164,7 +164,7 @@ public class AlertMockService {
track.setLineId(dto.getLineId());
track.setTimestamp(System.currentTimeMillis() / 1000);
LogicSection ls = lsOptional.orElse(null);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_TRACK, ls.getCommon().getId(), track, dto.getAll(), AlertDeviceType.DEVICE_TYPE_TRACK, false);
return this.alertInfoService.createAlert(dto.getAlertType(), AlertDeviceType.DEVICE_TYPE_TRACK, ls.getCommon().getId(), track, dto.getAll(), AlertDeviceType.DEVICE_TYPE_TRACK, true);
}
case TRAIN_EB_ATP -> {
@ -176,7 +176,7 @@ public class AlertMockService {
track.setTimestamp(System.currentTimeMillis() / 1000);
LogicSection ls = lsOptional.orElse(null);
return this.alertInfoService.createAlert(AlertType.TRAIN_EB_ATP, AlertDeviceType.DEVICE_TYPE_TRAIN, ls.getCommon().getId(), track, "测试车组号", AlertDeviceType.DEVICE_TYPE_TRAIN, false);
return this.alertInfoService.createAlert(AlertType.TRAIN_EB_ATP, AlertDeviceType.DEVICE_TYPE_TRAIN, ls.getCommon().getId(), track, "测试车组号", AlertDeviceType.DEVICE_TYPE_TRAIN, true);
}
default -> throw new IllegalStateException("Unexpected value: " + dto.getAlertType());

View File

@ -87,22 +87,25 @@ public class AlertRecordService {
private static final List<String> FILTER_LIST = List.of(TipTimeConfig.EVENING_PEARK.name(), TipTimeConfig.MORN_PEAK.name()/*, TipTimeConfig.NORMAL_UNPEARK.name()*/);
private AlertTip findTipFromAlertTime(AlertRecord ar, String tipType, Long areaConfigId, boolean hasAreaConfigId) {
int hour = LocalDateTime.now().getHour();
if (Objects.nonNull(ar.getAlertTime())) {
hour = ar.getAlertTime().getHour();
}
Collection<AlertTipTimeConfig> collection = this.timeConfigService.getCache();
if (CollectionUtils.isEmpty(collection)) {
log.info("高低峰配置数据为空,返回默认的辅助消息");
return this.findAlertTip(tipType, areaConfigId, Optional.empty(), hasAreaConfigId);
} else if (Objects.isNull(ar)) {
return this.findAlertTip(tipType, areaConfigId, Optional.empty(), hasAreaConfigId);
} else {
int hour = LocalDateTime.now().getHour();
if (Objects.nonNull(ar.getAlertTime())) {
hour = ar.getAlertTime().getHour();
}
int finalHour = hour;
Optional<AlertTipTimeConfig> normalOptional = collection.stream().filter(d -> StringUtils.equals(TipTimeConfig.NORMAL_UNPEARK.name(), d.getTimeType())).findFirst();
Optional<AlertTipTimeConfig> tipTimeConfigOptional = collection.stream().filter(d -> FILTER_LIST.contains(d.getTimeType()) && finalHour >= d.getStartHour() && finalHour <= d.getEndHour())
.findAny();
if (tipTimeConfigOptional.isEmpty() && normalOptional.isEmpty()) {
//高低峰都没有找到
log.info("高低峰均未匹配,告警时间(小时) {}", finalHour);
log.info("高低峰均未匹配,告警时间(小时) {}", hour);
return this.findAlertTip(tipType, areaConfigId, Optional.empty(), hasAreaConfigId);
} else if (tipTimeConfigOptional.isPresent()) {
//匹配上高峰
@ -135,24 +138,39 @@ public class AlertRecordService {
public AlertTip confirm(Long recordId, String tipType, Long areaConfigId) {
AlertRecord ar = this.alertRecordRepository.getById(recordId);
Long newAreaConfigId = this.findAreaConfig(ar, tipType);
if (Objects.isNull(newAreaConfigId)) {
newAreaConfigId = areaConfigId;
Long newAreaConfigId = null;
if (Objects.nonNull(ar)) {
newAreaConfigId = this.findAreaConfig(ar, tipType);
if (Objects.isNull(newAreaConfigId)) {
newAreaConfigId = areaConfigId;
}
}
boolean hasAreaConfigId = Objects.nonNull(newAreaConfigId) && newAreaConfigId > 0L;
AlertTip tip = this.findTipFromAlertTime(ar, tipType, newAreaConfigId, hasAreaConfigId);
this.alertRecordRepository.update(Wrappers.lambdaUpdate(AlertRecord.class)
.set(AlertRecord::getAlertTipId, tip.getId()).set(AlertRecord::getAlarmStatus, 1)
.set(hasAreaConfigId, AlertRecord::getAlertLocationId, newAreaConfigId)
.set(AlertRecord::getAlertType, tipType)
.eq(AlertRecord::getId, recordId).isNull(AlertRecord::getAlarmStatus));
if (ar.getMock()) {
this.alertRecordRepository.removeById(ar.getId());
} else {
this.alertRecordRepository.update(Wrappers.lambdaUpdate(AlertRecord.class)
.set(AlertRecord::getAlertTipId, tip.getId()).set(AlertRecord::getAlarmStatus, 1)
.set(hasAreaConfigId, AlertRecord::getAlertLocationId, newAreaConfigId)
.set(AlertRecord::getAlertType, tipType)
.eq(AlertRecord::getId, recordId).isNull(AlertRecord::getAlarmStatus));
}
return tip;
}
public void failAlarm(Long recordId) {
this.alertRecordRepository.update(Wrappers.lambdaUpdate(AlertRecord.class)
.set(AlertRecord::getAlarmStatus, 0)
.eq(AlertRecord::getId, recordId).isNull(AlertRecord::getAlarmStatus));
AlertRecord ar = this.alertRecordRepository.getById(recordId);
if (ar.getMock()) {
this.alertRecordRepository.removeById(ar.getId());
} else {
this.alertRecordRepository.update(Wrappers.lambdaUpdate(AlertRecord.class)
.set(AlertRecord::getAlarmStatus, 0)
.eq(AlertRecord::getId, recordId).isNull(AlertRecord::getAlarmStatus));
}
}