From bbf11a79fce0131aa95905c09b00f25e7696d20b Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 21 十月 2025 16:53:13 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/utils/ToSortLineUtils.java |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java b/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
index 7195635..f2b5c46 100644
--- a/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
+++ b/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
@@ -1,7 +1,7 @@
 package com.zy.asrs.utils;
 
-import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.entity.param.OrderToLine;
+import com.zy.asrs.utils.param.ItemUtilParam;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -36,34 +36,29 @@
         return sku+sign_F+po+sign_F+upc;
     }
 
-    public static OrderToLine GetOrderToLineGro(List<GroupedLockerOptimizerUtils.Item> items,OrderToLine orderToLine){
-        List<OrderToLine.MatList> matLists = new ArrayList<>();
-        // 浣跨敤鍒嗙粍浼樺厛绠楁硶
-        GroupedLockerOptimizerUtils.PackingSolution solution = GroupedLockerOptimizerUtils.packItemsWithGrouping(items);
-        for (GroupedLockerOptimizerUtils.Locker locker:solution.lockers) {
-            for (String mantnr : locker.contents.keySet()){
-                System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
-                String[] split = mantnr.split(Pattern.quote(sign_F));
-                OrderToLine.MatList mat = new OrderToLine.MatList(
-                        split[0],  // matnr -> sku
-                        split[1],  //  supp -> po -> s1
-                        locker.contents.get(mantnr).doubleValue(),   //鏁存枡
-                        split[2],   //barcode -> upc -> s2
-                        1,
-                        null,   //origin -> supplier 璐ф簮
-                        locker.bindingTags
-                );
-                matLists.add(mat);
-            }
+    public static OrderToLine GetOrderToLine(List<ItemUtilParam.Item> items, OrderToLine orderToLine,String sign){
+        switch (sign){
+            case "Opt":
+                List<OptimizedLockerPackingUtils.Item> itemsOpt = new ArrayList<>();
+                for (ItemUtilParam.Item item:items){
+                    itemsOpt.add(new OptimizedLockerPackingUtils.Item(item.getName(),item.getMaxCapacity(),item.getStock()));
+                }
+                return GetOrderToLineOpt(itemsOpt,orderToLine);
+            case "Opt3":
+                List<OptimizedLockerPacking3Utils.Item> itemsOpt3 = new ArrayList<>();
+                for (ItemUtilParam.Item item:items){
+                    itemsOpt3.add(new OptimizedLockerPacking3Utils.Item(item.getName(),item.getMaxCapacity(),item.getStock()));
+                }
+                return GetOrderToLineOpt3(itemsOpt3,orderToLine);
+            default:
+                return null;
         }
-        orderToLine.setMatList(matLists);
-        return orderToLine;
     }
-
     public static OrderToLine GetOrderToLineOpt(List<OptimizedLockerPackingUtils.Item> items,OrderToLine orderToLine){
         List<OrderToLine.MatList> matLists = new ArrayList<>();
         // 浣跨敤鍒嗙粍浼樺厛绠楁硶
         OptimizedLockerPackingUtils.PackingSolution packingSolution = OptimizedLockerPackingUtils.optimizedPacking(items);
+//        System.out.println("\n" + packingSolution);
         for (OptimizedLockerPackingUtils.Locker locker:packingSolution.lockers) {
             for (String mantnr : locker.contents.keySet()){
                 System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
@@ -83,4 +78,30 @@
         orderToLine.setMatList(matLists);
         return orderToLine;
     }
+
+    public static OrderToLine GetOrderToLineOpt3(List<OptimizedLockerPacking3Utils.Item> items,OrderToLine orderToLine){
+        List<OrderToLine.MatList> matLists = new ArrayList<>();
+        // 浣跨敤鍒嗙粍浼樺厛绠楁硶
+        OptimizedLockerPacking3Utils.PackingSolution packingSolution = OptimizedLockerPacking3Utils.optimizedPacking(items);
+//        System.out.println("\n" + packingSolution);
+        for (OptimizedLockerPacking3Utils.Locker locker:packingSolution.lockers) {
+            for (String mantnr : locker.contents.keySet()){
+//                System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
+                String[] split = mantnr.split(Pattern.quote(sign_F));
+                OrderToLine.MatList mat = new OrderToLine.MatList(
+                        split[0],  // matnr -> sku
+                        split[1],  //  supp -> po -> s1
+                        locker.contents.get(mantnr).doubleValue(),   //鏁存枡
+                        split[2],   //barcode -> upc -> s2
+                        1,
+                        null,   //origin -> supplier 璐ф簮
+                        locker.bindingTags
+                );
+                matLists.add(mat);
+            }
+        }
+        orderToLine.setMatList(matLists);
+        return orderToLine;
+    }
+
 }

--
Gitblit v1.9.1