diff --git a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl.java b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl.java index a8ba68136..a8cdcb0c6 100644 --- a/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl.java +++ b/src/main/java/club/joylink/rtss/simulation/cbtc/CI/CiApiServiceImpl.java @@ -209,6 +209,14 @@ public class CiApiServiceImpl implements CiApiService { @Override public void sectionFaultUnlock(Simulation simulation, String sectionCode) { Section section = simulation.getRepository().getByCode(sectionCode, Section.class); + if (section.isCross()) { + Optional
crossLockedSectionOptional = section.getLogicList().stream().filter(Section::isLocked).findAny(); + BusinessExceptionAssertEnum.OPERATION_NOT_SUPPORTED.assertTrue(crossLockedSectionOptional.isPresent(), + section.debugStr() + "未锁闭,无需解锁"); + section = crossLockedSectionOptional.get(); + } + BusinessExceptionAssertEnum.OPERATION_NOT_SUPPORTED.assertTrue(section.isLocked(), + section.debugStr() + "未锁闭,无需解锁"); List lockedRouteList = simulation.getRepository().queryAllLockedRoute(); Route lockedRoute = null; for (Route route : lockedRouteList) {