Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
joylink_zhangsai 2022-07-12 18:06:16 +08:00
commit e1f390fb6c
11 changed files with 243 additions and 73 deletions

View File

@ -227,25 +227,27 @@ public class AtpSectionService {
// 道岔列表
List<Switch> relSwitchList = section.getRelSwitchList();
// 反位情况下
Switch relSwitch = null;
if (relSwitchList.stream().anyMatch(Switch::isPosR)) {
Switch relSwitch = relSwitchList.stream().filter(Switch::isPosR).findFirst().orElse(null);
if (relSwitch != null) {
// 反位前区段列表
Section nextSection = relSwitch.getA();
do {
atpSectionList.add(0, nextSection);
nextSection = nextSection.getNextRunningSectionOf(!right);
} while (nextSection.getRelSwitch() != null && relSwitchList.contains(nextSection.getRelSwitch()));
// 反位后区段列表
nextSection = relSwitch.isPosN() ? relSwitch.getB() : relSwitch.getC();
while (nextSection != null && relSwitchList.contains(nextSection.getRelSwitch())) {
atpSectionList.add(nextSection);
nextSection = nextSection.getNextRunningSectionOf(right);
}
}
relSwitch = relSwitchList.stream().filter(Switch::isPosR).findFirst().orElse(null);
} else {
relSwitchList.forEach(relSwitch -> atpSectionList.addAll(relSwitch.getSectionsByPosition()));
relSwitch = relSwitchList.stream().filter(Switch::isPosN).findFirst().orElse(null);
//relSwitchList.forEach(relSwitch -> atpSectionList.addAll(relSwitch.getSectionsByPosition()));
}
if (relSwitch != null) {
// 反位前区段列表
Section nextSection = relSwitch.getA();
do {
atpSectionList.add(0, nextSection);
nextSection = nextSection.getNextRunningSectionOf(!right);
} while (nextSection.getRelSwitch() != null && relSwitchList.contains(nextSection.getRelSwitch()));
// 反位后区段列表
nextSection = relSwitch.isPosN() ? relSwitch.getB() : relSwitch.getC();
while (nextSection != null && relSwitchList.contains(nextSection.getRelSwitch())) {
atpSectionList.add(nextSection);
nextSection = nextSection.getNextRunningSectionOf(right);
}
}
return atpSectionList;
}

View File

