From e50ce3dfe77999dabcd254c45bfdbc5258ac1e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=81=D0=B5=D0=BB=D1=91=D0=B2=20=D0=92=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=B8=D1=81=D0=BB=D0=B0=D0=B2?= Date: Sun, 18 Nov 2018 21:33:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=88=D0=B2=D0=B0=D1=82=D1=80=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/inport/ConversionUtil.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/inport/ConversionUtil.java b/src/inport/ConversionUtil.java index 8f06208..ffbd1d2 100644 --- a/src/inport/ConversionUtil.java +++ b/src/inport/ConversionUtil.java @@ -196,7 +196,7 @@ public class ConversionUtil { Function mObjToN = (MovingObject obj) -> mObjNumberById.get(obj.getId()); ArrayList operationTemplates = new ArrayList<>(task.getTemplates()); - { // Операции прибытия/отбытия в локацию. + { // Операции прибытия/отбытия в локацию. (В том числе и швартовка.) ArrayList>> arrivalOp = new ArrayList<>(); ArrayList>> 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 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); -- GitLab