From 44dccedfb7d5746f1bbb2a08d732304f3f6be340 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 25 十二月 2024 11:14:01 +0800
Subject: [PATCH] 标准入库更新

---
 Tiger.Business.WMS/Transaction/In_Default.cs |  156 ++++++++++++++++++++++++++-------------------------
 1 files changed, 79 insertions(+), 77 deletions(-)

diff --git a/Tiger.Business.WMS/Transaction/In_Default.cs b/Tiger.Business.WMS/Transaction/In_Default.cs
index 2a6048d..dbcca40 100644
--- a/Tiger.Business.WMS/Transaction/In_Default.cs
+++ b/Tiger.Business.WMS/Transaction/In_Default.cs
@@ -116,6 +116,77 @@
                         return action;
                     }
 
+                    if (CurInvItem.Items.Count == 0)
+                    {
+                        List<WMS_ITEM_HIS> ItemHistorys = new List<WMS_ITEM_HIS>();
+                        WMS_ITEM Item;
+                        WMS_ITEM_PKG ItemPkgs;
+
+                        Item = new()
+                        {
+                            SN = CurInvItem.Barcode.SN,
+                            ITEM_CODE = CurInvItem.Barcode.ItemCode,
+                            AUTH_ORG = input.AuthOption.CurOrg,
+                            STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue(),
+                            QTY = CurInvItem.Barcode.Qty.ToDecimal(),
+                            PROD_DATE = CurInvItem.Barcode.DateCode.ToDateTime(),
+                            ERP_WH = CurScanShelf.WarehouseCode,
+                            UNIT = CurInvItem.Barcode.Unit,
+                        };
+
+                        WMS_ITEM_HIS his = new(Item, $"鏍囧噯涓婃灦鍏ュ簱");
+                        ItemHistorys.Add(his);
+                        ItemPkgs = new()
+                        {
+                            SN = CurInvItem.Barcode.SN,
+                            AUTH_ORG = input.AuthOption.CurOrg,
+                            ITEM_CODE = CurInvItem.Barcode.ItemCode,
+                            QTY = CurInvItem.Barcode.Qty.ToDecimal(),
+                            ERP_WH = CurScanShelf.WarehouseCode,
+                            UNIT = CurInvItem.Barcode.Unit,
+                        };
+
+                        var noExt = CurInvItem.Items.Where(q => !CurInvItem.ItemsExt.Any(s => s.SN == q.SN)).ToList();
+                        //鎵╁睍琛ㄤ笉瀛樺湪鏃舵柊寤�
+                        foreach (var item in noExt)
+                        {
+                            CurInvItem.ItemsExt.Add(new()
+                            {
+                                SN = item.SN,
+                                META_SN = CurInvItem.Barcode.MetaSn,
+                                QR_CODE = CurInvItem.Barcode.MetaSn
+                            });
+                        }
+
+                        CurInvItem.Items.Add(Item);
+                        CurInvItem.History.Add(his);
+                        CurInvItem.Packages.Add(ItemPkgs);
+                    }
+                    else if (CurInvItem.Items.Count == 1)
+                    {
+                        CurInvItem.Items.First().QTY = CurInvItem.Barcode.Qty.ToDecimal();
+                        CurInvItem.Items.First().ERP_WH = CurScanShelf.WarehouseCode;
+                        CurInvItem.Items.First().AUTH_ORG = input.AuthOption.CurOrg;
+
+                        CurInvItem.Packages.First().QTY = CurInvItem.Barcode.Qty.ToDecimal();
+                        CurInvItem.Packages.First().ERP_WH = CurScanShelf.WarehouseCode;
+                        CurInvItem.Packages.First().AUTH_ORG = input.AuthOption.CurOrg;
+                    }
+                    //濡傛灉鎵弿澶栫鐨勪笉鑳芥洿鏂版暟閲�
+                    else
+                    {
+                        foreach (var item in CurInvItem.Items)
+                        {
+                            item.ERP_WH = CurScanShelf.WarehouseCode;
+                            item.AUTH_ORG = input.AuthOption.CurOrg;
+                        }
+                        foreach (var item in CurInvItem.Packages)
+                        {
+                            item.ERP_WH = CurScanShelf.WarehouseCode;
+                            item.AUTH_ORG = input.AuthOption.CurOrg;
+                        }
+                    }
+
                     //妫�鏌ョ墿鏂欐暟閲忥紝濡傛灉娌℃湁鍒欐煡璇㈤泤杈炬潯鐮佷富妗o紝鎶婃暟閲忚繑鍥炲墠绔‘璁�
                     if (CurInvItem.Items.Any(q => q.QTY <= 0))
                     {
@@ -125,7 +196,7 @@
                             var item = CurInvItem.Items.First(q => q.SN == qty.Code);
                             item.QTY = qty.WhQty;
                         }
-                        action.Data.Data = CurInvItem.Items.ToDictionary(k => k.SN, v => v.QTY);
+                        action.Data.Data = CurInvItem.Items.Select(q => new { q.SN, q.QTY });
                         action.Data.Command = Command = "ComfirmQty";
                         //action.LocaleMsg = Biz.L("璇风‘璁ゆ潯鐮乕{0}]鐨勬暟閲忔槸鍚︽纭�");
                         action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ComfirmQty", input.SN);
