运行图中间出库调整
This commit is contained in:
parent
34b5be2c29
commit
6aee4ce7e9
@ -69,8 +69,8 @@ public class RunPlanGenerator {
|
||||
Routing2BoundInfo outBoundRouting2 = null;
|
||||
Routing2BoundInfo outBoundRouting1 = null;
|
||||
if (inputData.hasOutAndInBound()) {
|
||||
outBoundRouting1 = getOutboundRouting(running1Routing, outboundRoutings);
|
||||
outBoundRouting2 = getOutboundRouting(running2Routing, outboundRoutings);
|
||||
outBoundRouting1 = getOutboundRouting(running1Routing, outboundRoutings,runLevelMap);
|
||||
outBoundRouting2 = getOutboundRouting(running2Routing, outboundRoutings,runLevelMap);
|
||||
if (Objects.nonNull(outBoundRouting1) && Objects.nonNull(outBoundRouting2)) {
|
||||
setOutBoundTripTimes(runLevelMap, parkTimeMap, reentryData, serviceTripList1, outBoundRouting1);
|
||||
setOutBoundTripTimes(runLevelMap, parkTimeMap, reentryData, serviceTripList2, outBoundRouting2);
|
||||
@ -104,11 +104,11 @@ public class RunPlanGenerator {
|
||||
//另一个交路
|
||||
RunPlanRoutingVO otherLoop = running2Routing;
|
||||
if (inputData.hasOutAndInBound()) {
|
||||
outBoundRouting = getOutboundRouting(running1Routing, outboundRoutings);
|
||||
outBoundRouting = getOutboundRouting(running1Routing, outboundRoutings,runLevelMap);
|
||||
outRefLoop = running1Routing;
|
||||
otherLoop = running2Routing;
|
||||
if (Objects.isNull(outBoundRouting)) {
|
||||
outBoundRouting = getOutboundRouting(running2Routing, outboundRoutings);
|
||||
outBoundRouting = getOutboundRouting(running2Routing, outboundRoutings,runLevelMap);
|
||||
outRefLoop = running2Routing;
|
||||
otherLoop = running1Routing;
|
||||
}
|
||||
@ -201,10 +201,10 @@ public class RunPlanGenerator {
|
||||
}
|
||||
|
||||
if (inputData.hasOutAndInBound()) {
|
||||
Routing2BoundInfo inboundRouting = getInboundRouting(loop ? outRefLoop : otherLoop, inboundRoutings);
|
||||
Routing2BoundInfo inboundRouting = getInboundRouting(loop ? outRefLoop : otherLoop, inboundRoutings,runLevelMap);
|
||||
if (Objects.isNull(inboundRouting)) {
|
||||
serviceTripList.removeLast();
|
||||
inboundRouting = getInboundRouting(!loop ? outRefLoop : otherLoop, inboundRoutings);
|
||||
inboundRouting = getInboundRouting(!loop ? outRefLoop : otherLoop, inboundRoutings,runLevelMap);
|
||||
}
|
||||
if (Objects.nonNull(inboundRouting)) {
|
||||
setInBoundTripTimes(runLevelMap, parkTimeMap, reentryData, serviceTripList, inboundRouting);
|
||||
@ -214,7 +214,7 @@ public class RunPlanGenerator {
|
||||
}
|
||||
|
||||
|
||||
private Routing2BoundInfo getInboundRouting(RunPlanRoutingVO runningRouting, List<RunPlanRoutingVO> inboundRoutings) {
|
||||
private Routing2BoundInfo getInboundRouting(RunPlanRoutingVO runningRouting, List<RunPlanRoutingVO> inboundRoutings, Map<String, Integer> runLevelMap) {
|
||||
//找入库
|
||||
RunPlanRoutingVO inboundRouting = null;
|
||||
List<RunPlanRoutingSection> parkSectionCodeList = runningRouting.getParkSectionCodeList();
|
||||
@ -222,16 +222,28 @@ public class RunPlanGenerator {
|
||||
t:
|
||||
for (int index = runningRouting.getStartTbFront() ? 0 : 1, i = parkSectionCodeList.size() - (runningRouting.getEndTbFront() ? 1 : 2); i > index; i--) {
|
||||
RunPlanRoutingSection parkSection = parkSectionCodeList.get(i);
|
||||
for (int x = 0, y = inboundRoutings.size(); x < y; x++) {
|
||||
RunPlanRoutingVO inRouting = inboundRoutings.get(x);
|
||||
|
||||
inboundRouting = inboundRoutings.stream().filter(inRouting -> {
|
||||
|
||||
List<RunPlanRoutingSection> inSectionList = inRouting.getParkSectionCodeList();
|
||||
RunPlanRoutingSection inSection = inSectionList.get(inSectionList.size() - 2);
|
||||
if (Objects.equals(parkSection.getSectionCode(), inSection.getSectionCode())) {
|
||||
inboundRouting = inRouting;
|
||||
return Objects.equals(parkSection.getSectionCode(), inSection.getSectionCode());
|
||||
}).sorted(Comparator.comparing(routingVO -> runLevelMap.get(parkSection.getSectionCode() + "-" + routingVO.getEndSectionCode()))).findFirst().orElse(null);
|
||||
if (Objects.nonNull(inboundRouting)) {
|
||||
r = runningRouting.getStartTbFront() ? i + 1 : i;
|
||||
break t;
|
||||
}
|
||||
}
|
||||
|
||||
// for (int x = 0, y = inboundRoutings.size(); x < y; x++) {
|
||||
// RunPlanRoutingVO inRouting = inboundRoutings.get(x);
|
||||
// List<RunPlanRoutingSection> inSectionList = inRouting.getParkSectionCodeList();
|
||||
// RunPlanRoutingSection inSection = inSectionList.get(inSectionList.size() - 2);
|
||||
// if (Objects.equals(parkSection.getSectionCode(), inSection.getSectionCode())) {
|
||||
// inboundRouting = inRouting;
|
||||
// r = runningRouting.getStartTbFront() ? i + 1 : i;
|
||||
// break t;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
if (Objects.isNull(inboundRouting)) return null;
|
||||
return new Routing2BoundInfo(inboundRouting, r);
|
||||
@ -309,7 +321,8 @@ public class RunPlanGenerator {
|
||||
continue;
|
||||
}
|
||||
RunPlanUserConfigVO.ReentryTime reentryTime = reentryData.get(routingSection.getStationCode());
|
||||
runPlanTripTimeVO.setArrivalTime(CollectionUtils.isEmpty(tripTimeList) ? tripList.getLast().getEndTime().plusSeconds(45)
|
||||
runPlanTripTimeVO.setArrivalTime(CollectionUtils.isEmpty(tripTimeList) ?
|
||||
CollectionUtils.isEmpty(tripList) ? inputData.getBeginTime().plusSeconds(reentryData.get(routing.getStartStationCode()).getTbTo()): tripList.getLast().getEndTime().plusSeconds(reentryData.get(routing.getStartStationCode()).getTbBack()-reentryData.get(routing.getStartStationCode()).getTbFrom())
|
||||
: tripTimeList.getLast().getDepartureTime().plusSeconds(runLevelMap.get(tripTimeList.getLast().getSectionCode() + "-" + runPlanTripTimeVO.getSectionCode())));
|
||||
runPlanTripTimeVO.setDepartureTime(Objects.isNull(routing.getEndTbFront())
|
||||
? runPlanTripTimeVO.getArrivalTime()
|
||||
@ -373,7 +386,7 @@ public class RunPlanGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
private Routing2BoundInfo getOutboundRouting(RunPlanRoutingVO runningRouting, List<RunPlanRoutingVO> outboundRoutings) {
|
||||
private Routing2BoundInfo getOutboundRouting(RunPlanRoutingVO runningRouting, List<RunPlanRoutingVO> outboundRoutings,Map<String, Integer> runLevelMap) {
|
||||
//找出库
|
||||
RunPlanRoutingVO outboundRouting = null;
|
||||
List<RunPlanRoutingSection> parkSectionCodeList = runningRouting.getParkSectionCodeList();
|
||||
@ -381,15 +394,26 @@ public class RunPlanGenerator {
|
||||
t:
|
||||
for (int i = runningRouting.getStartTbFront() ? 0 : 1, index = parkSectionCodeList.size() - (runningRouting.getEndTbFront() ? 1 : 2); i < index; i++) {
|
||||
RunPlanRoutingSection parkSection = parkSectionCodeList.get(i);
|
||||
for (int x = 0, y = outboundRoutings.size(); x < y; x++) {
|
||||
RunPlanRoutingVO outRouting = outboundRoutings.get(x);
|
||||
|
||||
outboundRouting = outboundRoutings.stream().filter(outRouting -> {
|
||||
RunPlanRoutingSection outSection = outRouting.getParkSectionCodeList().get(1);
|
||||
if (Objects.equals(parkSection.getSectionCode(), outSection.getSectionCode())) {
|
||||
outboundRouting = outRouting;
|
||||
return Objects.equals(parkSection.getSectionCode(), outSection.getSectionCode());
|
||||
}).sorted(Comparator.comparing(routingVO -> runLevelMap.get(routingVO.getStartSectionCode() + "-" + parkSection.getSectionCode()))).findFirst().orElse(null);
|
||||
if (Objects.nonNull(outboundRouting)) {
|
||||
r = runningRouting.getStartTbFront() ? i : i - 1;
|
||||
break t;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// for (int x = 0, y = outboundRoutings.size(); x < y; x++) {
|
||||
// RunPlanRoutingVO outRouting = outboundRoutings.get(x);
|
||||
// RunPlanRoutingSection outSection = outRouting.getParkSectionCodeList().get(1);
|
||||
// if (Objects.equals(parkSection.getSectionCode(), outSection.getSectionCode())) {
|
||||
// outboundRouting = outRouting;
|
||||
// r = runningRouting.getStartTbFront() ? i : i - 1;
|
||||
// break t;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
if (Objects.isNull(outboundRouting)) return null;
|
||||
return new Routing2BoundInfo(outboundRouting, r);
|
||||
|
Loading…
Reference in New Issue
Block a user