From 9d831229b5a8c238ce55f4ee8de7433c56cbe3a8 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 14 十一月 2025 08:30:35 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java |   92 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 87 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java b/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
index dcbc175..272613f 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.entity.param;
 
 import com.core.common.DateUtils;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.WrkDetl;
 import lombok.Data;
 
@@ -17,6 +18,7 @@
 public class OrderMesXGHYParam {
     private String barcode ;	//鎵樼洏鏉$爜锛堝緪宸ユ椂闂存埑锛�  = snowflakeIdWorker.nextId()  zpallet
     private int palletizingNo;	//鐮佸灈浣嶇紪鍙凤紙浣嶇疆锛�
+    private String warehouseType = "2";	//鐮佸灈浣嶇紪鍙凤紙浣嶇疆锛�
     private List<Box> matList;	//鏈ㄧ闆嗗悎
 
 
@@ -40,10 +42,10 @@
         private String boxNo;	//绠卞彿
         private String boxPos;	//浣嶇疆  1  2  3   origin 鏈ㄧ浣嶇疆
         private String boxType;	//鏈ㄧ绫诲瀷  鏈ㄧ绫诲瀷  brand  brand$
-        private String wideInWidth;	// 4.5渭m脳588mm  matnr  涓殑  4.5
-        private String thickness;	//4.5渭m脳588mm  matnr  涓殑  588
+        private String wideInWidth;	// 4.5渭m脳588mm  matnr  涓殑  588
+        private String thickness;	//4.5渭m脳588mm  matnr  涓殑   4.5
 
-        private String rollType = "绾歌酱";	//鏈ㄧ绫诲瀷  brand  brand$
+        private String rollType = "FRP";	//
 
         private List<Roll> rolls;	//鍗烽泦鍚�
 
@@ -73,6 +75,16 @@
                 this.netWeight = sampleWrkDetl.getWeight().toString();
                 this.grossWeight = sampleWrkDetl.getVolume().toString();
                 this.orderSerialNumber = sampleWrkDetl.getOrderNo();
+            }
+
+            public Roll(LocDetl sampleLocDetl) {
+                this.boxNo = sampleLocDetl.getBatch();
+                this.rollNo = sampleLocDetl.getModel();
+                this.specs = sampleLocDetl.getMatnr();
+                this.length = sampleLocDetl.getPrice().toString();
+                this.splices = sampleLocDetl.getSpecs();
+                this.netWeight = sampleLocDetl.getWeight().toString();
+                this.grossWeight = sampleLocDetl.getVolume().toString();
             }
 
             @Override
@@ -140,10 +152,10 @@
                 // 鍏堟寜"渭m脳"鍒嗗壊锛屽啀鎸�"mm"鍒嗗壊
                 String[] firstSplit = matnr.split("渭m脳");
                 if (firstSplit.length == 2) {
-                    wideInWidth = firstSplit[0];  // 5.2
+                    thickness = firstSplit[0];  // 5.2
                     String[] secondSplit = firstSplit[1].split("mm");
                     if (secondSplit.length > 0) {
-                        thickness = secondSplit[0];  // 834.1
+                        wideInWidth = secondSplit[0];  // 834.1
                     }
                 }
                 boxPos = sampleWrkDetl.getOrigin();
@@ -169,6 +181,76 @@
         this.matList = boxList;
     }
 
+    public OrderMesXGHYParam(List<LocDetl> locDetls, String outOrIn,String stockType) {
+        // 鎸塨atch瀛楁鍒嗙粍锛屾瘡涓猙atch瀵瑰簲涓�涓狟ox
+        Map<String, List<LocDetl>> batchGroup = locDetls.stream()
+                .collect(Collectors.groupingBy(LocDetl::getBatch));
+
+        List<OrderMesXGHYParam.Box> boxList = new ArrayList<>();
+
+        // 澶勭悊姣忎釜batch鍒嗙粍
+        for (Map.Entry<String, List<LocDetl>> entry : batchGroup.entrySet()) {
+            String batch = entry.getKey();
+            List<LocDetl> batchWrkDetls = entry.getValue();
+
+            // 鍒涘缓Box瀵硅薄
+            OrderMesXGHYParam.Box box = new OrderMesXGHYParam.Box();
+            box.setBoxNo(batch); // batch瀵瑰簲boxNo
+            box.setOutOrIn(outOrIn); // batch瀵瑰簲boxNo
+
+            // 鎸塵odel瀛楁鍒嗙粍锛屾瘡涓猰odel瀵瑰簲涓�涓猺oll
+            Map<String, List<LocDetl>> modelGroup = batchWrkDetls.stream()
+                    .collect(Collectors.groupingBy(LocDetl::getModel));
+
+            List<OrderMesXGHYParam.Box.Roll> rollList = new ArrayList<>();
+            String wideInWidth = null;
+            String thickness = null;
+            String boxPos = null;
+            String boxType = null;
+            String packageGroupNo = null;	//鍖呰缁勫彿锛堝緪宸ユ病鏈夛紝鍙湁绠卞彿鍗峰彿涓�瀵逛竴锛�  //null
+
+            // 澶勭悊姣忎釜model鍒嗙粍
+            for (Map.Entry<String, List<LocDetl>> modelEntry : modelGroup.entrySet()) {
+                List<LocDetl> modelWrkDetls = modelEntry.getValue();
+
+                LocDetl sampleWrkDetl = modelWrkDetls.get(0);
+                String matnr = sampleWrkDetl.getMatnr();
+
+                String[] firstSplit = matnr.split("渭m脳");
+                if (firstSplit.length == 2) {
+                    thickness = firstSplit[0];  // 5.2
+                    String[] secondSplit = firstSplit[1].split("mm");
+                    if (secondSplit.length > 0) {
+                        wideInWidth = secondSplit[0];  // 834.1
+                    } else {
+                        continue;
+                    }
+                } else {
+                    continue;
+                }
+                boxPos = sampleWrkDetl.getOrigin();
+                boxType = sampleWrkDetl.getBrand$();
+                stockType = sampleWrkDetl.getManu();
+                packageGroupNo = sampleWrkDetl.getDeadTime();
+                OrderMesXGHYParam.Box.Roll roll = new OrderMesXGHYParam.Box.Roll(sampleWrkDetl);
+
+                rollList.add(roll);
+            }
+            box.setWideInWidth(wideInWidth);
+            box.setThickness(thickness);
+            box.setBoxPos(boxPos);
+            box.setBoxType(boxType);
+            box.setStockType(stockType);
+            box.setPackageGroupNo(packageGroupNo);
+
+            box.setRolls(rollList);
+            boxList.add(box);
+        }
+
+        // 璁剧疆鍒颁富瀵硅薄涓�
+        this.matList = boxList;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();

--
Gitblit v1.9.1