@@ -136,11 +207,11 @@
                 //鏇存柊宸茬‘璁ょ墿鏂欐暟閲�
                 if (Command == "ComfirmQty")
                 {
-                    var qtyList = (input.Data ?? "").JsonToObject<Dictionary<string, decimal>>() ?? new Dictionary<string, decimal>();
-                    if (qtyList.Any(q => q.Value <= 0))
+                    var qtyList = (input.Data ?? "").JsonToObject<List<WMS_ITEM>>() ?? new List<WMS_ITEM>();
+                    if (qtyList.Any(q => q.QTY <= 0))
                     {
                         action.IsSuccessed = false;
-                        action.Data.Data = CurInvItem.Items.ToDictionary(k => k.SN, v => v.QTY);
+                        action.Data.Data = CurInvItem.Items.Select(q => new { q.SN, q.QTY });
                         action.Data.Command = Command = "ComfirmQty";
                         //action.LocaleMsg = Biz.L("鏁伴噺涓嶈兘灏忎簬绛変簬闆讹紝璇烽噸鏂扮‘璁ゆ潯鐮乕{0}]鐨勬暟閲�");
                         action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ReComfirmQty", input.SN); 
@@ -150,81 +221,10 @@
                     {
 	                    foreach (var qty in qtyList)
 	                    {
-	                        var item = CurInvItem.Items.First(q => q.SN == qty.Key);
-	                        item.QTY = qty.Value;
+	                        var item = CurInvItem.Items.First(q => q.SN == qty.SN);
+	                        item.QTY = qty.QTY;
 	                    }
                         Command = "Normal";
-                    }
-                }
-
-                if (CurInvItem.Items.Count == 0)
-                {
-                    List<WMS_ITEM_HIS> ItemHistorys = new List<WMS_ITEM_HIS>();
-                    WMS_ITEM Item;
-                    WMS_ITEM_PKG ItemPkgs;
-
-                    Item = new()
-                    {
-                        SN = CurInvItem.Barcode.SN,
-                        ITEM_CODE = CurInvItem.Barcode.ItemCode,
-                        AUTH_ORG = input.AuthOption.CurOrg,
-                        STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue(),
-                        QTY = CurInvItem.Barcode.Qty.ToDecimal(),
-                        PROD_DATE = CurInvItem.Barcode.DateCode.ToDateTime(),
-                        ERP_WH = CurScanShelf.WarehouseCode,
-                        UNIT = CurInvItem.Barcode.Unit,
-                    };
-
-                    WMS_ITEM_HIS his = new(Item, $"鏍囧噯涓婃灦鍏ュ簱");
-                    ItemHistorys.Add(his);
-                    ItemPkgs = new()
-                    {
-                        SN = CurInvItem.Barcode.SN,
-                        AUTH_ORG = input.AuthOption.CurOrg,
-                        ITEM_CODE = CurInvItem.Barcode.ItemCode,
-                        QTY = CurInvItem.Barcode.Qty.ToDecimal(),
-                        ERP_WH = CurScanShelf.WarehouseCode,
-                        UNIT = CurInvItem.Barcode.Unit,
-                    };
-
-                    var noExt = CurInvItem.Items.Where(q => !CurInvItem.ItemsExt.Any(s => s.SN == q.SN)).ToList();
-                    //鎵╁睍琛ㄤ笉瀛樺湪鏃舵柊寤�
-                    foreach (var item in noExt)
-                    {
-                        CurInvItem.ItemsExt.Add(new()
-                        {
-                            SN = item.SN,
-                            META_SN = CurInvItem.Barcode.MetaSn,
-                            QR_CODE = CurInvItem.Barcode.MetaSn
-                        });
-                    }
-
-                    CurInvItem.Items.Add(Item);
-                    CurInvItem.History.Add(his);
-                    CurInvItem.Packages.Add(ItemPkgs);
-                }
-                else if (CurInvItem.Items.Count == 1)
-                {
-                    CurInvItem.Items.First().QTY = CurInvItem.Barcode.Qty.ToDecimal();
-                    CurInvItem.Items.First().ERP_WH = CurScanShelf.WarehouseCode;
-                    CurInvItem.Items.First().AUTH_ORG = input.AuthOption.CurOrg;
-
-                    CurInvItem.Packages.First().QTY = CurInvItem.Barcode.Qty.ToDecimal();
-                    CurInvItem.Packages.First().ERP_WH = CurScanShelf.WarehouseCode;
-                    CurInvItem.Packages.First().AUTH_ORG = input.AuthOption.CurOrg;
-                }
-                //濡傛灉鎵弿澶栫鐨勪笉鑳芥洿鏂版暟閲�
-                else
-                {
-                    foreach (var item in CurInvItem.Items)
-                    {
-                        item.ERP_WH = CurScanShelf.WarehouseCode;
-                        item.AUTH_ORG = input.AuthOption.CurOrg;
-                    }
-                    foreach (var item in CurInvItem.Packages)
-                    {
-                        item.ERP_WH = CurScanShelf.WarehouseCode;
-                        item.AUTH_ORG = input.AuthOption.CurOrg;
                     }
                 }
 
@@ -327,8 +327,10 @@
                     ShelfCode = putOnInfo.Shelf.SHELF_CODE,
                     LocationCode = putOnInfo.Location.LOCATION_CODE,
                 };
+
                 //action.LocaleMsg = Biz.L($"鎵弿鏉$爜[{0}]涓婃灦鍒板偍浣峓{1}]鎴愬姛");
                 action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, putOnInfo.Location.LOCATION_CODE);
+                CurInvItem = null;
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3