From 85a299f3ffe2dd47132f7f0f79146f3675bdc273 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期一, 14 四月 2025 15:27:34 +0800
Subject: [PATCH] 优化了一些已知问题

---
 Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs |  108 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 87 insertions(+), 21 deletions(-)

diff --git a/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs b/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
index 3aaf76e..e696945 100644
--- a/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
+++ b/Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
@@ -30,29 +30,95 @@
             if (!string.IsNullOrEmpty(Barcode.MetaSn))
             {
                 string[] parts = (Barcode.MetaSn ?? "").Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
-                //ASN鍗�
-                if (parts.Length == 5 && (Barcode.MetaSn.StartsWith("ASN") || 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;
-                }
-                //鏃ф潯鐮�
-                if (parts.Length == 3)
+                    //鏀惰揣绠辨潯鐮侊細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].StartsWith("ASN") ? (parts[1].StartsWith("YD") ? parts[1][2..] : parts[1]) + parts[2] : parts[4];
+                        Barcode.SerialNoStr = parts[5];
+                        Barcode.Type = Types.OuterPackage;
+                        Barcode.ItemType = ItemTypes.RawMaterial;
+    
+                        result.Flag = Result.Flags.Success;
+                    }
+                } 
+                //鍏朵粬鏉$爜
+                else
                 {
-                    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].StartsWith("ASN") ? (parts[0].StartsWith("YD") ? parts[0][2..] : parts[0]) + parts[1] : parts[3];
+                        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