From dfdd7980577e12e32fc9571f46f49385ac5edcdd Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 14 二月 2025 12:51:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 115 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java b/src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java index b7992c7..af3d97a 100644 --- a/src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java +++ b/src/main/java/com/zy/asrs/utils/OutboundAllocationUtil.java @@ -1,5 +1,6 @@ package com.zy.asrs.utils; +import com.core.common.Cools; import com.zy.asrs.entity.param.StockOutParam; import java.util.ArrayList; @@ -153,6 +154,9 @@ 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()); } @@ -166,6 +170,9 @@ 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: @@ -200,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){ -- Gitblit v1.9.1