@ -980,6 +980,11 @@ public class Operation {
* 设置终到车
*/
CTC_LOG_SET_END_RUN_PLAN,
/**
* 实际时间平移多少分钟
*/
CTC_LOG_ACTUAL_TIME_ADD_MINUTE,
/**************调度台******************/
/**
* 调度台保存运行计划

View File

@ -217,11 +217,11 @@ public class CtcStationRunPlanOperateHandler {
* @param stationCode 车站编码
* @param runPlanCode 运行计划编码
* @param taskKey 任务Key
* @param status 是否设置 1 0
* @param task 设置任务
*/
@OperateHandlerMapping(type = Operation.Type.CTC_LOG_SET_TASK)
public void setTask(Simulation simulation, String stationCode, String runPlanCode, String taskKey, int status) {
ctcStationRunPlanLogService.setTask(simulation, stationCode, runPlanCode, taskKey, status);
public void setTask(Simulation simulation, String stationCode, String runPlanCode, String taskKey, CtcStationRunPlanLog.RunPlanTask task) {
ctcStationRunPlanLogService.setTask(simulation, stationCode, runPlanCode, taskKey, task);
}
/**
@ -357,4 +357,19 @@ public class CtcStationRunPlanOperateHandler {
public void setEndRunPlan(Simulation simulation, String stationCode, String runPlanCode, int status) {
ctcStationRunPlanLogService.setEndRunPlan(simulation, stationCode, runPlanCode, status);
}
/**
* 修改实际时间
*
* @param simulation 仿真
* @param stationCode 车站编码
* @param runPlanCode 运行计划编码
* @param minutes 分钟数
* @param model 接发
*/
@OperateHandlerMapping(type = Operation.Type.CTC_LOG_ACTUAL_TIME_ADD_MINUTE)
public void actualTimeAddMinute(Simulation simulation, String stationCode, String runPlanCode, int minutes, StationDirection.ReceiveAndDeliverModel model) {
ctcStationRunPlanLogService.actualTimeAddMinute(simulation, stationCode, runPlanCode, minutes, model);
}
}

View File

@ -11,6 +11,7 @@ import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
@Getter
@Setter
@ -196,6 +197,16 @@ public class CtcRunPlanParam implements Cloneable {
*/
private RunType runType;
/**
* 数据版本
*/
private AtomicInteger version = new AtomicInteger(0);
/**
* 是否已接收
*/
private boolean receive;
/**
* 删除时构造实体
*
@ -672,6 +683,7 @@ public class CtcRunPlanParam implements Cloneable {
Map<CtcStationRunPlanLog.RunPlanTask, Integer> map = new HashMap<>(this.runPlanTaskMap.size());
map.putAll(this.runPlanTaskMap);
clone.setRunPlanTaskMap(map);
clone.setVersion(new AtomicInteger(this.version.get()));
return clone;
} catch (CloneNotSupportedException e) {
throw new AssertionError();

View File

@ -130,17 +130,21 @@ public class StationDirectionService {
* 接辅助按钮后续操作
*/
private final ButtonThenInterface receiveAssistThen = (simulation, stationDirection) -> {
// 按下接辅助弹起发辅助
stationDirection.setDeliverAssistStatus(false);
// 重新设置倒计时时间
stationDirection.getRemain().set(StationDirection.DEFAULT_RECEIVE_DELAY_TIME);
// 接辅助完成后,改变接方向
stationDirection.setRunStatus(StationDirection.ReceiveAndDeliverModel.R);
// 邻站修改发方向
StationDirection adjacentDirection = getRelativeStationDirection(simulation, stationDirection);
adjacentDirection.setRunStatus(StationDirection.ReceiveAndDeliverModel.D);
// 办理完成后
stationDirection.resetAssistStatus();
adjacentDirection.resetAssistStatus();
};
/**
* 接辅助按钮后续操作
* 辅助按钮后续操作
*/
private final ButtonThenInterface deliverAssistThen = (simulation, stationDirection) -> {
// 按下发辅助弹起辅助
// 按下发辅助弹起辅助
stationDirection.setReceiveAssistStatus(false);
// 重新设置倒计时时间
stationDirection.getRemain().set(StationDirection.DEFAULT_DELIVER_DELAY_TIME);

View File

@ -270,7 +270,10 @@ public class CtcStationRunPlanLogService {
if (CollectionUtils.isEmpty(ctcRunPlanVOList)) {
return;
}
CtcEffectRepository effectRepository = simulation.getCtcRepository().getCtcEffectRepository();
ctcRunPlanVOList.forEach(ctcRunPlanVO -> {
// 生效区接收状态修改
effectRepository.receiveRunPlan(stationCode, ctcRunPlanVO.getRunPlanCode());
CtcRunPlanParam modifyParam = ctcRunPlanVO.getRunPlan();
CtcStationRunPlanLog runPlanLog = simulation.getCtcRepository()
.getRunPlanByRunPlanCodeAndStationCode(stationCode, ctcRunPlanVO.getRunPlanCode());
@ -459,16 +462,18 @@ public class CtcStationRunPlanLogService {
* @param simulation 仿真
* @param stationCode 车站编码
* @param runPlanCode 运行计划编码
* @param taskKey 任务Key
* @param task 任务Key
*/
public void setTask(Simulation simulation, String stationCode, String runPlanCode, String taskKey, int status) {
CtcStationRunPlanLog.RunPlanTask task = CtcStationRunPlanLog.RunPlanTask.getTaskByKey(taskKey);
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(task);
public void setTask(Simulation simulation, String stationCode, String runPlanCode, String taskKey, CtcStationRunPlanLog.RunPlanTask task) {
CtcStationRunPlanLog runPlanLog = simulation.getCtcRepository().getRunPlanByRunPlanCode(stationCode, runPlanCode);
if (status == 1) { // 设置
runPlanLog.getRunPlanTaskItemMap().put(task.getOptionKey(), new CtcStationRunPlanLog.RunPlanTaskItem(task));
} else { // 取消
runPlanLog.getRunPlanTaskItemMap().remove(task.getOptionKey());
CtcStationRunPlanLog.RunPlanTaskItem taskItem = runPlanLog.getRunPlanTaskItemMap().get(taskKey);
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(taskItem);
if (CtcStationRunPlanLog.RunPlanTask.NO.equals(task)) { // 取消
taskItem.setType(task);
} else if (task.getOptionKey().equals(taskKey)) { // 设置
runPlanLog.getRunPlanTaskItemMap().put(taskKey, new CtcStationRunPlanLog.RunPlanTaskItem(task));
} else {
BusinessExceptionAssertEnum.DATA_ERROR.exception("任务类型不匹配");
}
}
@ -563,6 +568,24 @@ public class CtcStationRunPlanLogService {
runPlanLog.setEndRunPlan(status == 1);
}
/**
* 修改实际时间
*
* @param simulation 仿真
* @param stationCode 车站编码
* @param runPlanCode 运行计划编码
* @param minutes 分钟数
* @param model 接发
*/
public void actualTimeAddMinute(Simulation simulation, String stationCode, String runPlanCode, int minutes
, StationDirection.ReceiveAndDeliverModel model) {
CtcStationRunPlanLog runPlanLog = simulation.getCtcRepository().getRunPlanByRunPlanCode(stationCode, runPlanCode);
if (StationDirection.ReceiveAndDeliverModel.R.equals(model)) {
runPlanLog.arriveActualTime(minutes);
}
runPlanLog.departActualTime(minutes);
}
/**
* 修改原始数据并返回修改属性的对象
*
@ -763,5 +786,4 @@ public class CtcStationRunPlanLogService {
});
}
}
}

View File

@ -74,6 +74,7 @@ public class CtcZoneService {
} else {
runPlanParam.setDepartSectionCode(sectionCode);
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -94,6 +95,7 @@ public class CtcZoneService {
} else {
runPlanParam.setDepartTripNumber(tripNumber);
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -119,8 +121,8 @@ public class CtcZoneService {
runPlanParam.setDepartTime(planTime);
}
runPlanParam.setDepartPlanTime(planTime);
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -137,6 +139,7 @@ public class CtcZoneService {
}
runPlanParam.setDepartPlanTime(runPlanParam.getDepartPlanTime().plusMinutes(minutes));
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -157,6 +160,7 @@ public class CtcZoneService {
} else {
runPlanParam.setDepartDirectionCode(directionCode);
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -177,6 +181,7 @@ public class CtcZoneService {
} else {
runPlanParam.setDepartStationCode(planStationCode);
}
afterUpdate(runPlanParam);
return runPlanParam;
}
@ -304,10 +309,12 @@ public class CtcZoneService {
CtcEffectRepository.StationRunPlanRepository runPlanRepository = ctcRepository.getEffectStationRunPlanMap(stationCode);
List<CtcRunPlanVO> allList = new LinkedList<>();
runPlanRepository.getDataMap().forEach((runPlanCode, ctcRunPlanParam) -> {
CtcStationRunPlanLog runPlanLog = ctcRepository.getRunPlanByRunPlanCodeAndStationCode(stationCode, runPlanCode);
CtcRunPlanVO runPlanVO = CtcRunPlanVO.compareAndChange(ctcRunPlanParam, runPlanLog);
if (runPlanVO != null) {
allList.add(runPlanVO);
if (!ctcRunPlanParam.isReceive()) { // 对未接收的运行计划进行对比已接收的就不需要再做对比
CtcStationRunPlanLog runPlanLog = ctcRepository.getRunPlanByRunPlanCodeAndStationCode(stationCode, runPlanCode);
CtcRunPlanVO runPlanVO = CtcRunPlanVO.compareAndChange(ctcRunPlanParam, runPlanLog);
if (runPlanVO != null) {
allList.add(runPlanVO);
}
}
});
if (!allList.isEmpty()) {
@ -321,4 +328,13 @@ public class CtcZoneService {
});
}
}
/**
* 更新后操作
*
* @param param 参数
*/
private void afterUpdate(CtcRunPlanParam param) {
param.getVersion().incrementAndGet();
}
}

View File

@ -1,5 +1,6 @@
package club.joylink.rtss.simulation.cbtc.CTC.data;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.simulation.cbtc.ATS.operation.vo.CtcRunPlanParam;
import club.joylink.rtss.simulation.cbtc.CTC.data.vo.CtcRunPlanVO;
import club.joylink.rtss.simulation.cbtc.data.map.StationDirection;
@ -102,11 +103,18 @@ public class CtcEffectRepository {
effectRepository.setStationCode(stationCode);
this.stationRunPlanMap.put(stationCode, effectRepository);
}
// 增加版本
effectRepository.setUpdateTime(updateDateTime);
effectRepository.getVersion().incrementAndGet();
CtcRunPlanParam oldPlan;
boolean change = false;
for (Map.Entry<String, CtcRunPlanParam> v : runPlanMap.entrySet()) {
effectRepository.save(v.getValue().clone());
oldPlan = effectRepository.query(v.getValue().getRunPlanCode());
if (oldPlan == null || oldPlan.getVersion().get() < v.getValue().getVersion().get()) {
effectRepository.save(v.getValue().clone());
change = true;
}
}
if (change) { // 增加版本
effectRepository.getVersion().incrementAndGet();
}
}
}
@ -256,6 +264,20 @@ public class CtcEffectRepository {
return repository.query(code);
}
/**
* 修改运行计划为接收状态
*
* @param stationCode 车站编码
* @param runPlanCode 运行计划编码
*/
public void receiveRunPlan(String stationCode, String runPlanCode) {
StationRunPlanRepository repository = this.stationRunPlanMap.get(stationCode);
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(repository);
CtcRunPlanParam runPlanParam = repository.query(runPlanCode);
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(runPlanParam);
runPlanParam.setReceive(true);
}
/**
* 阶段计划数据
*/
@ -489,7 +511,6 @@ public class CtcEffectRepository {
}
}
public void reset() {
this.stationRunPlanMap.clear();
this.stationApplyRunPlanMap.clear();

View File

@ -9,15 +9,13 @@ import club.joylink.rtss.simulation.cbtc.data.map.StationDirection;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@ -184,12 +182,14 @@ public class CtcStationRunPlanLog {
this.trackDiscordant = paramInfo.getTrackDiscordant(); // 运行股道与基本径路不一致
this.entryOutDiscordant = paramInfo.getEntryOutDiscordant(); // 出入口与基本径路不一致
this.transfinite = paramInfo.getTransfinite(); // 超限等级
if (CollectionUtils.isEmpty(paramInfo.getRunPlanTaskMap())) { // 运行计划任务
this.runPlanTaskItemMap = paramInfo.getRunPlanTaskMap().keySet().stream()
.collect(Collectors.toMap(RunPlanTask::getOptionKey, RunPlanTaskItem::new));
} else {
this.runPlanTaskItemMap = new HashMap<>(0);
}
this.runPlanTaskItemMap = new HashMap<>(RunPlanTask.values().length); // 运行计划任务
RunPlanTask.getOptionKeyList().forEach(key -> this.runPlanTaskItemMap.put(key, new RunPlanTaskItem(RunPlanTask.NO)));
paramInfo.getRunPlanTaskMap().forEach((k, v) -> {
if (v != null && v > 0) {
this.runPlanTaskItemMap.get(k.getOptionKey()).setType(k);
}
});
// 删除状态
this.delete = paramInfo.getStatus() == -1;
this.startRunPlan = paramInfo.getStartRunPlan() != null && paramInfo.getStartRunPlan();
this.endRunPlan = paramInfo.getEndRunPlan() != null && paramInfo.getEndRunPlan();
@ -334,6 +334,26 @@ public class CtcStationRunPlanLog {
return (this.arriveRunPlan != null && this.arriveRunPlan.isElectrical()) || (this.departRunPlan != null && this.departRunPlan.isElectrical());
}
/**
* 到达实际时间增加minutes分钟
*
* @param minutes 分钟数
*/
public void arriveActualTime(int minutes) {
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotNull(arriveRunPlan);
arriveRunPlan.actualAddMinute(minutes);
}
/**
* 出发实际时间增加minutes分钟
*
* @param minutes 分钟数
*/
public void departActualTime(int minutes) {
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotNull(departRunPlan);
departRunPlan.actualAddMinute(minutes);
}
@Setter
@Getter
public static class RunPlanItem {
@ -472,6 +492,37 @@ public class CtcStationRunPlanLog {
public boolean isEffect() {
return this.finish || RunPlanItem.WAIT.equals(this.adjacentMessage) || RunPlanItem.FINISH.equals(this.adjacentMessage);
}
/**
* 实际时间增加minute时间
*
* @param minute 分钟数
*/
public void actualAddMinute(int minute) {
LocalTime localTime = isValidDate(this.actualTime);
if (localTime != null) {
this.actualTime = localTime.toString();
}
}
/**
* 校验时间并返回时间
* HH:mm (([0-1][0-9])|(2[0-3])):([0-5][0-9])$
* yyyy-MM-dd HH:mm \\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2} ([0-1]?[0-9]|2[0-3]):([0-5][0-9])$
* yyyy-MM-dd HH:mm:ss \\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2} ([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$
*
* @param dateStr 时间字符串
* @return 时间
*/
private LocalTime isValidDate(String dateStr) {
Pattern datePattern = Pattern.compile("(([0-1][0-9])|(2[0-3])):([0-5][0-9])$");
Matcher matcher = datePattern.matcher(dateStr);
if (matcher.find()) {
return LocalTime.parse(dateStr);
} else {
return null;
}
}
}
/**
@ -576,6 +627,8 @@ public class CtcStationRunPlanLog {
*/
@Getter
public enum RunPlanTask {
// 空任务
NO("", ""),
// 技术停点
Technical_Stop_Point("stopPoint", "技术停点"),
// 上水
@ -625,9 +678,19 @@ public class CtcStationRunPlanLog {
* @param key 唯一键
* @return 运行任务
*/
public static RunPlanTask getTaskByKey(String key) {
public static List<RunPlanTask> getTaskByKey(String key) {
return Arrays.stream(RunPlanTask.values()).filter(r -> r.getOptionKey().equals(key))
.findFirst().orElseGet(null);
.collect(Collectors.toList());
}
/**
* 获取任务对应列key
*
* @return key列表
*/
public static List<String> getOptionKeyList() {
return Arrays.stream(RunPlanTask.values()).filter(r -> !StringUtils.isEmpty(r.getOptionKey()))
.map(r -> r.getOptionKey()).distinct().collect(Collectors.toList());
}
}

View File

@ -5,6 +5,7 @@ import club.joylink.rtss.simulation.cbtc.CTC.data.CtcStationRunPlanLog;
import lombok.Getter;
import lombok.Setter;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalTime;
import java.util.*;
@ -81,7 +82,7 @@ public class CtcStationRunPlanLogVO {
/**
* 超限等级
*/
private String transfinite;
private CtcStationRunPlanLog.TransfiniteType transfinite;
/**
* 是否电力
@ -155,7 +156,7 @@ public class CtcStationRunPlanLogVO {
this.delete = ctcStationRunPlanLog.getDelete(); // 删除
this.keyTrains = ctcStationRunPlanLog.getKeyTrains(); // 重点列车
this.military = ctcStationRunPlanLog.getMilitary(); // 军用
this.transfinite = ctcStationRunPlanLog.getTransfinite().getVal(); // 超限等级
this.transfinite = ctcStationRunPlanLog.getTransfinite(); // 超限等级
this.trackDiscordant = ctcStationRunPlanLog.getTrackDiscordant(); // 运行股道与基本径路不一致
this.entryOutDiscordant = ctcStationRunPlanLog.getEntryOutDiscordant(); // 出入口与基本径路不一致
this.passenger = ctcStationRunPlanLog.getPassenger(); // 客运车
@ -166,12 +167,12 @@ public class CtcStationRunPlanLogVO {
this.departRunPlan = new RunPlanItem(ctcStationRunPlanLog.getDepartRunPlan());
}
// 列车运行计划作业
this.runPlanTaskItemMap = Arrays.stream(CtcStationRunPlanLog.RunPlanTask.values())
.collect(Collectors.toMap(CtcStationRunPlanLog.RunPlanTask::getOptionKey, r -> EMPTY_STR));
ctcStationRunPlanLog.getRunPlanTaskItemMap().forEach((k, v) -> this.runPlanTaskItemMap.put(k, v.getType().getOptionName()));
this.runPlanTaskItemMap = Arrays.stream(CtcStationRunPlanLog.RunPlanTask.values()).filter(r -> !StringUtils.isEmpty(r.getOptionKey()))
.collect(Collectors.toMap(CtcStationRunPlanLog.RunPlanTask::getOptionKey, r -> CtcStationRunPlanLog.RunPlanTask.NO.name()));
ctcStationRunPlanLog.getRunPlanTaskItemMap().forEach((k, v) -> this.runPlanTaskItemMap.put(k, v.getType().name()));
List<String> planPropertiesList = new LinkedList<>();
this.electrical = ctcStationRunPlanLog.isElectrical(); // 电力
if (this.electrical != null) {
if (this.electrical) {
planPropertiesList.add("电力;");
}
this.planProperties = String.join("", planPropertiesList);
@ -202,7 +203,7 @@ public class CtcStationRunPlanLogVO {
this.runPlanTaskItemMap.forEach((k, v) -> {
// 新增的任务 : 删除的任务
CtcStationRunPlanLog.RunPlanTaskItem taskItem = runPlanLog.getRunPlanTaskItemMap().get(k);
String val = taskItem != null ? taskItem.getType().getOptionName() : EMPTY_STR;
String val = taskItem.getType().name();
if (!Objects.equals(val, v)) {
modifyMap.put(k, val);
this.runPlanTaskItemMap.put(k, val);
@ -233,7 +234,7 @@ public class CtcStationRunPlanLogVO {
// 运行股道与基本径路不一致
if (!Objects.equals(this.trackDiscordant, runPlanLog.getTrackDiscordant())) {
this.trackDiscordant = runPlanLog.getTrackDiscordant();
changeCtcStationRunPlanLogVO.setTrackSectionCode(runPlanLog.getTrackSectionCode());
changeCtcStationRunPlanLogVO.setTrackDiscordant(runPlanLog.getTrackDiscordant());
change = true;
}
// 出入口与基本径路不一致
@ -243,9 +244,9 @@ public class CtcStationRunPlanLogVO {
change = true;
}
// 超限等级
if (!Objects.equals(this.transfinite, runPlanLog.getTransfinite().getVal())) {
this.transfinite = runPlanLog.getTransfinite().getVal();
changeCtcStationRunPlanLogVO.setTransfinite(runPlanLog.getTransfinite().getVal());
if (!Objects.equals(this.transfinite, runPlanLog.getTransfinite())) {
this.transfinite = runPlanLog.getTransfinite();
changeCtcStationRunPlanLogVO.setTransfinite(runPlanLog.getTransfinite());
change = true;
}
// 记事
@ -409,9 +410,9 @@ public class CtcStationRunPlanLogVO {
change = true;
}
// 超限
if (runPlanItem.getTransfinite() != null && !Objects.equals(paramInfo.getTransfinite(), runPlanItem.getTransfinite().getVal())) {
paramInfo.setTransfinite(runPlanItem.getTransfinite().getVal());
changeRunItem.setTransfinite(runPlanItem.getTransfinite().getVal());
if (runPlanItem.getTransfinite() != null && !Objects.equals(paramInfo.getTransfinite(), runPlanItem.getTransfinite())) {
paramInfo.setTransfinite(runPlanItem.getTransfinite());
changeRunItem.setTransfinite(runPlanItem.getTransfinite());
change = true;
}
return change ? changeRunItem : null; // 没有变化返回null
@ -483,7 +484,7 @@ public class CtcStationRunPlanLogVO {
/**
* 超限等级
*/
private String transfinite;
private CtcStationRunPlanLog.TransfiniteType transfinite;
public RunPlanItem() {
}
@ -506,7 +507,7 @@ public class CtcStationRunPlanLogVO {
this.adjacentMessageTime = runPlanItem.getAdjacentMessageTime();
this.finish = runPlanItem.isFinish();
this.electrical = runPlanItem.isElectrical();
this.transfinite = runPlanItem.getTransfinite().getVal();
this.transfinite = runPlanItem.getTransfinite();
}
}
}

View File

@ -371,6 +371,15 @@ public class StationDirection extends MapNamedElement {
return isChange;
}
/**
* 重置辅助状态
*/
public void resetAssistStatus() {
this.deliverAssistStatus = false;
this.receiveAssistStatus = false;
this.remain.set(0);
}
/**
* 设置默认属性
*/