【增加股道实体类】
【移动部分实体类】
This commit is contained in:
parent
76d9a0efbd
commit
56aefb9db4
@ -134,7 +134,7 @@ public class CtcRunPlanParam implements Cloneable {
|
|||||||
/**
|
/**
|
||||||
* 列车运行计划作业
|
* 列车运行计划作业
|
||||||
*/
|
*/
|
||||||
private Map<CtcStationRunPlanLog.RunPlanTask, Integer> runPlanTaskMap = new HashMap();
|
private Map<CtcStationRunPlanLog.RunPlanTask, Integer> runPlanTaskMap = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除时构造实体
|
* 删除时构造实体
|
||||||
@ -271,7 +271,7 @@ public class CtcRunPlanParam implements Cloneable {
|
|||||||
public CtcRunPlanParam clone() {
|
public CtcRunPlanParam clone() {
|
||||||
try {
|
try {
|
||||||
CtcRunPlanParam clone = (CtcRunPlanParam) super.clone();
|
CtcRunPlanParam clone = (CtcRunPlanParam) super.clone();
|
||||||
Map<CtcStationRunPlanLog.RunPlanTask, Integer> map = new HashMap(this.runPlanTaskMap.size());
|
Map<CtcStationRunPlanLog.RunPlanTask, Integer> map = new HashMap<>(this.runPlanTaskMap.size());
|
||||||
map.putAll(this.runPlanTaskMap);
|
map.putAll(this.runPlanTaskMap);
|
||||||
clone.setRunPlanTaskMap(map);
|
clone.setRunPlanTaskMap(map);
|
||||||
return clone;
|
return clone;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package club.joylink.rtss.simulation.cbtc.CTC;
|
package club.joylink.rtss.simulation.cbtc.CTC;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.ATS.operation.vo.CtcRunPlanParam;
|
import club.joylink.rtss.simulation.cbtc.ATS.operation.vo.CtcRunPlanParam;
|
||||||
import club.joylink.rtss.simulation.cbtc.CI.CiApiService;
|
|
||||||
import club.joylink.rtss.simulation.cbtc.CTC.data.*;
|
import club.joylink.rtss.simulation.cbtc.CTC.data.*;
|
||||||
import club.joylink.rtss.simulation.cbtc.Simulation;
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
import club.joylink.rtss.simulation.cbtc.data.SimulationDataRepository;
|
import club.joylink.rtss.simulation.cbtc.data.SimulationDataRepository;
|
||||||
@ -11,7 +10,6 @@ import club.joylink.rtss.simulation.cbtc.data.vo.TrainInfo;
|
|||||||
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityTrain;
|
import club.joylink.rtss.simulation.cbtc.data.vr.VirtualRealityTrain;
|
||||||
import club.joylink.rtss.vo.client.SocketMessageVO;
|
import club.joylink.rtss.vo.client.SocketMessageVO;
|
||||||
import club.joylink.rtss.vo.client.WebSocketMessageType;
|
import club.joylink.rtss.vo.client.WebSocketMessageType;
|
||||||
import club.joylink.rtss.vo.client.ctc.CtcRunPlanVO;
|
|
||||||
import club.joylink.rtss.vo.client.factory.SocketMessageFactory;
|
import club.joylink.rtss.vo.client.factory.SocketMessageFactory;
|
||||||
import club.joylink.rtss.websocket.StompMessageService;
|
import club.joylink.rtss.websocket.StompMessageService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -243,18 +241,18 @@ public class CTCLogicLoop {
|
|||||||
public void sendAllRunPlanChangeMessage(Simulation simulation, Set<String> userIds) {
|
public void sendAllRunPlanChangeMessage(Simulation simulation, Set<String> userIds) {
|
||||||
// CTC运行日志发消息
|
// CTC运行日志发消息
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
Map<String, CtcRunPlanVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
Map<String, CtcStationRunPlanLogVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
||||||
List<CtcRunPlanVO> messageList = null;
|
List<CtcStationRunPlanLogVO> messageList = null;
|
||||||
if (CollectionUtils.isEmpty(ctcRunPlanVOMap)) {
|
if (CollectionUtils.isEmpty(ctcRunPlanVOMap)) {
|
||||||
List<CtcStationRunPlanLog> allRunPlanList = simulation.getCtcRepository().getAllRunPlanList();
|
List<CtcStationRunPlanLog> allRunPlanList = simulation.getCtcRepository().getAllRunPlanList();
|
||||||
messageList = new ArrayList<>(allRunPlanList.size());
|
messageList = new ArrayList<>(allRunPlanList.size());
|
||||||
String mapKey = null;
|
String mapKey = null;
|
||||||
CtcRunPlanVO ctcRunPlanVO = null;
|
CtcStationRunPlanLogVO ctcStationRunPlanLogVO = null;
|
||||||
for (CtcStationRunPlanLog runPlan : allRunPlanList) {
|
for (CtcStationRunPlanLog runPlan : allRunPlanList) {
|
||||||
mapKey = runPlan.getStation().getCode() + "_" + runPlan.getCode();
|
mapKey = runPlan.getStation().getCode() + "_" + runPlan.getCode();
|
||||||
ctcRunPlanVO = new CtcRunPlanVO(runPlan);
|
ctcStationRunPlanLogVO = new CtcStationRunPlanLogVO(runPlan);
|
||||||
ctcRunPlanVOMap.put(mapKey, ctcRunPlanVO);
|
ctcRunPlanVOMap.put(mapKey, ctcStationRunPlanLogVO);
|
||||||
messageList.add(ctcRunPlanVO);
|
messageList.add(ctcStationRunPlanLogVO);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
messageList = ctcRunPlanVOMap.values().stream().collect(Collectors.toList());
|
messageList = ctcRunPlanVOMap.values().stream().collect(Collectors.toList());
|
||||||
@ -269,19 +267,19 @@ public class CTCLogicLoop {
|
|||||||
* @param simulation 仿真实体
|
* @param simulation 仿真实体
|
||||||
*/
|
*/
|
||||||
private void sendRunPlanChangeMessage(Simulation simulation) {
|
private void sendRunPlanChangeMessage(Simulation simulation) {
|
||||||
Map<String, CtcRunPlanVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
Map<String, CtcStationRunPlanLogVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
||||||
List<CtcStationRunPlanLog> allRunPlanList = simulation.getCtcRepository().getAllRunPlanList();
|
List<CtcStationRunPlanLog> allRunPlanList = simulation.getCtcRepository().getAllRunPlanList();
|
||||||
List<CtcRunPlanVO> messageList = new ArrayList<>();
|
List<CtcStationRunPlanLogVO> messageList = new ArrayList<>();
|
||||||
allRunPlanList.forEach(runPlan -> {
|
allRunPlanList.forEach(runPlan -> {
|
||||||
String mapKey = runPlan.getStation().getCode() + "_" + runPlan.getCode();
|
String mapKey = runPlan.getStation().getCode() + "_" + runPlan.getCode();
|
||||||
CtcRunPlanVO runPlanVO = ctcRunPlanVOMap.get(mapKey);
|
CtcStationRunPlanLogVO runPlanVO = ctcRunPlanVOMap.get(mapKey);
|
||||||
if (runPlanVO == null) {
|
if (runPlanVO == null) {
|
||||||
ctcRunPlanVOMap.put(mapKey, new CtcRunPlanVO(runPlan));
|
ctcRunPlanVOMap.put(mapKey, new CtcStationRunPlanLogVO(runPlan));
|
||||||
messageList.add(ctcRunPlanVOMap.get(mapKey));
|
messageList.add(ctcRunPlanVOMap.get(mapKey));
|
||||||
} else {
|
} else {
|
||||||
CtcRunPlanVO changeCtcRunPlanVo = runPlanVO.compareAndChange(runPlan);
|
CtcStationRunPlanLogVO changeCtcStationRunPlanLogVo = runPlanVO.compareAndChange(runPlan);
|
||||||
if (changeCtcRunPlanVo != null) {
|
if (changeCtcStationRunPlanLogVo != null) {
|
||||||
messageList.add(changeCtcRunPlanVo);
|
messageList.add(changeCtcStationRunPlanLogVo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -297,15 +295,15 @@ public class CTCLogicLoop {
|
|||||||
* @param simulation 仿真实体
|
* @param simulation 仿真实体
|
||||||
*/
|
*/
|
||||||
public void sendRunPlanRemoveMessage(Simulation simulation) {
|
public void sendRunPlanRemoveMessage(Simulation simulation) {
|
||||||
Map<String, CtcRunPlanVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
Map<String, CtcStationRunPlanLogVO> ctcRunPlanVOMap = simulation.getCtcRepository().getRunPlanStatusVOMap();
|
||||||
List<CtcRunPlanVO> ctcRunPlanVOList = ctcRunPlanVOMap.values().stream()
|
List<CtcStationRunPlanLogVO> ctcStationRunPlanLogVOList = ctcRunPlanVOMap.values().stream()
|
||||||
.filter(vo -> simulation.getCtcRepository().getRunPlanByRunPlanCode(vo.getStationCode(), vo.getCode()) == null)
|
.filter(vo -> simulation.getCtcRepository().getRunPlanByRunPlanCode(vo.getStationCode(), vo.getCode()) == null)
|
||||||
.map(vo -> new CtcRunPlanVO(vo.getStationCode(), vo.getCode()))
|
.map(vo -> new CtcStationRunPlanLogVO(vo.getStationCode(), vo.getCode()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!CollectionUtils.isEmpty(ctcRunPlanVOList)) {
|
if (!CollectionUtils.isEmpty(ctcStationRunPlanLogVOList)) {
|
||||||
// 移除已删除的数据
|
// 移除已删除的数据
|
||||||
ctcRunPlanVOList.forEach(vo -> ctcRunPlanVOMap.remove(vo.getStationCode() + "_" + vo.getCode()));
|
ctcStationRunPlanLogVOList.forEach(vo -> ctcRunPlanVOMap.remove(vo.getStationCode() + "_" + vo.getCode()));
|
||||||
sendCtcMessage(simulation.getId(), ctcRunPlanVOList
|
sendCtcMessage(simulation.getId(), ctcStationRunPlanLogVOList
|
||||||
, WebSocketMessageType.SIMULATION_CTC_RUN_PLAN_REMOVE, simulation.getSimulationUserIds());
|
, WebSocketMessageType.SIMULATION_CTC_RUN_PLAN_REMOVE, simulation.getSimulationUserIds());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package club.joylink.rtss.simulation.cbtc.CTC.data;
|
|||||||
|
|
||||||
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
|
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
|
||||||
import club.joylink.rtss.simulation.cbtc.ATS.operation.vo.CtcRunPlanParam;
|
import club.joylink.rtss.simulation.cbtc.ATS.operation.vo.CtcRunPlanParam;
|
||||||
import club.joylink.rtss.vo.client.ctc.CtcRunPlanVO;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -79,7 +78,7 @@ public class CtcRepository {
|
|||||||
/**
|
/**
|
||||||
* 运行日志消息状态
|
* 运行日志消息状态
|
||||||
*/
|
*/
|
||||||
private final Map<String, CtcRunPlanVO> runPlanStatusVOMap = new HashMap<>();
|
private final Map<String, CtcStationRunPlanLogVO> runPlanStatusVOMap = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车务管理端运行计划状态
|
* 车务管理端运行计划状态
|
||||||
|
@ -133,7 +133,7 @@ public class CtcStationRunPlanLog {
|
|||||||
this.transfinite = paramInfo.getTransfinite(); // 超限等级
|
this.transfinite = paramInfo.getTransfinite(); // 超限等级
|
||||||
if (CollectionUtils.isEmpty(paramInfo.getRunPlanTaskMap())) { // 运行计划任务
|
if (CollectionUtils.isEmpty(paramInfo.getRunPlanTaskMap())) { // 运行计划任务
|
||||||
this.runPlanTaskItemMap = paramInfo.getRunPlanTaskMap().keySet().stream()
|
this.runPlanTaskItemMap = paramInfo.getRunPlanTaskMap().keySet().stream()
|
||||||
.collect(Collectors.toMap(t -> t, t -> new RunPlanTaskItem(t)));
|
.collect(Collectors.toMap(t -> t, RunPlanTaskItem::new));
|
||||||
} else {
|
} else {
|
||||||
this.runPlanTaskItemMap = new HashMap<>(0);
|
this.runPlanTaskItemMap = new HashMap<>(0);
|
||||||
}
|
}
|
||||||
@ -385,10 +385,10 @@ public class CtcStationRunPlanLog {
|
|||||||
/**
|
/**
|
||||||
* 初始化到、发运行计划条目
|
* 初始化到、发运行计划条目
|
||||||
*
|
*
|
||||||
* @param simulation
|
* @param simulation 仿真实体
|
||||||
* @param paramInfo
|
* @param paramInfo 参数信息
|
||||||
* @param arrive
|
* @param arrive 到发标识
|
||||||
* @return
|
* @return 运行条目
|
||||||
*/
|
*/
|
||||||
public static RunPlanItem createRunPlanItem(Simulation simulation, CtcRunPlanParam paramInfo, boolean arrive) {
|
public static RunPlanItem createRunPlanItem(Simulation simulation, CtcRunPlanParam paramInfo, boolean arrive) {
|
||||||
// 车站\邻站
|
// 车站\邻站
|
||||||
@ -443,8 +443,6 @@ public class CtcStationRunPlanLog {
|
|||||||
CARS_OPEN_TO_TRAFFIC_EMPTY, // 运用车空车
|
CARS_OPEN_TO_TRAFFIC_EMPTY, // 运用车空车
|
||||||
CARS_OPEN_TO_TRAFFIC_NO, // 非运用车
|
CARS_OPEN_TO_TRAFFIC_NO, // 非运用车
|
||||||
CABOOSE, // 守车
|
CABOOSE, // 守车
|
||||||
VAN, // 客货车
|
|
||||||
GOODS_VAN // 货车
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -461,6 +459,7 @@ public class CtcStationRunPlanLog {
|
|||||||
/**
|
/**
|
||||||
* 运行作业类型
|
* 运行作业类型
|
||||||
*/
|
*/
|
||||||
|
@Getter
|
||||||
public enum RunPlanTask {
|
public enum RunPlanTask {
|
||||||
// 技术停点
|
// 技术停点
|
||||||
Technical_Stop_Point("技术停点"),
|
Technical_Stop_Point("技术停点"),
|
||||||
@ -569,6 +568,7 @@ public class CtcStationRunPlanLog {
|
|||||||
/**
|
/**
|
||||||
* 计划属性类型
|
* 计划属性类型
|
||||||
*/
|
*/
|
||||||
|
@Getter
|
||||||
public enum PlanPropertiesType {
|
public enum PlanPropertiesType {
|
||||||
PASSENGER("客运"), // 客运
|
PASSENGER("客运"), // 客运
|
||||||
GOODS_TRAIN("货运"), // 货运
|
GOODS_TRAIN("货运"), // 货运
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package club.joylink.rtss.vo.client.ctc;
|
package club.joylink.rtss.simulation.cbtc.CTC.data;
|
||||||
|
|
||||||
import club.joylink.rtss.simulation.cbtc.CTC.data.CtcStationRunPlanLog;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@ -15,7 +14,7 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class CtcRunPlanVO {
|
public class CtcStationRunPlanLogVO {
|
||||||
/**
|
/**
|
||||||
* 编码
|
* 编码
|
||||||
*/
|
*/
|
||||||
@ -106,12 +105,12 @@ public class CtcRunPlanVO {
|
|||||||
*/
|
*/
|
||||||
private Map<CtcStationRunPlanLog.RunPlanTask, CtcStationRunPlanLog.RunPlanTaskItem> runPlanTaskItemMap;
|
private Map<CtcStationRunPlanLog.RunPlanTask, CtcStationRunPlanLog.RunPlanTaskItem> runPlanTaskItemMap;
|
||||||
|
|
||||||
public CtcRunPlanVO(String stationCode, String code) {
|
public CtcStationRunPlanLogVO(String stationCode, String code) {
|
||||||
this.stationCode = stationCode;
|
this.stationCode = stationCode;
|
||||||
this.code = code;
|
this.code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CtcRunPlanVO(CtcStationRunPlanLog ctcStationRunPlanLog) {
|
public CtcStationRunPlanLogVO(CtcStationRunPlanLog ctcStationRunPlanLog) {
|
||||||
this.code = ctcStationRunPlanLog.getCode();
|
this.code = ctcStationRunPlanLog.getCode();
|
||||||
if (ctcStationRunPlanLog.getStation() != null) {
|
if (ctcStationRunPlanLog.getStation() != null) {
|
||||||
this.stationCode = ctcStationRunPlanLog.getStation().getCode();
|
this.stationCode = ctcStationRunPlanLog.getStation().getCode();
|
||||||
@ -151,12 +150,12 @@ public class CtcRunPlanVO {
|
|||||||
* @param runPlanLog
|
* @param runPlanLog
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public CtcRunPlanVO compareAndChange(CtcStationRunPlanLog runPlanLog) {
|
public CtcStationRunPlanLogVO compareAndChange(CtcStationRunPlanLog runPlanLog) {
|
||||||
CtcRunPlanVO changeCtcRunPlanVO = new CtcRunPlanVO(runPlanLog.getStation().getCode(), runPlanLog.getCode());
|
CtcStationRunPlanLogVO changeCtcStationRunPlanLogVO = new CtcStationRunPlanLogVO(runPlanLog.getStation().getCode(), runPlanLog.getCode());
|
||||||
boolean change = false;
|
boolean change = false;
|
||||||
if (!Objects.equals(this.delete, runPlanLog.getDelete())) {
|
if (!Objects.equals(this.delete, runPlanLog.getDelete())) {
|
||||||
this.delete = runPlanLog.getDelete();
|
this.delete = runPlanLog.getDelete();
|
||||||
changeCtcRunPlanVO.setDelete(runPlanLog.getDelete());
|
changeCtcStationRunPlanLogVO.setDelete(runPlanLog.getDelete());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 存在不一样的选项
|
// 存在不一样的选项
|
||||||
@ -175,66 +174,66 @@ public class CtcRunPlanVO {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (runPlanLog.getRunPlanTaskItemMap().size() != this.getRunPlanTaskItemMap().size() || !CollectionUtils.isEmpty(modifyMap)) {
|
if (runPlanLog.getRunPlanTaskItemMap().size() != this.getRunPlanTaskItemMap().size() || !CollectionUtils.isEmpty(modifyMap)) {
|
||||||
changeCtcRunPlanVO.setRunPlanTaskItemMap(modifyMap);
|
changeCtcStationRunPlanLogVO.setRunPlanTaskItemMap(modifyMap);
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 是否客运
|
// 是否客运
|
||||||
if (!Objects.equals(this.passenger, runPlanLog.getPassenger())) {
|
if (!Objects.equals(this.passenger, runPlanLog.getPassenger())) {
|
||||||
this.passenger = runPlanLog.getPassenger();
|
this.passenger = runPlanLog.getPassenger();
|
||||||
changeCtcRunPlanVO.setPassenger(runPlanLog.getPassenger());
|
changeCtcStationRunPlanLogVO.setPassenger(runPlanLog.getPassenger());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 重点列车
|
// 重点列车
|
||||||
if (!Objects.equals(this.keyTrains, runPlanLog.getKeyTrains())) {
|
if (!Objects.equals(this.keyTrains, runPlanLog.getKeyTrains())) {
|
||||||
this.keyTrains = runPlanLog.getKeyTrains();
|
this.keyTrains = runPlanLog.getKeyTrains();
|
||||||
changeCtcRunPlanVO.setKeyTrains(runPlanLog.getKeyTrains());
|
changeCtcStationRunPlanLogVO.setKeyTrains(runPlanLog.getKeyTrains());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 是否军用
|
// 是否军用
|
||||||
if (!Objects.equals(this.military, runPlanLog.getMilitary())) {
|
if (!Objects.equals(this.military, runPlanLog.getMilitary())) {
|
||||||
this.military = runPlanLog.getMilitary();
|
this.military = runPlanLog.getMilitary();
|
||||||
changeCtcRunPlanVO.setMilitary(runPlanLog.getMilitary());
|
changeCtcStationRunPlanLogVO.setMilitary(runPlanLog.getMilitary());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 运行股道与基本径路不一致
|
// 运行股道与基本径路不一致
|
||||||
if (!Objects.equals(this.trackDiscordant, runPlanLog.getTrackDiscordant())) {
|
if (!Objects.equals(this.trackDiscordant, runPlanLog.getTrackDiscordant())) {
|
||||||
this.trackDiscordant = runPlanLog.getTrackDiscordant();
|
this.trackDiscordant = runPlanLog.getTrackDiscordant();
|
||||||
changeCtcRunPlanVO.setTrackSectionCode(runPlanLog.getTrackSectionCode());
|
changeCtcStationRunPlanLogVO.setTrackSectionCode(runPlanLog.getTrackSectionCode());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 出入口与基本径路不一致
|
// 出入口与基本径路不一致
|
||||||
if (!Objects.equals(this.entryOutDiscordant, runPlanLog.getEntryOutDiscordant())) {
|
if (!Objects.equals(this.entryOutDiscordant, runPlanLog.getEntryOutDiscordant())) {
|
||||||
this.entryOutDiscordant = runPlanLog.getEntryOutDiscordant();
|
this.entryOutDiscordant = runPlanLog.getEntryOutDiscordant();
|
||||||
changeCtcRunPlanVO.setEntryOutDiscordant(runPlanLog.getEntryOutDiscordant());
|
changeCtcStationRunPlanLogVO.setEntryOutDiscordant(runPlanLog.getEntryOutDiscordant());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 超限等级
|
// 超限等级
|
||||||
if (!Objects.equals(this.transfinite, runPlanLog.getTransfinite())) {
|
if (!Objects.equals(this.transfinite, runPlanLog.getTransfinite())) {
|
||||||
this.transfinite = runPlanLog.getTransfinite();
|
this.transfinite = runPlanLog.getTransfinite();
|
||||||
changeCtcRunPlanVO.setTransfinite(runPlanLog.getTransfinite());
|
changeCtcStationRunPlanLogVO.setTransfinite(runPlanLog.getTransfinite());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 记事
|
// 记事
|
||||||
if (!Objects.equals(this.remark, runPlanLog.getRemark())) {
|
if (!Objects.equals(this.remark, runPlanLog.getRemark())) {
|
||||||
this.remark = runPlanLog.getRemark();
|
this.remark = runPlanLog.getRemark();
|
||||||
changeCtcRunPlanVO.setRemark(runPlanLog.getRemark());
|
changeCtcStationRunPlanLogVO.setRemark(runPlanLog.getRemark());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 晚点原因
|
// 晚点原因
|
||||||
if (!Objects.equals(this.getLateReason(), runPlanLog.getLateReason())) {
|
if (!Objects.equals(this.getLateReason(), runPlanLog.getLateReason())) {
|
||||||
this.lateReason = runPlanLog.getLateReason();
|
this.lateReason = runPlanLog.getLateReason();
|
||||||
changeCtcRunPlanVO.setLateReason(runPlanLog.getLateReason());
|
changeCtcStationRunPlanLogVO.setLateReason(runPlanLog.getLateReason());
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
// 到站条目
|
// 到站条目
|
||||||
RunPlanItem changeArriveItem = modifyRunPlanItemInfo(runPlanLog.getArriveRunPlan(), this.arriveRunPlan);
|
RunPlanItem changeArriveItem = modifyRunPlanItemInfo(runPlanLog.getArriveRunPlan(), this.arriveRunPlan);
|
||||||
changeCtcRunPlanVO.setArriveRunPlan(changeArriveItem);
|
changeCtcStationRunPlanLogVO.setArriveRunPlan(changeArriveItem);
|
||||||
change = change || changeArriveItem != null;
|
change = change || changeArriveItem != null;
|
||||||
// 发车条目
|
// 发车条目
|
||||||
RunPlanItem changeDepartItem = modifyRunPlanItemInfo(runPlanLog.getDepartRunPlan(), this.departRunPlan);
|
RunPlanItem changeDepartItem = modifyRunPlanItemInfo(runPlanLog.getDepartRunPlan(), this.departRunPlan);
|
||||||
changeCtcRunPlanVO.setDepartRunPlan(changeDepartItem);
|
changeCtcStationRunPlanLogVO.setDepartRunPlan(changeDepartItem);
|
||||||
change = change || changeDepartItem != null;
|
change = change || changeDepartItem != null;
|
||||||
return change ? changeCtcRunPlanVO : null;
|
return change ? changeCtcStationRunPlanLogVO : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@ -0,0 +1,109 @@
|
|||||||
|
package club.joylink.rtss.simulation.cbtc.CTC.data;
|
||||||
|
|
||||||
|
import club.joylink.rtss.simulation.cbtc.data.map.Section;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 股道与区段关联信息
|
||||||
|
*/
|
||||||
|
@Setter
|
||||||
|
@Getter
|
||||||
|
public class TrackSection {
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String code;
|
||||||
|
/**
|
||||||
|
* 名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区段
|
||||||
|
*/
|
||||||
|
private Section section;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 性质
|
||||||
|
*/
|
||||||
|
private TrackNature trackNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上下行
|
||||||
|
*/
|
||||||
|
private DirectionType direction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接发车类型
|
||||||
|
*/
|
||||||
|
private TrainType trainType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可以接发超限类型
|
||||||
|
*/
|
||||||
|
private boolean transfinite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站台
|
||||||
|
*/
|
||||||
|
private StandType standType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否动车轨
|
||||||
|
*/
|
||||||
|
private boolean motorCar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有上水设备
|
||||||
|
*/
|
||||||
|
private boolean waterSupply;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有吸污设备
|
||||||
|
*/
|
||||||
|
private boolean sewageAbsorption;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否军用
|
||||||
|
*/
|
||||||
|
private boolean military;
|
||||||
|
|
||||||
|
public TrackSection(Section section) {
|
||||||
|
this.code = section.getCode();
|
||||||
|
this.name = section.getName();
|
||||||
|
this.section = section;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 股道性质
|
||||||
|
*/
|
||||||
|
public enum TrackNature {
|
||||||
|
RIGHT_TRACK, // 正线
|
||||||
|
ARRIVE_DEPART_TRACK // 到发线
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 方向类型
|
||||||
|
*/
|
||||||
|
public enum DirectionType {
|
||||||
|
// 上行、下行、双向
|
||||||
|
S, X, D
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列车类型
|
||||||
|
*/
|
||||||
|
public enum TrainType {
|
||||||
|
VAN, // 客货车
|
||||||
|
GOODS_VAN, // 货车
|
||||||
|
PASSENGER, // 客车
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站台类型:无、低、高
|
||||||
|
*/
|
||||||
|
public enum StandType {
|
||||||
|
NO, LOW, HIGH
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package club.joylink.rtss.simulation.cbtc.CTC.data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 股道与区段关联信息
|
||||||
|
*/
|
||||||
|
public class TrackSectionVO {
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区段
|
||||||
|
*/
|
||||||
|
private String sectionCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 性质
|
||||||
|
*/
|
||||||
|
private TrackSection.TrackNature trackNature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上下行
|
||||||
|
*/
|
||||||
|
private TrackSection.DirectionType direction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接发车类型
|
||||||
|
*/
|
||||||
|
private TrackSection.TrainType trainType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可以接发超限类型
|
||||||
|
*/
|
||||||
|
private Boolean transfinite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站台
|
||||||
|
*/
|
||||||
|
private TrackSection.StandType standType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否动车轨
|
||||||
|
*/
|
||||||
|
private Boolean motorCar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有上水设备
|
||||||
|
*/
|
||||||
|
private Boolean waterSupply;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有吸污设备
|
||||||
|
*/
|
||||||
|
private Boolean sewageAbsorption;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否军用
|
||||||
|
*/
|
||||||
|
private Boolean military;
|
||||||
|
|
||||||
|
public TrackSectionVO(TrackSection trackSection) {
|
||||||
|
this.code = trackSection.getCode();
|
||||||
|
this.name = trackSection.getName();
|
||||||
|
if (trackSection.getSection() != null) {
|
||||||
|
this.sectionCode = trackSection.getSection().getCode();
|
||||||
|
}
|
||||||
|
this.trackNature = trackSection.getTrackNature();
|
||||||
|
this.direction = trackSection.getDirection();
|
||||||
|
this.trainType = trackSection.getTrainType();
|
||||||
|
this.transfinite = trackSection.isTransfinite();
|
||||||
|
this.standType = trackSection.getStandType();
|
||||||
|
this.motorCar = trackSection.isMotorCar();
|
||||||
|
this.waterSupply = trackSection.isWaterSupply();
|
||||||
|
this.sewageAbsorption = trackSection.isSewageAbsorption();
|
||||||
|
this.military = trackSection.isMilitary();
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package club.joylink.rtss.vo.client.factory;
|
|||||||
|
|
||||||
import club.joylink.rtss.constants.BusinessConsts.WebSocketSubscribeTopic;
|
import club.joylink.rtss.constants.BusinessConsts.WebSocketSubscribeTopic;
|
||||||
import club.joylink.rtss.simulation.cbtc.CTC.data.CtcStationRunPlanLog;
|
import club.joylink.rtss.simulation.cbtc.CTC.data.CtcStationRunPlanLog;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.CTC.data.CtcStationRunPlanLogVO;
|
||||||
import club.joylink.rtss.simulation.cbtc.Simulation;
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
import club.joylink.rtss.simulation.cbtc.communication.vo.TrainPosition;
|
import club.joylink.rtss.simulation.cbtc.communication.vo.TrainPosition;
|
||||||
import club.joylink.rtss.simulation.cbtc.conversation.Conversation;
|
import club.joylink.rtss.simulation.cbtc.conversation.Conversation;
|
||||||
@ -15,7 +16,6 @@ import club.joylink.rtss.util.JsonUtils;
|
|||||||
import club.joylink.rtss.vo.LoginUserInfoVO;
|
import club.joylink.rtss.vo.LoginUserInfoVO;
|
||||||
import club.joylink.rtss.vo.client.SocketMessageVO;
|
import club.joylink.rtss.vo.client.SocketMessageVO;
|
||||||
import club.joylink.rtss.vo.client.WebSocketMessageType;
|
import club.joylink.rtss.vo.client.WebSocketMessageType;
|
||||||
import club.joylink.rtss.vo.client.ctc.CtcRunPlanVO;
|
|
||||||
import club.joylink.rtss.vo.client.passenger.PassengerFlowMessage2TD;
|
import club.joylink.rtss.vo.client.passenger.PassengerFlowMessage2TD;
|
||||||
import club.joylink.rtss.vo.client.psl.PslStatus;
|
import club.joylink.rtss.vo.client.psl.PslStatus;
|
||||||
import club.joylink.rtss.vo.client.runplan.RunPlanEChartsDataVO;
|
import club.joylink.rtss.vo.client.runplan.RunPlanEChartsDataVO;
|
||||||
@ -406,11 +406,11 @@ public class SocketMessageFactory {
|
|||||||
/**
|
/**
|
||||||
* CTC 列车运行计划变化消息
|
* CTC 列车运行计划变化消息
|
||||||
*/
|
*/
|
||||||
public static SocketMessageVO<List<CtcRunPlanVO>> buildCtcRunPlanCommonMessage(String simulationId
|
public static SocketMessageVO<List<CtcStationRunPlanLogVO>> buildCtcRunPlanCommonMessage(String simulationId
|
||||||
, List<CtcStationRunPlanLog> ctcStationRunPlanLogList, WebSocketMessageType type) {
|
, List<CtcStationRunPlanLog> ctcStationRunPlanLogList, WebSocketMessageType type) {
|
||||||
List<CtcRunPlanVO> ctcRunPlanVOList = ctcStationRunPlanLogList.stream()
|
List<CtcStationRunPlanLogVO> ctcStationRunPlanLogVOList = ctcStationRunPlanLogList.stream()
|
||||||
.map(ctcStationRunPlanLog -> new CtcRunPlanVO(ctcStationRunPlanLog)).collect(Collectors.toList());
|
.map(ctcStationRunPlanLog -> new CtcStationRunPlanLogVO(ctcStationRunPlanLog)).collect(Collectors.toList());
|
||||||
return build(type, simulationId, ctcRunPlanVOList);
|
return build(type, simulationId, ctcStationRunPlanLogVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user