From edb540e6444a6e809c66393500bb175a8a4eef44 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 14 十一月 2025 11:51:48 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/param/OrderMesXGHYParam.java |   93 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 86 insertions(+), 7 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 63d146f..345876b 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,8 @@
 package com.zy.asrs.entity.param;
 
+import com.core.common.Cools;
 import com.core.common.DateUtils;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.WrkDetl;
 import lombok.Data;
 
@@ -41,10 +43,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 = "FRP";	//鏈ㄧ绫诲瀷  brand  brand$
+        private String rollType = "FRP";	//
 
         private List<Roll> rolls;	//鍗烽泦鍚�
 
@@ -69,11 +71,21 @@
                 this.boxNo = sampleWrkDetl.getBatch();
                 this.rollNo = sampleWrkDetl.getModel();
                 this.specs = sampleWrkDetl.getMatnr();
-                this.length = sampleWrkDetl.getPrice().toString();
+                this.length = Cools.isEmpty(sampleWrkDetl.getPrice())? "0" : sampleWrkDetl.getPrice().toString();
                 this.splices = sampleWrkDetl.getSpecs();
-                this.netWeight = sampleWrkDetl.getWeight().toString();
-                this.grossWeight = sampleWrkDetl.getVolume().toString();
+                this.netWeight = Cools.isEmpty(sampleWrkDetl.getWeight())? "0" : sampleWrkDetl.getWeight().toString();
+                this.grossWeight = Cools.isEmpty(sampleWrkDetl.getVolume())? "0" : 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 = Cools.isEmpty(sampleLocDetl.getPrice())? "0" : sampleLocDetl.getPrice().toString();
+                this.splices = sampleLocDetl.getSpecs();
+                this.netWeight = Cools.isEmpty(sampleLocDetl.getWeight())? "0" : sampleLocDetl.getWeight().toString();
+                this.grossWeight = Cools.isEmpty(sampleLocDetl.getVolume())? "0" : sampleLocDetl.getVolume().toString();
             }
 
             @Override
@@ -150,7 +162,7 @@
                 boxPos = sampleWrkDetl.getOrigin();
                 boxType = sampleWrkDetl.getBrand$();
                 stockType = sampleWrkDetl.getManu();
-                packageGroupNo = sampleWrkDetl.getDeadTime();
+                packageGroupNo = sampleWrkDetl.getDeadTimeOther();
                 OrderMesXGHYParam.Box.Roll roll = new OrderMesXGHYParam.Box.Roll(sampleWrkDetl);
 
                 rollList.add(roll);
@@ -170,6 +182,73 @@
         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$();
+                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.setRolls(rollList);
+            boxList.add(box);
+        }
+
+        // 璁剧疆鍒颁富瀵硅薄涓�
+        this.matList = boxList;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();

--
Gitblit v1.9.1