Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
b97969ab47
@ -9,6 +9,7 @@ import club.joylink.rtss.services.training.generatornew.GeneratorNew;
|
|||||||
import club.joylink.rtss.simulation.cbtc.Simulation;
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
import club.joylink.rtss.simulation.cbtc.build.SimulationBuildParams;
|
import club.joylink.rtss.simulation.cbtc.build.SimulationBuildParams;
|
||||||
import club.joylink.rtss.simulation.cbtc.build.SimulationBuilder;
|
import club.joylink.rtss.simulation.cbtc.build.SimulationBuilder;
|
||||||
|
import club.joylink.rtss.simulation.cbtc.data.map.Signal;
|
||||||
import club.joylink.rtss.vo.client.CommandDefinitionVO;
|
import club.joylink.rtss.vo.client.CommandDefinitionVO;
|
||||||
import club.joylink.rtss.vo.client.LessonChapterTrainingRelVO;
|
import club.joylink.rtss.vo.client.LessonChapterTrainingRelVO;
|
||||||
import club.joylink.rtss.vo.client.LessonVO;
|
import club.joylink.rtss.vo.client.LessonVO;
|
||||||
@ -77,6 +78,18 @@ public class GenerateTask {
|
|||||||
// 构造仿真数据
|
// 构造仿真数据
|
||||||
// 根据操作定义生成实训
|
// 根据操作定义生成实训
|
||||||
definitionVOList.forEach(operateDefinitionVO -> {
|
definitionVOList.forEach(operateDefinitionVO -> {
|
||||||
|
if (operateDefinitionVO.useReplaceSignal()) {
|
||||||
|
mapVO.getGraphDataNew().getSignalList().stream()
|
||||||
|
.filter(signalVO -> Signal.SignalType.TRANSMISSION.equals(signalVO.getType()))
|
||||||
|
.forEach(signalVO -> {
|
||||||
|
Signal signal = new Signal(signalVO.getCode(), signalVO.getUniqueName());
|
||||||
|
signal.setShowName(signalVO.getName());
|
||||||
|
Signal linkSignal = simulation.getRepository().getByCode(signalVO.getLinkSignalCode(), Signal.class);
|
||||||
|
signal.setLinkSignal(linkSignal);
|
||||||
|
linkSignal.addReplaceSignal(signal);
|
||||||
|
simulation.getRepository().getSignalList().add(signal);
|
||||||
|
});
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
List<TrainingNewVO> trainingVOList = generator.generate(config, simulation, operateDefinitionVO);
|
List<TrainingNewVO> trainingVOList = generator.generate(config, simulation, operateDefinitionVO);
|
||||||
if (CollectionUtils.isEmpty(trainingVOList)) {
|
if (CollectionUtils.isEmpty(trainingVOList)) {
|
||||||
|
@ -48,7 +48,10 @@ public interface TrainingConsts {
|
|||||||
/** 终端按钮信号机 */
|
/** 终端按钮信号机 */
|
||||||
END_BUTTON_SIGNAL,
|
END_BUTTON_SIGNAL,
|
||||||
/** 终端按钮信号机 */
|
/** 终端按钮信号机 */
|
||||||
BUTTON;
|
BUTTON,
|
||||||
|
/** 终端替代信号机 */
|
||||||
|
END_REPLACE_SIGNAL,
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package club.joylink.rtss.services.training.generatornew;
|
package club.joylink.rtss.services.training.generatornew;
|
||||||
|
|
||||||
import club.joylink.rtss.constants.BusinessConsts;
|
import club.joylink.rtss.constants.BusinessConsts;
|
||||||
|
import club.joylink.rtss.constants.MapPrdTypeEnum;
|
||||||
import club.joylink.rtss.services.training.constant.TrainingConsts;
|
import club.joylink.rtss.services.training.constant.TrainingConsts;
|
||||||
import club.joylink.rtss.services.training.data.GenerateConfig;
|
import club.joylink.rtss.services.training.data.GenerateConfig;
|
||||||
import club.joylink.rtss.simulation.cbtc.Simulation;
|
import club.joylink.rtss.simulation.cbtc.Simulation;
|
||||||
@ -91,6 +92,23 @@ public interface GeneratorNew {
|
|||||||
case END_SIGNAL:
|
case END_SIGNAL:
|
||||||
s.setDeviceCode(((Route) mapDevice).getDestination().getCode());
|
s.setDeviceCode(((Route) mapDevice).getDestination().getCode());
|
||||||
break;
|
break;
|
||||||
|
case END_REPLACE_SIGNAL:
|
||||||
|
Route route = (Route) mapDevice;
|
||||||
|
List<Signal> replaceSignals = route.getDestination().getReplaceSignals();
|
||||||
|
if (replaceSignals != null) {
|
||||||
|
Signal signal;
|
||||||
|
if (MapPrdTypeEnum.LOCAL.equals(MapPrdTypeEnum.getMapPrdTypeEnumByCode(config.getPrdType()))) {
|
||||||
|
signal = replaceSignals.stream().filter(ss -> ss.getShowName().startsWith("F")).findFirst().orElse(null);
|
||||||
|
} else {
|
||||||
|
signal = replaceSignals.stream().filter(ss -> ss.getShowName().startsWith("T")).findFirst().orElse(null);
|
||||||
|
}
|
||||||
|
if (signal != null) {
|
||||||
|
s.setDeviceCode(signal.getCode());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.setDeviceCode(route.getDestination().getCode());
|
||||||
|
break;
|
||||||
case END_BUTTON_SIGNAL:
|
case END_BUTTON_SIGNAL:
|
||||||
s.setDeviceCode(((Route) mapDevice).getDestinationButtonSignal().getCode());
|
s.setDeviceCode(((Route) mapDevice).getDestinationButtonSignal().getCode());
|
||||||
break;
|
break;
|
||||||
|
@ -41,8 +41,12 @@ public class StationGeneratorNew implements GeneratorNew {
|
|||||||
switch (Operation.Type.valueOf (operateDefinitionVO.getOperateType())) {
|
switch (Operation.Type.valueOf (operateDefinitionVO.getOperateType())) {
|
||||||
case Station_Set_CI_Auto_Trigger:
|
case Station_Set_CI_Auto_Trigger:
|
||||||
if(!station.isInterlock())continue;
|
if(!station.isInterlock())continue;
|
||||||
if (MapPrdTypeEnum.LOCAL.equals(MapPrdTypeEnum.getMapPrdTypeEnumByCode(config.getPrdType()))) {
|
if (BusinessConsts.MapPrd.PrdType.Type01.equals(config.getPrdType())) {
|
||||||
|
if(station.isCentralized()) {
|
||||||
station.setControlMode(Station.ControlMode.Local);
|
station.setControlMode(Station.ControlMode.Local);
|
||||||
|
}else{
|
||||||
|
station.getDeviceStation().setControlMode(Station.ControlMode.Local);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
simulation.getRepository().getRouteList().stream()
|
simulation.getRepository().getRouteList().stream()
|
||||||
.filter(route -> route.getInterlockStation().equals(station))
|
.filter(route -> route.getInterlockStation().equals(station))
|
||||||
@ -56,8 +60,12 @@ public class StationGeneratorNew implements GeneratorNew {
|
|||||||
break;
|
break;
|
||||||
case Station_Cancel_CI_Auto_Trigger:
|
case Station_Cancel_CI_Auto_Trigger:
|
||||||
if(!station.isInterlock())continue;
|
if(!station.isInterlock())continue;
|
||||||
if (MapPrdTypeEnum.LOCAL.equals(MapPrdTypeEnum.getMapPrdTypeEnumByCode(config.getPrdType()))) {
|
if (BusinessConsts.MapPrd.PrdType.Type01.equals(config.getPrdType())) {
|
||||||
|
if(station.isCentralized()) {
|
||||||
station.setControlMode(Station.ControlMode.Local);
|
station.setControlMode(Station.ControlMode.Local);
|
||||||
|
}else{
|
||||||
|
station.getDeviceStation().setControlMode(Station.ControlMode.Local);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
List<Route> routeList2 = simulation.getRepository().getRouteList();
|
List<Route> routeList2 = simulation.getRepository().getRouteList();
|
||||||
for (Route route : routeList2) {
|
for (Route route : routeList2) {
|
||||||
@ -69,7 +77,13 @@ public class StationGeneratorNew implements GeneratorNew {
|
|||||||
break;
|
break;
|
||||||
case Station_Open_Auto_Setting:
|
case Station_Open_Auto_Setting:
|
||||||
if(!station.isInterlock())continue;
|
if(!station.isInterlock())continue;
|
||||||
station.setControlMode(Station.ControlMode.Center);
|
if (BusinessConsts.MapPrd.PrdType.Type01.equals(config.getPrdType())) {
|
||||||
|
if(station.isCentralized()) {
|
||||||
|
station.setControlMode(Station.ControlMode.Local);
|
||||||
|
}else{
|
||||||
|
station.getDeviceStation().setControlMode(Station.ControlMode.Local);
|
||||||
|
}
|
||||||
|
}
|
||||||
List<Route> routeList3 = simulation.getRepository().getRouteList();
|
List<Route> routeList3 = simulation.getRepository().getRouteList();
|
||||||
for (Route route : routeList3) {
|
for (Route route : routeList3) {
|
||||||
if (Objects.equals(route.getInterlockStation(), station)) {
|
if (Objects.equals(route.getInterlockStation(), station)) {
|
||||||
@ -81,8 +95,14 @@ public class StationGeneratorNew implements GeneratorNew {
|
|||||||
break;
|
break;
|
||||||
case Station_Close_Auto_Setting:
|
case Station_Close_Auto_Setting:
|
||||||
if(!station.isInterlock())continue;
|
if(!station.isInterlock())continue;
|
||||||
|
if (BusinessConsts.MapPrd.PrdType.Type01.equals(config.getPrdType())) {
|
||||||
|
if(station.isCentralized()) {
|
||||||
|
station.setControlMode(Station.ControlMode.Local);
|
||||||
|
}else{
|
||||||
|
station.getDeviceStation().setControlMode(Station.ControlMode.Local);
|
||||||
|
}
|
||||||
|
}
|
||||||
List<Route> routeList4 = simulation.getRepository().getRouteList();
|
List<Route> routeList4 = simulation.getRepository().getRouteList();
|
||||||
station.setControlMode(Station.ControlMode.Center);
|
|
||||||
for (Route route : routeList4) {
|
for (Route route : routeList4) {
|
||||||
if (Objects.equals(route.getInterlockStation(), station)) {
|
if (Objects.equals(route.getInterlockStation(), station)) {
|
||||||
if (!route.isAtsControl()) {
|
if (!route.isAtsControl()) {
|
||||||
@ -261,6 +281,13 @@ public class StationGeneratorNew implements GeneratorNew {
|
|||||||
}
|
}
|
||||||
case Station_Release: {
|
case Station_Release: {
|
||||||
if(!station.isInterlock())continue;
|
if(!station.isInterlock())continue;
|
||||||
|
if (BusinessConsts.MapPrd.PrdType.Type01.equals(config.getPrdType())) {
|
||||||
|
if(station.isCentralized()) {
|
||||||
|
station.setControlMode(Station.ControlMode.Local);
|
||||||
|
}else{
|
||||||
|
station.getDeviceStation().setControlMode(Station.ControlMode.Local);
|
||||||
|
}
|
||||||
|
}
|
||||||
SimulationMember member = new SimulationMember("", SimulationMember.Type.DISPATCHER, null);
|
SimulationMember member = new SimulationMember("", SimulationMember.Type.DISPATCHER, null);
|
||||||
String operate = Operation.Type.Server_ATP_Restart.name();
|
String operate = Operation.Type.Server_ATP_Restart.name();
|
||||||
Map<String, Object> param = new HashMap<>();
|
Map<String, Object> param = new HashMap<>();
|
||||||
|
@ -147,6 +147,11 @@ public class Signal extends DelayUnlockDevice {
|
|||||||
*/
|
*/
|
||||||
private Signal linkSignal;
|
private Signal linkSignal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 替代信号机
|
||||||
|
*/
|
||||||
|
private List<Signal> replaceSignals;
|
||||||
|
|
||||||
// ------------------状态属性---------------------
|
// ------------------状态属性---------------------
|
||||||
|
|
||||||
private int mode;
|
private int mode;
|
||||||
@ -615,6 +620,13 @@ public class Signal extends DelayUnlockDevice {
|
|||||||
return this.signalModel.getGuideAspect();
|
return this.signalModel.getGuideAspect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addReplaceSignal(Signal signal) {
|
||||||
|
if (replaceSignals == null) {
|
||||||
|
replaceSignals = new ArrayList<>();
|
||||||
|
}
|
||||||
|
replaceSignals.add(signal);
|
||||||
|
}
|
||||||
|
|
||||||
public enum LightColor {
|
public enum LightColor {
|
||||||
RED,
|
RED,
|
||||||
YELLOW,
|
YELLOW,
|
||||||
|
@ -26,6 +26,8 @@ public class OperateDefinitionConfig {
|
|||||||
|
|
||||||
private List<String> sectionTypes;//区段生成指定类型
|
private List<String> sectionTypes;//区段生成指定类型
|
||||||
|
|
||||||
|
public Boolean useReplaceSignal;
|
||||||
|
|
||||||
public boolean isAtp() {
|
public boolean isAtp() {
|
||||||
return RouteType.ATP.equals(this.routeType);
|
return RouteType.ATP.equals(this.routeType);
|
||||||
}
|
}
|
||||||
|
@ -198,4 +198,12 @@ public class OperateDefinitionVO {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean useReplaceSignal() {
|
||||||
|
OperateDefinitionConfig routeSettingConfig = this.getRouteSettingConfig();
|
||||||
|
if (Objects.nonNull(routeSettingConfig)) {
|
||||||
|
return routeSettingConfig.getUseReplaceSignal() != null && routeSettingConfig.getUseReplaceSignal();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user