From 9e5eb7707c9a42e2515a583b40078d2d7685e2d0 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期三, 19 三月 2025 00:51:42 +0800
Subject: [PATCH] 优化清点上架支持扫箱条码

---
 Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs |  154 +++++++++++++++++++++++++++++----------------------
 1 files changed, 88 insertions(+), 66 deletions(-)

diff --git a/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs b/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
index 37979fa..d15c8d2 100644
--- a/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
+++ b/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
@@ -30,74 +30,96 @@
             if (!string.IsNullOrEmpty(Barcode.MetaSn))
             {
                 string[] parts = (Barcode.MetaSn ?? "").Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
-                //鏀惰揣鏉$爜锛歒DASN241200964/10/12010102.0011.00/ASN241200964/1
-                //鏉傛敹鏉$爜锛歒DZS241200607/10/10150102.2226.00/ASN24120012750/0001
-                //瑙勫垯锛氬崟鍙�/琛屽彿/鏂欏彿/鎵瑰彿/娴佹按鍙�
-                if (parts.Length == 5)// && (Barcode.MetaSn.StartsWith("ASN") || Barcode.MetaSn.StartsWith("YDZS") || Barcode.MetaSn.StartsWith("YDASN")))
+                //绠辨潯鐮�
+                if (Barcode.MetaSn.StartsWith("Carton/"))
                 {
-                    Barcode.OrderNo = parts[0];
-                    Barcode.OrderLine = parts[1];
-                    Barcode.ItemCode = parts[2];
-                    Barcode.LotNo = parts[3];
-                    Barcode.SerialNoStr = parts[4];
-                    Barcode.Type = Types.MiniPackage;
-                    Barcode.ItemType = ItemTypes.RawMaterial;
-
-                    result.Flag = Result.Flags.Success;
-                }
-                //璋冨叆鏉$爜锛�101/YDDR241200924/10/13060306.0008.00/ASN24090127310/0001
-                //褰㈡�佽浆鎹㈡潯鐮侊細101/YDZH231000028/10/32020101.0005.00/23001034/0001
-                //瑙勫垯锛氱粍缁�/鍗曞彿/琛屽彿/鏂欏彿/鎵瑰彿/娴佹按鍙�
-                if (parts.Length == 6)// && (Barcode.MetaSn.StartsWith("YDDR") || Barcode.MetaSn.StartsWith("YDZH")))
+                    //鏀惰揣绠辨潯鐮侊細Carton/YDASN241000433/10/17010505.0064.00/ASN241000433/13957
+                    //瑙勫垯锛欳arton/鍗曞彿/琛屽彿/鏂欏彿/鎵瑰彿/娴佹按鍙�
+                    if (parts.Length == 6)
+                    {
+                        Barcode.OrderNo = parts[1];
+                        Barcode.OrderLine = parts[2];
+                        Barcode.ItemCode = parts[3];
+                        Barcode.LotNo = parts[4];
+                        Barcode.SerialNoStr = parts[5];
+                        Barcode.Type = Types.OuterPackage;
+                        Barcode.ItemType = ItemTypes.RawMaterial;
+    
+                        result.Flag = Result.Flags.Success;
+                    }
+                } 
+                //鍏朵粬鏉$爜
+                else
                 {
-                    Barcode.Organization = parts[0];
-                    Barcode.OrderNo = parts[1];
-                    Barcode.OrderLine = parts[2];
-                    Barcode.ItemCode = parts[3];
-                    Barcode.LotNo = parts[4];
-                    Barcode.SerialNoStr = parts[5];
-                    Barcode.Type = Types.MiniPackage;
-                    Barcode.ItemType = ItemTypes.RawMaterial;
-
-                    result.Flag = Result.Flags.Success;
-                }
-                //鏀惰揣鍗曪細YDRC240801351/10/10030202.0013.02/7/
-                //瑙勫垯锛氬崟鍙�/琛屽彿/鏂欏彿/娴佹按鍙�/
-                if (parts.Length == 4 && parts[2].Contains("."))
-                {
-                    Barcode.OrderNo = parts[0];
-                    Barcode.OrderLine = parts[1];
-                    Barcode.ItemCode = parts[2];
-                    Barcode.SerialNoStr = parts[3];
-                    Barcode.Type = Types.MiniPackage;
-                    Barcode.ItemType = ItemTypes.RawMaterial;
-
-                    result.Flag = Result.Flags.Success;
-                }
-                //鏈熷垵搴撳瓨鏉$爜琛ユ墦锛�10150102.0655.00/108444-1-230/168A05/10101/
-                //瑙勫垯锛氭枡鍙�/鎵瑰彿/搴撲綅/瀛樺偍鍦扮偣/
-                if (parts.Length == 4 && parts[0].Contains("."))
-                {
-                    Barcode.ItemCode = parts[0];
-                    Barcode.LotNo = parts[1];
-                    Barcode.Location = parts[2];
-                    Barcode.Warehouse = parts[3];
-                    Barcode.Type = Types.MiniPackage;
-                    Barcode.ItemType = ItemTypes.RawMaterial;
-
-                    result.Flag = Result.Flags.Success;
-                }
-                //鏈熷垵鏉$爜锛�10150102.0655.00/108444-1-230207/000001
-                //瑙勫垯锛氭枡鍙�/鎵瑰彿/娴佹按鍙�
-                if (parts.Length == 3)
-                {
-                    Barcode.ItemCode = parts[0];
-                    Barcode.LotNo = parts[1];
-                    Barcode.SerialNoStr = parts[2];
-                    Barcode.Type = Types.MiniPackage;
-                    Barcode.ItemType = ItemTypes.RawMaterial;
-
-                    result.Flag = Result.Flags.Success;
+	                //鏀惰揣鏉$爜锛歒DASN241200964/10/12010102.0011.00/ASN241200964/1
+	                //鏉傛敹鏉$爜锛歒DZS241200607/10/10150102.2226.00/ASN24120012750/0001
+	                //瑙勫垯锛氬崟鍙�/琛屽彿/鏂欏彿/鎵瑰彿/娴佹按鍙�
+	                if (parts.Length == 5)// && (Barcode.MetaSn.StartsWith("ASN") || Barcode.MetaSn.StartsWith("YDZS") || Barcode.MetaSn.StartsWith("YDASN")))
+	                {
+	                    Barcode.OrderNo = parts[0];
+	                    Barcode.OrderLine = parts[1];
+	                    Barcode.ItemCode = parts[2];
+	                    Barcode.LotNo = parts[3];
+	                    Barcode.SerialNoStr = parts[4];
+	                    Barcode.Type = Types.MiniPackage;
+	                    Barcode.ItemType = ItemTypes.RawMaterial;
+	
+	                    result.Flag = Result.Flags.Success;
+	                }
+	                //璋冨叆鏉$爜锛�101/YDDR241200924/10/13060306.0008.00/ASN24090127310/0001
+	                //褰㈡�佽浆鎹㈡潯鐮侊細101/YDZH231000028/10/32020101.0005.00/23001034/0001
+	                //瑙勫垯锛氱粍缁�/鍗曞彿/琛屽彿/鏂欏彿/鎵瑰彿/娴佹按鍙�
+	                if (parts.Length == 6)// && (Barcode.MetaSn.StartsWith("YDDR") || Barcode.MetaSn.StartsWith("YDZH")))
+	                {
+	                    Barcode.Organization = parts[0];
+	                    Barcode.OrderNo = parts[1];
+	                    Barcode.OrderLine = parts[2];
+	                    Barcode.ItemCode = parts[3];
+	                    Barcode.LotNo = parts[4];
+	                    Barcode.SerialNoStr = parts[5];
+	                    Barcode.Type = Types.MiniPackage;
+	                    Barcode.ItemType = ItemTypes.RawMaterial;
+	
+	                    result.Flag = Result.Flags.Success;
+	                }
+	                //鏀惰揣鍗曪細YDRC240801351/10/10030202.0013.02/7/
+	                //瑙勫垯锛氬崟鍙�/琛屽彿/鏂欏彿/娴佹按鍙�/
+	                if (parts.Length == 4 && parts[2].Contains("."))
+	                {
+	                    Barcode.OrderNo = parts[0];
+	                    Barcode.OrderLine = parts[1];
+	                    Barcode.ItemCode = parts[2];
+	                    Barcode.SerialNoStr = parts[3];
+	                    Barcode.Type = Types.MiniPackage;
+	                    Barcode.ItemType = ItemTypes.RawMaterial;
+	
+	                    result.Flag = Result.Flags.Success;
+	                }
+	                //鏈熷垵搴撳瓨鏉$爜琛ユ墦锛�10150102.0655.00/108444-1-230/168A05/10101/
+	                //瑙勫垯锛氭枡鍙�/鎵瑰彿/搴撲綅/瀛樺偍鍦扮偣/
+	                if (parts.Length == 4 && parts[0].Contains("."))
+	                {
+	                    Barcode.ItemCode = parts[0];
+	                    Barcode.LotNo = parts[1];
+	                    Barcode.Location = parts[2];
+	                    Barcode.Warehouse = parts[3];
+	                    Barcode.Type = Types.MiniPackage;
+	                    Barcode.ItemType = ItemTypes.RawMaterial;
+	
+	                    result.Flag = Result.Flags.Success;
+	                }
+	                //鏈熷垵鏉$爜锛�10150102.0655.00/108444-1-230207/000001
+	                //瑙勫垯锛氭枡鍙�/鎵瑰彿/娴佹按鍙�
+	                if (parts.Length == 3)
+	                {
+	                    Barcode.ItemCode = parts[0];
+	                    Barcode.LotNo = parts[1];
+	                    Barcode.SerialNoStr = parts[2];
+	                    Barcode.Type = Types.MiniPackage;
+	                    Barcode.ItemType = ItemTypes.RawMaterial;
+	
+	                    result.Flag = Result.Flags.Success;
+	                }
                 }
             }
 

--
Gitblit v1.9.3