自动化立体仓库 - WMS系统
*
L
3 天以前 6171267251370ef7cd590782c729baf4ff19abc2
*
1个文件已修改
71 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java
@@ -3,13 +3,11 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.param.StockOutParam;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.*;
public class OutboundAllocationUtil {
//    public static void main(String[] args) {
@@ -36,34 +34,55 @@
//        System.out.println(JSON.toJSONString(integersStaArr));
//    }
    public static void main(String[] args) {
        int numLanes = 3;
        int numWarehouses = 2;
        List<Integer> goods = new ArrayList<>();
        // Generate random goods// 生成随机货物数量
        Random random = new Random();
        for (int i = 0; i < numLanes; i++) {
            int goodsCount = random.nextInt(10) + 1; // Randomly generate goods count (1-10)// 随机生成货物数量 (1-10)
            goods.add(goodsCount);
        int[] staNos =new int[]{118,120,121};
        List<Integer> integersStaArr = new ArrayList<>();
        List<Long[]> stalistArr = new ArrayList<>();
        for(Integer staNo : staNos){
            Date modiTime = new Date();
            stalistArr.add(new Long[]{staNo.longValue(), modiTime.getTime()-staNo.longValue()});
        }
        int[] warehouses = distributeGoods(numLanes, numWarehouses,goods);
        System.out.println(JSON.toJSONString(stalistArr));
        if (!stalistArr.isEmpty() && stalistArr.size()>1){
//            Collections.sort(stalistArr, (a, b) -> a[1] - b[1]);  // 降序排列
        System.out.println("Goods distribution:");//货物分配情况
        for (int i = 0; i < numWarehouses; i++) {
            System.out.println("Warehouse " + (i + 1) + ": " + warehouses[i] + " goods");
            Collections.sort(stalistArr, Comparator.comparingLong(arr -> arr[1]));
            for (Long[] staNowArr : stalistArr){
                integersStaArr.add(staNowArr[0].intValue());
            }
        }
        System.out.println(JSON.toJSONString(integersStaArr));
        int[] warehouses2 = distributeGoods2(numLanes, numWarehouses,goods);
        System.out.println("Goods distribution2:");//货物分配情况
        for (int i = 0; i < numWarehouses; i++) {
            System.out.println("Warehouse " + (i + 1) + ": " + warehouses2[i] + " goods");
        }
        int totalItems = 1000; // 替换为实际的出库箱子数量
        distributeItemsToTrucks(totalItems);
    }
//    public static void main(String[] args) {
//        int numLanes = 3;
//        int numWarehouses = 2;
//        List<Integer> goods = new ArrayList<>();
//
//        // Generate random goods// 生成随机货物数量
//        Random random = new Random();
//        for (int i = 0; i < numLanes; i++) {
//            int goodsCount = random.nextInt(10) + 1; // Randomly generate goods count (1-10)// 随机生成货物数量 (1-10)
//            goods.add(goodsCount);
//        }
//        int[] warehouses = distributeGoods(numLanes, numWarehouses,goods);
//
//
//        System.out.println("Goods distribution:");//货物分配情况
//        for (int i = 0; i < numWarehouses; i++) {
//            System.out.println("Warehouse " + (i + 1) + ": " + warehouses[i] + " goods");
//        }
//
//        int[] warehouses2 = distributeGoods2(numLanes, numWarehouses,goods);
//
//        System.out.println("Goods distribution2:");//货物分配情况
//        for (int i = 0; i < numWarehouses; i++) {
//            System.out.println("Warehouse " + (i + 1) + ": " + warehouses2[i] + " goods");
//        }
//
//        int totalItems = 1000; // 替换为实际的出库箱子数量
//        distributeItemsToTrucks(totalItems);
//    }
    public static int[] distributeGoods(int numLanes, int numWarehouses,List<Integer> goods) {
        int[] warehouses = new int[numWarehouses];