private UUID manualAssignment()

in prototype/dispatch/order-dispatcher/src/main/java/com/aws/proto/dispatching/api/v1/DispatcherResource.java [144:183]


    private UUID manualAssignment(List<PlanningVisit> planningVisits, List<PlanningDriver> drivers) {
        int orderNum = planningVisits.size() / 2;
        int driverNum = drivers.size();

        int len = Math.min(orderNum, driverNum);

        List<DispatcherResult.AssignedOrders> assignedOrders = new ArrayList<>();
        List<String> unassignedOrders = new ArrayList<>();


        for (int i = 0; i < len; i++) {
            PlanningVisit pickup = planningVisits.get(2*i);
            PlanningVisit dropoff = planningVisits.get(2*i+1);
            PlanningDriver driver = drivers.get(i);

            assignedOrders.add(new DispatcherResult.AssignedOrders(
              driver.getId(),
              driver.getDriverIdentity(),
              driver.getLocation(),
              new ArrayList<>(Arrays.asList(pickup.getOrder().getOrderId())),
              new ArrayList<>(Arrays.asList(
                new DispatcherResult.Visit(pickup.getLocation()),
                new DispatcherResult.Visit(dropoff.getLocation())
              ))
            ));
        }

        if(orderNum > driverNum) {
            for (int i = driverNum; i < orderNum; i++) {
                unassignedOrders.add(planningVisits.get(2*i).getOrder().getOrderId());
            }
        }

        UUID id = UUID.randomUUID();
        DispatcherResult result = new DispatcherResult(UUID.randomUUID(), "execId-1234", Timestamp.valueOf(LocalDateTime.now()).getTime(), assignedOrders, unassignedOrders, "SOLVED", "0hard/0medium/0soft");
        TMP_RESULTS.put(id, result);

        logger.debug("Manually assigned drivers and orders: {}", result);
        return id;
    }