去掉进路办理时对非CBTC进路的延续保护锁闭状态检查;添加<取消设置>操作;添加<传输信号机>绘图数据

This commit is contained in:
joylink_zhangsai 2021-01-19 11:19:24 +08:00
parent 3b99e3f5ea
commit f0b8778bfb
10 changed files with 66 additions and 18 deletions

View File

@ -183,6 +183,8 @@ public class Operation {
Stand_Total_Cancel, Stand_Total_Cancel,
/** 手动开启屏蔽门 */ /** 手动开启屏蔽门 */
Stand_Open_Psd, Stand_Open_Psd,
/** 取消设置(扣车或跳停) */
Stand_Cancel_Setting,
//--------------------------- 控制模式 --------------------------- //--------------------------- 控制模式 ---------------------------
/** 请求站控 */ /** 请求站控 */

View File

@ -162,4 +162,12 @@ public class StandOperateHandler {
public void manualOpenPsd(Simulation simulation, String standCode) { public void manualOpenPsd(Simulation simulation, String standCode) {
atsStandService.manualOpenPsd(simulation, standCode); atsStandService.manualOpenPsd(simulation, standCode);
} }
/**
* 取消设置
*/
@OperateHandlerMapping(type = Operation.Type.Stand_Cancel_Setting)
public void cancelSetting(Simulation simulation, String standCode) {
atsStandService.cancelSetting(simulation, standCode);
}
} }

View File

@ -254,4 +254,10 @@ public class SwitchOperateHandler {
vrSwitch.setNormal(normal); vrSwitch.setNormal(normal);
vrSwitch.setReverse(!normal); vrSwitch.setReverse(!normal);
} }
/** 强行转岔 */
@OperateHandlerMapping(type = Operation.Type.Switch_Force_Turn)
public void switchForceTurn(Simulation simulation, String switchCode, Boolean normal) {
ciApiService.switchForceTurn(simulation, switchCode, normal);
}
} }

View File

@ -77,7 +77,6 @@ public class AtsRouteSettingService {
route = this.queryPlanTrainNeedRoute(simulation, train, signal, trainList); route = this.queryPlanTrainNeedRoute(simulation, train, signal, trainList);
} else if (train.isHeadCodeTrain()) { // 头码车 } else if (train.isHeadCodeTrain()) { // 头码车
route = this.queryHeadTrainNeedRoute(simulation, train, signal, trainList); route = this.queryHeadTrainNeedRoute(simulation, train, signal, trainList);
// headTrainToSetRoute(repository, trainPositionMap, signalTrainMap, waitSettingList, signal, train);
} }
if (Objects.nonNull(route)) { if (Objects.nonNull(route)) {
waitSettingList.add(new TrainRoute(train, trainPositionMap.get(train.getGroupNumber()), waitSettingList.add(new TrainRoute(train, trainPositionMap.get(train.getGroupNumber()),

View File

@ -407,4 +407,16 @@ public class AtsStandService {
Stand stand = repository.getByCode(standCode, Stand.class); Stand stand = repository.getByCode(standCode, Stand.class);
stand.getPsd().getVirtualScreenDoor().updateLockAndClose(false, true); stand.getPsd().getVirtualScreenDoor().updateLockAndClose(false, true);
} }
/**
* 取消设置扣车或跳停
*/
public void cancelSetting(Simulation simulation, String standCode) {
Stand stand = simulation.getRepository().getByCode(standCode, Stand.class);
if (stand.isStationHoldTrain()) {
cancelHoldTrain(simulation, standCode);
} else if (stand.isAllSkip()) {
cancelJumpStop(simulation, standCode, null);
}
}
} }

View File

@ -314,4 +314,9 @@ public interface CiApiService {
* 取消站台紧急停车 * 取消站台紧急停车
*/ */
void cancelStandEB(Simulation simulation, Stand stand); void cancelStandEB(Simulation simulation, Stand stand);
/**
* 强扳道岔
*/
void switchForceTurn(Simulation simulation, String switchCode, Boolean normal);
} }

View File

@ -455,4 +455,9 @@ public class CiApiServiceImpl implements CiApiService {
return; return;
stand.getEsp().update(false); stand.getEsp().update(false);
} }
@Override
public void switchForceTurn(Simulation simulation, String switchCode, Boolean normal) {
}
} }

View File

@ -132,7 +132,6 @@ public class RouteService {
/** /**
* 进路CBTC/联锁办理条件公有检查 * 进路CBTC/联锁办理条件公有检查
* *
*
* @param simulation * @param simulation
* @param route * @param route
* @return * @return
@ -428,12 +427,12 @@ public class RouteService {
} }
boolean onPosition = this.checkRouteSwitchPosition(switchList); boolean onPosition = this.checkRouteSwitchPosition(switchList);
if (!onPosition) return false; if (!onPosition) return false;
if (!route.isCbtcMode()) { // 检查进路延续保护 // if (!route.isCbtcMode()) { // 检查进路延续保护
RouteOverlap overlap = route.getOverlap(); // RouteOverlap overlap = route.getOverlap();
if (Objects.nonNull(overlap) && !overlap.isLock()) { // if (Objects.nonNull(overlap) && !overlap.isLock()) {
return false; // return false;
} // }
} // }
return true; return true;
} }
@ -869,17 +868,17 @@ public class RouteService {
return level; return level;
} }
} }
// 非CBTC下如果进路区段中有站台轨站台屏蔽门开着需要关灯 // 非CBTC级别下如果进路区段中有站台轨站台屏蔽门开着需要关灯
if (!route.isCbtcMode()) { // if (!route.isCbtcMode()) {
List<Section> standTracks = sectionList.stream().filter(Section::isStandTrack).collect(Collectors.toList()); List<Section> standTracks = sectionList.stream().filter(Section::isStandTrack).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(standTracks)) { if (!CollectionUtils.isEmpty(standTracks)) {
for (Section standTrack : standTracks) { for (Section standTrack : standTracks) {
List<Stand> standList = standTrack.getStandList(); List<Stand> standList = standTrack.getStandList();
if (standList.stream().anyMatch(stand -> stand.getPsd() != null && !stand.getPsd().isCloseAndLock())) if (standList.stream().anyMatch(stand -> stand.getPsd() != null && !stand.getPsd().isCloseAndLock()))
return level; return level;
}
} }
} }
// }
} else { // 后备模式检查 } else { // 后备模式检查
// 区段占用检查 // 区段占用检查
Route.CheckFailMessage checkFailMessage = this.ciLevelCheck(route); Route.CheckFailMessage checkFailMessage = this.ciLevelCheck(route);

View File

@ -120,6 +120,11 @@ public class Signal extends MayOutOfOrderDevice {
*/ */
private AutoSignal autoSignal; private AutoSignal autoSignal;
/**
* 传输信号机关联的信号机
*/
private Signal linkSignal;
// ------------------状态属性--------------------- // ------------------状态属性---------------------
/** /**
@ -404,7 +409,11 @@ public class Signal extends MayOutOfOrderDevice {
/** /**
* 通过信号机 * 通过信号机
*/ */
PASSING PASSING,
/**
* 传输信号机
*/
TRANSMISSION,
} }
public enum SignalFault implements DeviceFault { public enum SignalFault implements DeviceFault {

View File

@ -187,4 +187,7 @@ public class MapSignalNewVO {
/**是否无延续保护*/ /**是否无延续保护*/
@ApiModelProperty(value="是否无延续保护") @ApiModelProperty(value="是否无延续保护")
private boolean noOverlap; private boolean noOverlap;
@ApiModelProperty(value = "传输信号机关联的信号机")
private String linkSignalCode;
} }