自动化立体仓库 - WMS系统
#
lsh
2025-04-08 abc40d18cdfde0826bd7ae1377e9973cff3eefb8
src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java
@@ -207,7 +207,114 @@
            int sign = 0;
            int staA=118;
            int staB=119;
            int staB=118;
            for (List<StockOutParam.LocDetl> locDetlList:lists){
                sign++;
                if (locDetlList.size()==0){
                    continue;
                }
                if (sign>lists.size()/2) {
                    //120、121
                    staA=120;
                    staB=121;
                }
                List<StockOutParam.LocDetl> locDetlsA = new ArrayList<>();
                List<StockOutParam.LocDetl> locDetlsB = new ArrayList<>();
                List<String> locNos = new ArrayList<>();
                for (StockOutParam.LocDetl locDetl:locDetlList){
                    if (locDetlsA.size()<locDetlList.size()/2){
                        locDetlsA.add(locDetl);
                        if (!locNos.contains(locDetl.getLocNo())){
                            locNos.add(locDetl.getLocNo());
                        }
                    }else {
                        if (locNos.contains(locDetl.getLocNo())){
                            locDetlsA.add(locDetl);
                        }else {
                            locDetlsB.add(locDetl);
                        }
                    }
                }
                if (locDetlsA.size()!=0){
                    StockOutParam stockOutParamA = new StockOutParam();
                    stockOutParamA.setOutSite(staA);
                    stockOutParamA.setOrderNo(param.getOrderNo());
                    stockOutParamA.setLocDetls(locDetlsA);
                    stockOutParams.add(stockOutParamA);
                }
                if (locDetlsB.size()!=0){
                    StockOutParam stockOutParamB = new StockOutParam();
                    stockOutParamB.setOutSite(staB);
                    stockOutParamB.setOrderNo(param.getOrderNo());
                    stockOutParamB.setLocDetls(locDetlsB);
                    stockOutParams.add(stockOutParamB);
                }
            }
        }
        return stockOutParams;
    }
    public static List<StockOutParam> OutboundClassificationNew(StockOutParam param){
        List<StockOutParam> stockOutParams = new ArrayList<>();
        List<StockOutParam.LocDetl> locDetls = param.getLocDetls();
        List<String> brands = new ArrayList<>();
        for (StockOutParam.LocDetl locDetl:locDetls){
            if (Cools.isEmpty(locDetl.getBrand())){
                locDetl.setBrand("");
            }
            if (!brands.contains(locDetl.getBrand())){
                brands.add(locDetl.getBrand());
            }
        }
        for (String brand : brands){
            List<StockOutParam.LocDetl> locDetls1 = new ArrayList<>();
            List<StockOutParam.LocDetl> locDetls2 = new ArrayList<>();
            List<StockOutParam.LocDetl> locDetls3 = new ArrayList<>();
            List<StockOutParam.LocDetl> locDetls4 = new ArrayList<>();
            List<StockOutParam.LocDetl> locDetls5 = new ArrayList<>();
            List<StockOutParam.LocDetl> locDetls6 = new ArrayList<>();
            for (StockOutParam.LocDetl locDetl:locDetls){
                if (Cools.isEmpty(locDetl.getBrand())){
                    locDetl.setBrand("");
                }
                if (locDetl.getBrand().equals(brand)){
                    switch (Utils.getRow(locDetl.getLocNo())){
                        case 1: case 2: case 3: case 4:
                            locDetls1.add(locDetl);
                            break;
                        case 5: case 6: case 7: case 8:
                            locDetls2.add(locDetl);
                            break;
                        case 9: case 10: case 11: case 12:
                            locDetls3.add(locDetl);
                            break;
                        case 13: case 14: case 15: case 16:
                            locDetls4.add(locDetl);
                            break;
                        case 17: case 18: case 19: case 20:
                            locDetls5.add(locDetl);
                            break;
                        case 21: case 22: case 23: case 24:
                            locDetls6.add(locDetl);
                            break;
                        default:
                    }
                }
            }
            ArrayList<List<StockOutParam.LocDetl>> lists = new ArrayList<>();
            lists.add(locDetls1);
            lists.add(locDetls2);
            lists.add(locDetls3);
            lists.add(locDetls4);
            lists.add(locDetls5);
            lists.add(locDetls6);
            int sign = 0;
            int staA=118;
            int staB=118;
            for (List<StockOutParam.LocDetl> locDetlList:lists){
                sign++;
                if (locDetlList.size()==0){