Commit e50ce3df authored by Vladislav Kiselev's avatar Vladislav Kiselev

Обработка шватровки

parent 070acdf1
......@@ -196,7 +196,7 @@ public class ConversionUtil {
Function<MovingObject, Integer> mObjToN = (MovingObject obj) -> mObjNumberById.get(obj.getId());
ArrayList<OperationTemplate> operationTemplates = new ArrayList<>(task.getTemplates());
{ // Операции прибытия/отбытия в локацию.
{ // Операции прибытия/отбытия в локацию. (В том числе и швартовка.)
ArrayList<ArrayList<ArrayList<Integer>>> arrivalOp = new ArrayList<>();
ArrayList<ArrayList<ArrayList<Integer>>> departureOp = new ArrayList<>();
for (int i = 0; i < movingObjects.size(); i++) {
......@@ -219,9 +219,22 @@ public class ConversionUtil {
movingObjN.add(mObjToN.apply(op.getMover()));
for (Integer n : movingObjN) {
arrivalOp.get(n).get(getLocNById.apply(op.getDestination().getId(), false)).add(i);
arrivalOp .get(n).get(getLocNById.apply(op.getDestination().getId(), false)).add(i);
departureOp.get(n).get(getLocNById.apply(op.getStartLocation().getId(), false)).add(i);
}
} else if (operationTemplates.get(i) instanceof MooringTemplate) {
MooringTemplate op = (MooringTemplate)operationTemplates.get(i);
ArrayList<Integer> movingObjN = new ArrayList<>();
for (MovingObject obj : op.getResources()) {
movingObjN.add(mObjToN.apply(obj));
}
movingObjN.add(mObjToN.apply(op.getMoorer()));
for (Integer n : movingObjN) {
arrivalOp .get(n).get(getLocNById.apply(op.getStartLocation().getId(), !op.isDirect())).add(i);
departureOp.get(n).get(getLocNById.apply(op.getStartLocation().getId(), op.isDirect())).add(i);
}
}
}
write2DArray(writer, "arrival_op", arrivalOp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment