Merge remote-tracking branch 'origin/ats-restruct' into ats-restruct
This commit is contained in:
commit
02924c0cb5
@ -10,6 +10,7 @@ import club.joylink.rtss.simulation.cbtc.data.plan.TripPlan;
|
|||||||
import club.joylink.rtss.simulation.cbtc.data.support.RoutePath;
|
import club.joylink.rtss.simulation.cbtc.data.support.RoutePath;
|
||||||
import club.joylink.rtss.simulation.cbtc.data.support.StationTurnBackStrategyOption;
|
import club.joylink.rtss.simulation.cbtc.data.support.StationTurnBackStrategyOption;
|
||||||
import club.joylink.rtss.simulation.cbtc.data.vo.TrainInfo;
|
import club.joylink.rtss.simulation.cbtc.data.vo.TrainInfo;
|
||||||
|
import lombok.Getter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -74,10 +75,10 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
}
|
}
|
||||||
log.debug(String.format("列车[%s]筛选出的进路为:[%s]", trainInfo.getGroupNumber(), route.getName()));
|
log.debug(String.format("列车[%s]筛选出的进路为:[%s]", trainInfo.getGroupNumber(), route.getName()));
|
||||||
if (route.isCheckConflict() && route.getConflictAlarm() == null) {
|
if (route.isCheckConflict() && route.getConflictAlarm() == null) {
|
||||||
Object[] conflictInfos = this.checkConflict(repository, trainInfo, tripPlan, route, turnBack);
|
ConflictInfo conflictInfo = this.checkConflict(repository, trainInfo, tripPlan, route);
|
||||||
if (conflictInfos != null) {
|
if (conflictInfo != null) {
|
||||||
Section startSection = (Section) conflictInfos[0];
|
Section startSection = conflictInfo.section;
|
||||||
StationPlan stationPlan = (StationPlan) conflictInfos[1];
|
StationPlan stationPlan = conflictInfo.stationPlan;
|
||||||
String conflictDesc = String.format("计划车(%s(%s)触发的进路[%s]与计划(%s)从节点(%s_%s)到节点(%s_%s)的计划冲突,无法选排",
|
String conflictDesc = String.format("计划车(%s(%s)触发的进路[%s]与计划(%s)从节点(%s_%s)到节点(%s_%s)的计划冲突,无法选排",
|
||||||
tripPlan.getStNumber(), trainInfo.getGroupNumber(), route.getName(),
|
tripPlan.getStNumber(), trainInfo.getGroupNumber(), route.getName(),
|
||||||
stationPlan.getPlan().getStNumber(),
|
stationPlan.getPlan().getStNumber(),
|
||||||
@ -94,37 +95,46 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
return route;
|
return route;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public static class ConflictInfo {
|
||||||
|
Section section;
|
||||||
|
StationPlan stationPlan;
|
||||||
|
|
||||||
|
public ConflictInfo(Section section, StationPlan stationPlan) {
|
||||||
|
this.section = section;
|
||||||
|
this.stationPlan = stationPlan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查进路是否和未完成的计划冲突
|
* 检查进路是否和未完成的计划冲突
|
||||||
|
* @param repository
|
||||||
|
* @param trainInfo
|
||||||
|
* @param tripPlan
|
||||||
|
* @param route
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Object[] checkConflict(SimulationDataRepository repository, TrainInfo trainInfo,
|
public ConflictInfo checkConflict(SimulationDataRepository repository, TrainInfo trainInfo,
|
||||||
TripPlan tripPlan, Route route, boolean turnBack) {
|
TripPlan tripPlan, Route route) {
|
||||||
Section section = repository.getByCode(trainInfo.getPlanStandTrack(), Section.class);
|
Section section = repository.getByCode(trainInfo.getPlanStandTrack(), Section.class);
|
||||||
StationPlan stationPlan;
|
LocalTime arriveTime = this.queryRouteArriveTime(repository, route, trainInfo, tripPlan, section);
|
||||||
TripPlan nextTripPlan = null;
|
if (arriveTime == null) {
|
||||||
if (turnBack) { // 站后折返
|
log.debug(String.format("计划车[%s]未找到进路[%s]下一计划到达时间", trainInfo.getGroupNumber(), route.getName()));
|
||||||
nextTripPlan = repository.queryNextTripPlanOf(tripPlan);
|
return null;
|
||||||
stationPlan = nextTripPlan.getFirstStationPlan();
|
|
||||||
} else {
|
|
||||||
stationPlan = tripPlan.queryStationPlan(section);
|
|
||||||
}
|
}
|
||||||
|
TripPlan nextTripPlan = repository.queryNextTripPlanOf(tripPlan);
|
||||||
Section start = null;
|
Section start = null;
|
||||||
StationPlan conflictStationPlan = null;
|
StationPlan conflictStationPlan = null;
|
||||||
LocalTime arriveTime = stationPlan.getArriveTime();
|
|
||||||
Map<String, List<TripPlan>> serviceTripsMap = repository.getServiceTripsMap();
|
Map<String, List<TripPlan>> serviceTripsMap = repository.getServiceTripsMap();
|
||||||
for (List<TripPlan> planList : serviceTripsMap.values()) {
|
for (List<TripPlan> planList : serviceTripsMap.values()) {
|
||||||
for (TripPlan plan : planList) {
|
for (TripPlan plan : planList) {
|
||||||
if (turnBack && plan.isRight() == tripPlan.isRight()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (plan.equals(tripPlan)) {
|
if (plan.equals(tripPlan)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (turnBack && plan.equals(nextTripPlan)) {
|
if (plan.equals(nextTripPlan)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!plan.getStartTime().isBefore(arriveTime)) {
|
if (plan.getStartTime().isAfter(arriveTime)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
List<StationPlan> stationPlanList = plan.getPlanList();
|
List<StationPlan> stationPlanList = plan.getPlanList();
|
||||||
@ -147,12 +157,6 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
}
|
}
|
||||||
start = temp.getSection();
|
start = temp.getSection();
|
||||||
}
|
}
|
||||||
// if (aheadTrain != null && plan.isLastPlanStationSection(start)) {
|
|
||||||
// if (this.isConflict(repository, route, aheadTrain, start, plan.getEndSection())) {
|
|
||||||
// conflictStationPlan = plan.getLastStationPlan();
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if (conflictStationPlan != null) {
|
if (conflictStationPlan != null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -165,12 +169,137 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
log.debug(String.format("列车[%s]的进路[%s]和未完成车站计划[%s]冲突",
|
log.debug(String.format("列车[%s]的进路[%s]和未完成车站计划[%s]冲突",
|
||||||
trainInfo.getGroupNumber(), route.getName(),
|
trainInfo.getGroupNumber(), route.getName(),
|
||||||
String.format("%s{%s}", conflictStationPlan.getPlan().getStNumber(), conflictStationPlan.debugStr())));
|
String.format("%s{%s}", conflictStationPlan.getPlan().getStNumber(), conflictStationPlan.debugStr())));
|
||||||
return new Object[] {start, conflictStationPlan};
|
return new ConflictInfo(start, conflictStationPlan);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isConflict(SimulationDataRepository repository, Route route, TrainInfo aheadTrain, Section start, Section end) {
|
/**
|
||||||
|
* 查询所需办理进路所需到达的计划时间
|
||||||
|
* @param repository
|
||||||
|
* @param route
|
||||||
|
* @param trainInfo
|
||||||
|
* @param tripPlan
|
||||||
|
* @param nextPlanSection
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private LocalTime queryRouteArriveTime(SimulationDataRepository repository, Route route,
|
||||||
|
TrainInfo trainInfo, TripPlan tripPlan, Section nextPlanSection) {
|
||||||
|
boolean start = false;
|
||||||
|
List<StationPlan> planList = tripPlan.getPlanList();
|
||||||
|
for (int i = 0; i < planList.size(); i++) {
|
||||||
|
StationPlan stationPlan = planList.get(i);
|
||||||
|
if (stationPlan.getSection().equals(nextPlanSection)) {
|
||||||
|
start = true;
|
||||||
|
}
|
||||||
|
if (start) {
|
||||||
|
List<RoutePath> routePathList = repository.queryRoutePathsByEnd(stationPlan.getSection());
|
||||||
|
for (RoutePath routePath : routePathList) {
|
||||||
|
if (routePath.isPathRoute(route)) {
|
||||||
|
return stationPlan.getArriveTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i == planList.size() - 1) { // 最后一站,判断是否站后折返
|
||||||
|
if (tripPlan.isBehindTurnBack()) {
|
||||||
|
routePathList = repository.queryRoutePathsByStart(stationPlan.getSection());
|
||||||
|
for (RoutePath routePath : routePathList) {
|
||||||
|
if (routePath.isPathRoute(route)) {
|
||||||
|
TripPlan nextTripPlan = repository.queryNextTripPlanOf(tripPlan);
|
||||||
|
return nextTripPlan.getFirstStationPlan().getArriveTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (!Objects.equals(tripPlan.getEndSection(), stationPlan.getSection())) {
|
||||||
|
routePathList = repository.getRoutePaths(stationPlan.getSection(), tripPlan.getEndSection());
|
||||||
|
for (RoutePath routePath : routePathList) {
|
||||||
|
if (routePath.isPathRoute(route)) {
|
||||||
|
return tripPlan.getEndTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 检查进路是否和未完成的计划冲突
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// public Object[] checkConflict(SimulationDataRepository repository, TrainInfo trainInfo,
|
||||||
|
// TripPlan tripPlan, Route route, boolean turnBack) {
|
||||||
|
// Section section = repository.getByCode(trainInfo.getPlanStandTrack(), Section.class);
|
||||||
|
// StationPlan stationPlan;
|
||||||
|
// TripPlan nextTripPlan = null;
|
||||||
|
// if (turnBack) { // 站后折返
|
||||||
|
// nextTripPlan = repository.queryNextTripPlanOf(tripPlan);
|
||||||
|
// stationPlan = nextTripPlan.getFirstStationPlan();
|
||||||
|
// } else {
|
||||||
|
// stationPlan = tripPlan.queryStationPlan(section);
|
||||||
|
// }
|
||||||
|
// Section start = null;
|
||||||
|
// StationPlan conflictStationPlan = null;
|
||||||
|
// LocalTime arriveTime = stationPlan.getArriveTime();
|
||||||
|
// Map<String, List<TripPlan>> serviceTripsMap = repository.getServiceTripsMap();
|
||||||
|
// for (List<TripPlan> planList : serviceTripsMap.values()) {
|
||||||
|
// for (TripPlan plan : planList) {
|
||||||
|
// if (turnBack && plan.isRight() == tripPlan.isRight()) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// if (plan.equals(tripPlan)) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// if (turnBack && plan.equals(nextTripPlan)) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// if (!plan.getStartTime().isBefore(arriveTime)) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// List<StationPlan> stationPlanList = plan.getPlanList();
|
||||||
|
// TrainInfo aheadTrain = repository.queryAtsTrainInfoOfTripPlan(plan);
|
||||||
|
// start = plan.getStartSection();
|
||||||
|
// for (StationPlan temp : stationPlanList) {
|
||||||
|
// if (temp.getArriveTime().isAfter(arriveTime)) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// if (!temp.isFinished()) {
|
||||||
|
// if (!start.equals(temp.getSection())) {
|
||||||
|
// if(this.isConflict(repository, route, aheadTrain, start, temp.getSection())){
|
||||||
|
// conflictStationPlan = temp;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (conflictStationPlan != null) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// start = temp.getSection();
|
||||||
|
// }
|
||||||
|
//// if (aheadTrain != null && plan.isLastPlanStationSection(start)) {
|
||||||
|
//// if (this.isConflict(repository, route, aheadTrain, start, plan.getEndSection())) {
|
||||||
|
//// conflictStationPlan = plan.getLastStationPlan();
|
||||||
|
//// break;
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
// if (conflictStationPlan != null) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (conflictStationPlan != null) {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (conflictStationPlan != null) {
|
||||||
|
// log.debug(String.format("列车[%s]的进路[%s]和未完成车站计划[%s]冲突",
|
||||||
|
// trainInfo.getGroupNumber(), route.getName(),
|
||||||
|
// String.format("%s{%s}", conflictStationPlan.getPlan().getStNumber(), conflictStationPlan.debugStr())));
|
||||||
|
// return new Object[] {start, conflictStationPlan};
|
||||||
|
// }
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
private boolean isConflict(SimulationDataRepository repository, Route route,
|
||||||
|
TrainInfo aheadTrain, Section start, Section end) {
|
||||||
if (start.equals(end)) {
|
if (start.equals(end)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -181,6 +310,14 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
conflict = true;
|
conflict = true;
|
||||||
if (aheadTrain != null) {
|
if (aheadTrain != null) {
|
||||||
if (routePath.containsSection(aheadTrain.getPhysicalSection())) {//前车在此计划路径中
|
if (routePath.containsSection(aheadTrain.getPhysicalSection())) {//前车在此计划路径中
|
||||||
|
Map<String, Route> atsTriggerRouteMap = aheadTrain.getAtsTriggerRouteMap();
|
||||||
|
if (!atsTriggerRouteMap.isEmpty()) {
|
||||||
|
for (Route triggerRoute : atsTriggerRouteMap.values()) {
|
||||||
|
if (triggerRoute.isConflictWith(route) && (triggerRoute.isSetting() || triggerRoute.isOpen())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (routePath.isRight() == route.isRight()) {
|
if (routePath.isRight() == route.isRight()) {
|
||||||
if (routePath.containsSection(route.getFirstRouteSection()) &&
|
if (routePath.containsSection(route.getFirstRouteSection()) &&
|
||||||
routePath.getSectionSort(route.getFirstRouteSection()) <= routePath.getSectionSort(aheadTrain.getPhysicalSection())) {
|
routePath.getSectionSort(route.getFirstRouteSection()) <= routePath.getSectionSort(aheadTrain.getPhysicalSection())) {
|
||||||
@ -191,7 +328,7 @@ public class AtsPlanTrainRouteSelectServiceImpl extends AtsRouteSelectService {
|
|||||||
// 前车已经走过区段,非冲突
|
// 前车已经走过区段,非冲突
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if(routePath.isRight() != route.isRight()) { // 相反方向
|
} else if (routePath.isRight() != route.isRight()) { // 相反方向
|
||||||
// 列车是否已经经过敌对进路
|
// 列车是否已经经过敌对进路
|
||||||
if (routePath.containsSection(route.getLastRouteSection()) &&
|
if (routePath.containsSection(route.getLastRouteSection()) &&
|
||||||
routePath.getSectionSort(route.getLastRouteSection()) <= routePath.getSectionSort(aheadTrain.getPhysicalSection())) {
|
routePath.getSectionSort(route.getLastRouteSection()) <= routePath.getSectionSort(aheadTrain.getPhysicalSection())) {
|
||||||
|
@ -40,10 +40,25 @@ public class AtsTriggerRouteService {
|
|||||||
if (route.isSetting()) {
|
if (route.isSetting()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (route.getConflictAlarm() != null && route.isOpen()) {
|
if (route.getConflictAlarm() != null) {
|
||||||
|
if (route.isOpen()) {
|
||||||
route.getConflictAlarm().recover(simulation.getCorrectSystemTime());
|
route.getConflictAlarm().recover(simulation.getCorrectSystemTime());
|
||||||
route.setConflictAlarm(null);
|
route.setConflictAlarm(null);
|
||||||
continue;
|
continue;
|
||||||
|
} else if (route.isConflictHandleRunAsPlan()) {
|
||||||
|
if (trainInfo.isPlanTrain()) {
|
||||||
|
SimulationDataRepository repository = simulation.getRepository();
|
||||||
|
TripPlan tripPlan = repository.getTripPlan(trainInfo.getServiceNumber(), trainInfo.getTripNumber());
|
||||||
|
AtsPlanTrainRouteSelectServiceImpl.ConflictInfo conflictInfo = this.planTrainRouteSelectService.checkConflict(repository, trainInfo, tripPlan, route);
|
||||||
|
if (conflictInfo != null) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
route.getConflictAlarm().recover(simulation.getCorrectSystemTime());
|
||||||
|
route.setConflictAlarm(null);
|
||||||
|
this.trySetRoute(simulation, trainInfo, route);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!route.isOpen()) { // 存在未开放的进路,直接返回
|
if (!route.isOpen()) { // 存在未开放的进路,直接返回
|
||||||
if(!route.isSetting()){ // 进路未办理,继续尝试办理
|
if(!route.isSetting()){ // 进路未办理,继续尝试办理
|
||||||
@ -74,8 +89,8 @@ public class AtsTriggerRouteService {
|
|||||||
}
|
}
|
||||||
if (route.isCheckConflict() && route.getConflictAlarm() != null) {
|
if (route.isCheckConflict() && route.getConflictAlarm() != null) {
|
||||||
if (!route.isConflictConfirmed() ||
|
if (!route.isConflictConfirmed() ||
|
||||||
(route.isConflictConfirmed() && Route.Conflict_Handle_Way_1 == route.getConflictAlarm().getConfirmParam())) {
|
route.isConflictHandleRunAsPlan()) {
|
||||||
// 进路冲突,且进路检查冲突,且用户确认按计划执行,不办理,返回
|
// 进路冲突,且进路检查冲突,且用户未确认或确认按计划执行,不办理,返回
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -400,6 +400,14 @@ public class Route extends MapNamedElement {
|
|||||||
if (this.containConflictSwitch(route2.getSwitchList())) {
|
if (this.containConflictSwitch(route2.getSwitchList())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (route2.getOverlap() != null && route2.getOverlap().isOnlyOnePath() &&
|
||||||
|
this.containConflictSwitch(route2.getOverlap().getFirstPath().getSwitchList())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (this.getOverlap() != null && this.getOverlap().isOnlyOnePath() &&
|
||||||
|
route2.containConflictSwitch(this.getOverlap().getFirstPath().getSwitchList())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -596,6 +604,10 @@ public class Route extends MapNamedElement {
|
|||||||
return this.conflictAlarm!=null && this.conflictAlarm.isConfirmed();
|
return this.conflictAlarm!=null && this.conflictAlarm.isConfirmed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isConflictHandleRunAsPlan() {
|
||||||
|
return this.conflictAlarm!=null && Route.Conflict_Handle_Way_1 == this.conflictAlarm.getConfirmParam();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进路检查失败原因
|
* 进路检查失败原因
|
||||||
*/
|
*/
|
||||||
|
@ -88,6 +88,23 @@ public class RouteStatus extends DeviceStatus {
|
|||||||
this.checkConflict = route.isCheckConflict();
|
this.checkConflict = route.isCheckConflict();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DeviceStatusVO convert2VO(MapElement device) {
|
||||||
|
RouteStatusVO statusVO = new RouteStatusVO((Route) device);
|
||||||
|
statusVO.setCbtcMode(cbtcMode);
|
||||||
|
statusVO.setAtsControl(atsControl);
|
||||||
|
statusVO.setFleetMode(fleetMode);
|
||||||
|
statusVO.setCiControl(ciControl);
|
||||||
|
statusVO.setSettable(settable);
|
||||||
|
statusVO.setSetting(setting);
|
||||||
|
statusVO.setSettingGuide(settingGuide);
|
||||||
|
statusVO.setLock(lock);
|
||||||
|
statusVO.setCanceling(canceling);
|
||||||
|
statusVO.setNormalUnlock(normalUnlock);
|
||||||
|
statusVO.setCheckConflict(checkConflict);
|
||||||
|
return statusVO;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean compareAndChange(MapElement device, DeviceStatusVO statusVO) {
|
public boolean compareAndChange(MapElement device, DeviceStatusVO statusVO) {
|
||||||
Route route = (Route) device;
|
Route route = (Route) device;
|
||||||
@ -158,20 +175,4 @@ public class RouteStatus extends DeviceStatus {
|
|||||||
return change;
|
return change;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public DeviceStatusVO convert2VO(MapElement device) {
|
|
||||||
RouteStatusVO statusVO = new RouteStatusVO((Route) device);
|
|
||||||
statusVO.setNormalUnlock(normalUnlock);
|
|
||||||
statusVO.setCanceling(canceling);
|
|
||||||
statusVO.setLock(lock);
|
|
||||||
statusVO.setSettingGuide(settingGuide);
|
|
||||||
statusVO.setSettable(settable);
|
|
||||||
statusVO.setSetting(setting);
|
|
||||||
statusVO.setCiControl(ciControl);
|
|
||||||
statusVO.setFleetMode(fleetMode);
|
|
||||||
statusVO.setAtsControl(atsControl);
|
|
||||||
statusVO.setCbtcMode(cbtcMode);
|
|
||||||
return statusVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ public class RouteStatusVO extends DeviceStatusVO {
|
|||||||
|
|
||||||
/** 检查冲突功能是否开启 */
|
/** 检查冲突功能是否开启 */
|
||||||
@JsonSerialize(using = Boolean2NumSerializer.class)
|
@JsonSerialize(using = Boolean2NumSerializer.class)
|
||||||
private boolean checkConflict;
|
private Boolean checkConflict;
|
||||||
|
|
||||||
public RouteStatusVO(Route route) {
|
public RouteStatusVO(Route route) {
|
||||||
super(route.getCode(), route.getDeviceType());
|
super(route.getCode(), route.getDeviceType());
|
||||||
|
Loading…
Reference in New Issue
Block a user