【实训背景设置修改】

This commit is contained in:
weizhihong 2022-12-07 10:12:02 +08:00
parent 473446cef0
commit cd344bc3f0
3 changed files with 31 additions and 5 deletions

View File

@ -68,7 +68,7 @@ public class Training2RuleService {
publishedTraining2Example.createCriteria().andMapIdEqualTo(mapId).andCreatorIdEqualTo(0L);
publishedTraining2DAO.deleteByExample(publishedTraining2Example);
// 生成新数据
ruleList.forEach(rule -> {
for (RtsTraining2RuleWithBLOBs rule : ruleList) {
Training2Rule training2Rule = new Training2Rule(rule);
List<MapNamedElement> deviceList = training2Rule.getDeviceRule().filterMapDeviceList(simulation);
List<PublishedTraining2WithBLOBs> training2WithBLOBs = new ArrayList<>(deviceList.size());
@ -79,7 +79,7 @@ public class Training2RuleService {
}
// 新数据入库
publishedTraining2DAO.insertList(training2WithBLOBs);
});
}
}
}
} finally {

View File

@ -35,6 +35,14 @@ public enum BgSceneStatusRule {
/**
* 设置进路背景blockade
*/
ROUTE_SET_BG_SCENE("排列进路背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Route route = (Route) mapElement;
route.getSwitchList().forEach(switchElement -> switchElement.getASwitch().setSingleLock(false));
return getBgScene(simulation);
}
},
ROUTE_CANCEL_BG_SCENE("取消进路背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
@ -91,6 +99,14 @@ public enum BgSceneStatusRule {
/**
* 道岔单解背景将道岔设置为封锁
*/
SWITCH_SINGLE_BLOCK_BG_SCENE("道岔单锁背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {
Switch iSwitch = (Switch) mapElement;
iSwitch.setSingleLock(false);
return getBgScene(simulation);
}
},
SWITCH_SINGLE_UNBLOCK_BG_SCENE("道岔单解背景") {
@Override
public String doHandle(Simulation simulation, MapElement mapElement) {

View File

@ -70,6 +70,10 @@ public enum MapDeviceRule {
if (route.isGuide()) { // 引导进路跳过
return false;
}
// 排除道岔默认单锁的进路
if (route.getSwitchList().stream().anyMatch(switchElement -> switchElement.getASwitch().isSingleLock())) {
return false;
}
if (railway) {
if (route.isPassRoute() || route.isLongShuntingRoute() ||
!(Route.Type.RECEIVING.equals(route.getType()) || Route.Type.DEPARTURE.equals(route.getType()))) {
@ -84,10 +88,16 @@ public enum MapDeviceRule {
SWITCH_LIST("道岔列表") {
@Override
public List<Switch> filterMapDeviceList(Simulation simulation) {
List<Station> stationList = STATION_LIST.filterMapDeviceList(simulation);
Station station = stationList.get(0);
List<Switch> switchList = simulation.getRepository().getSwitchList().stream()
.filter(aSwitch -> station.equals(aSwitch.getDeviceStation())).collect(Collectors.toList());
.filter(aSwitch -> {
if (aSwitch.getDeviceStation() != null && aSwitch.getDeviceStation().isDepot())
return false;
if (aSwitch.isSingleLock()) {
return false;
}
aSwitch.setSingleLock(false);
return true;
}).collect(Collectors.toList());
return generateRandomElement(switchList, 1);
}
},