代码调整
This commit is contained in:
parent
d72eedf7b7
commit
0038a63ecb
@ -3,15 +3,7 @@ package club.joylink.xiannccda.ats.message.collect.convertor;
|
||||
import club.joylink.xiannccda.alert.core.AlertManager;
|
||||
import club.joylink.xiannccda.ats.message.MessageId;
|
||||
import club.joylink.xiannccda.ats.message.collect.DeviceDataRepository.DataTypeEnum;
|
||||
import club.joylink.xiannccda.ats.warn.BlueDisplayAlertEvent;
|
||||
import club.joylink.xiannccda.ats.warn.PlatformAlertEvent;
|
||||
import club.joylink.xiannccda.ats.warn.SwitchAndTrackLedAlertEvent;
|
||||
import club.joylink.xiannccda.ats.warn.SwitchLostAlertEvent;
|
||||
import club.joylink.xiannccda.ats.warn.TrainAlertEvent;
|
||||
import club.joylink.xiannccda.dto.protos.DeviceStatusProto.Platform;
|
||||
import club.joylink.xiannccda.dto.protos.DeviceStatusProto.Rtu;
|
||||
import club.joylink.xiannccda.dto.protos.DeviceStatusProto.Switch;
|
||||
import club.joylink.xiannccda.dto.protos.DeviceStatusProto.Track;
|
||||
import club.joylink.xiannccda.dto.protos.TrainProto.TrainInfo;
|
||||
import com.google.protobuf.GeneratedMessageV3.Builder;
|
||||
import java.util.List;
|
||||
|
@ -35,21 +35,12 @@ public class DeviceStatusData extends AbstractData {
|
||||
try {
|
||||
lock.lock();
|
||||
if (CollectionUtils.isNotEmpty(this.statusVOMap)) {
|
||||
|
||||
this.statusVOMap.get(lineId).clear();
|
||||
}
|
||||
/*statusMap = this.statusVOMap.get(field);
|
||||
if (Objects.nonNull(statusMap)) {
|
||||
for (String key : keys) {
|
||||
if (StringUtils.isNotEmpty(key)) {
|
||||
|
||||
statusMap.remove(key);
|
||||
}
|
||||
Map<String, Message> lineDeviceStatus = this.statusVOMap.get(lineId);
|
||||
if (CollectionUtils.isNotEmpty(lineDeviceStatus)) {
|
||||
lineDeviceStatus.clear();
|
||||
}
|
||||
}*/
|
||||
}/* catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} */ finally {
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public class TrainDataSource extends AbstractData {
|
||||
/**
|
||||
* 列车groupId 与所在设备的双向映射
|
||||
*/
|
||||
private BiMap<String, String> trainOnDeviceTrackMap = HashBiMap.create();
|
||||
private BiMap<String, String> trainOnDeviceTrackMap = Maps.synchronizedBiMap(HashBiMap.create());
|
||||
|
||||
private final static String TRAIN_INFO_NAME = "TrainInfo";
|
||||
private final static String TRAIN_INFO_ID = "groupId";
|
||||
@ -87,7 +87,8 @@ public class TrainDataSource extends AbstractData {
|
||||
*/
|
||||
private void putTrainDeviceMapper(MessageOrBuilder trainInfo) {
|
||||
if (trainInfo instanceof TrainInfo.Builder trainBuild) {
|
||||
trainOnDeviceTrackMap.put(trainBuild.getGroupId(), trainBuild.getDevName());
|
||||
|
||||
trainOnDeviceTrackMap.forcePut(trainBuild.getGroupId(), trainBuild.getDevName());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,10 @@ public class PlatformAlertMonitoringTask implements AlertMonitoringTask {
|
||||
if (CollectionUtils.isNotEmpty(builderMap)) {
|
||||
GeneratedMessageV3.Builder builder = builderMap.get(platformCode);
|
||||
if (Objects.nonNull(builder)) {
|
||||
return (Platform.Builder) builder;
|
||||
Platform.Builder platformBuild = (Platform.Builder) builder;
|
||||
log.info("车站报点未找到对应的屏蔽门信息,线路[{}] 列车车次号[{}] 车站id[{}] 站台门id[{}] 上下行[{}] 屏蔽门状态[{}]"
|
||||
, record.getLineId(), record.getGlobalId(), record.getStationId(), record.getSideId(), isUpWay, platformBuild);
|
||||
return platformBuild;
|
||||
}
|
||||
log.info("车站报点未找到对应的屏蔽门信息,线路[{}] 列车车次号[{}] 车站id[{}] 站台门id[{}] 上下行[{}] 解析屏蔽门code[{}]"
|
||||
, record.getLineId(), record.getGlobalId(), record.getStationId(), record.getSideId(), isUpWay, platformCode);
|
||||
@ -101,7 +104,7 @@ public class PlatformAlertMonitoringTask implements AlertMonitoringTask {
|
||||
|
||||
private void handle(TrainRecord.Builder record, boolean isUpWay) {
|
||||
Platform.Builder platformBuild = this.parsePlatform(record, isUpWay);
|
||||
if (Objects.isNull(platformBuild)) {
|
||||
if (Objects.isNull(platformBuild) || Objects.equals(false, platformBuild.getTrainberth())) {
|
||||
return;
|
||||
}
|
||||
InUsedScheduleData scheduleData = DeviceDataRepository.findDataSouce(String.valueOf(record.getLineId()), DataTypeEnum.TRAIN_PLAN);
|
||||
@ -112,20 +115,19 @@ public class PlatformAlertMonitoringTask implements AlertMonitoringTask {
|
||||
, record.getLineId(), record.getGlobalId(), record.getStationId(), record.getSideId(), isUpWay, platformBuild.getId());
|
||||
return;
|
||||
}
|
||||
|
||||
int lineId = platformBuild.getLineId();
|
||||
GuardConfig guardConfig = configService.getGuardConfig(lineId);
|
||||
long stayTimeSecond = planBuild.getDTime() - planBuild.getATime();
|
||||
LayoutGraphicsProto.Platform platform = LineGraphicDataRepository.getDeviceByCode(lineId, platformBuild.getId(), LayoutGraphicsProto.Platform.class);
|
||||
if (platformBuild.getTrainberth()) {
|
||||
boolean isOpen = alertManager.deviceIsExist(lineId, PLATFORM_IS_OPEN, platformBuild.getId());
|
||||
boolean isClose = alertManager.deviceIsExist(lineId, PLATFORM_IS_CLOSE, platformBuild.getId());
|
||||
if (!isOpen && !isClose && this.timeOver(platformBuild.getReceiveTime(), guardConfig.getCanNotOpenTimes())) {
|
||||
this.alert(platform, platformBuild, AlertType.PLATFORM_DOOR_CANNOT_OPEN, PLATFORM_IS_OPEN, isUpWay);
|
||||
} else if (isOpen && this.timeOver(platformBuild.getReceiveTime(), (int) stayTimeSecond + guardConfig.getCanNotCloseTimes())) {
|
||||
this.alert(platform, platformBuild, AlertType.PLATFORM_DOOR_CANNOT_CLOSE, PLATFORM_IS_CLOSE, isUpWay);
|
||||
} else if (platformBuild.getPsdOpen()) {
|
||||
alertManager.putAlterDevice(platformBuild.getLineId(), PLATFORM_IS_OPEN, platformBuild.getId());
|
||||
}
|
||||
boolean isOpen = alertManager.deviceIsExist(lineId, PLATFORM_IS_OPEN, platformBuild.getId());
|
||||
boolean isClose = alertManager.deviceIsExist(lineId, PLATFORM_IS_CLOSE, platformBuild.getId());
|
||||
if (!isOpen && !isClose && this.timeOver(platformBuild.getReceiveTime(), guardConfig.getCanNotOpenTimes())) {
|
||||
this.alert(platform, platformBuild, AlertType.PLATFORM_DOOR_CANNOT_OPEN, PLATFORM_IS_OPEN, isUpWay);
|
||||
} else if (isOpen && this.timeOver(platformBuild.getReceiveTime(), (int) stayTimeSecond + guardConfig.getCanNotCloseTimes())) {
|
||||
this.alert(platform, platformBuild, AlertType.PLATFORM_DOOR_CANNOT_CLOSE, PLATFORM_IS_CLOSE, isUpWay);
|
||||
} else if (platformBuild.getPsdOpen()) {
|
||||
alertManager.putAlterDevice(platformBuild.getLineId(), PLATFORM_IS_OPEN, platformBuild.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ public class TrainReacrdAlertListener implements AlertSourceEventListener<TrainR
|
||||
if (trainRecord.getTrainType() == TrainTypeEnum.PlannedTrain.getType()) {
|
||||
this.platformAlertMonitoringTask.putTrainRecord(trainRecord);
|
||||
} else {
|
||||
|
||||
this.platformAlertMonitoringTask.remoceTrainRecord(trainRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -71,10 +71,6 @@ public class LineTrainMessageServer implements IMessageServer {
|
||||
}
|
||||
WsLineTrainMessage.Builder trainMessage = WsLineTrainMessage.newBuilder();
|
||||
for (TrainInfo.Builder trainInfo : trainInfoData.getAllTrain()) {
|
||||
// aaa(trainInfo);
|
||||
// trainInfoData.fillTypeStatusAndRemove(trainInfo, TrainTypeStatus.TRAIN_BLOCK);
|
||||
// trainInfoData.fillTypeStatusAndRemove(trainInfo, TrainTypeStatus.TRAIN_REMOVE);
|
||||
// trainInfoData.fillTypeStatusAndRemove(trainInfo, TrainTypeStatus.TRAIN_RECORD);
|
||||
trainInfoData.fillTypeStatusAndRemove(trainInfo);
|
||||
trainInfoData.reput(trainInfo);
|
||||
trainMessage.addTrainInfo(trainInfo);
|
||||
|
Loading…
Reference in New Issue
Block a user