From cad9f911a2f0c7a14d62f1503aadd279423caccc Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期二, 22 七月 2025 16:40:32 +0800
Subject: [PATCH] 退料单接口BUG修复

---
 StandardPda/MES.Service/Modes/MesInvItemOutItems.cs                |    8 +-
 StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs |  154 ++++++++++++++++++++++++++------------------------
 2 files changed, 84 insertions(+), 78 deletions(-)

diff --git a/StandardPda/MES.Service/Modes/MesInvItemOutItems.cs b/StandardPda/MES.Service/Modes/MesInvItemOutItems.cs
index 66da2f5..6260f6a 100644
--- a/StandardPda/MES.Service/Modes/MesInvItemOutItems.cs
+++ b/StandardPda/MES.Service/Modes/MesInvItemOutItems.cs
@@ -247,13 +247,13 @@
     /// </summary>
     [SugarColumn(ColumnName = "FMTONO")]
     public string? Fmtono { get; set; }
-    
+
     // <summary>
     ///     鐢宠琛屽彿
     /// </summary>
-    //[SugarColumn(ColumnName = "SQ_NO")]
-    //public string? SqNo { get; set; }
-    
+    [SugarColumn(ColumnName = "SQ_NO")]
+    public string? SqNo { get; set; }
+
     //[SugarColumn(ColumnName = "ZZITEM_ID")]
     //public string? ZzitemId{ get; set; }
 }
\ No newline at end of file
diff --git a/StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs b/StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
index 3691388..6c5d183 100644
--- a/StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/MesInvItemOutsManager.cs
@@ -14,88 +14,94 @@
         var itemOutFrom = oItemOut.from;
         var itemOutLists = oItemOut.items;
 
-        // 鏍规嵁AsnNo鍜孧esNo瀵规槑缁嗚繘琛屽垎缁�
-        var groupedItems = itemOutLists
-            .GroupBy(item => new {   item.MesNo, item.SqNo })
-            .ToList();
-
-        bool result = true;
-        foreach (var group in groupedItems)
+        return UseTransaction(db =>
         {
-            //if (group.Key.AsnNo == null)
-            //{
-            //    throw new NotImplementedException("AsnNo涓嶈兘涓虹┖");
-            //}
+            // 鏍规嵁AsnNo鍜孧esNo瀵规槑缁嗚繘琛屽垎缁�
+            var groupedItems = itemOutLists
+                .GroupBy(item => new {  item.MesNo, item.SqNo })
+                .ToList();
 
-            if (group.Key.MesNo == null)
+            int result = 1;
+            int count = 1;
+            foreach (var group in groupedItems)
             {
-                throw new NotImplementedException("鍏ュ簱鍗曞崟鍙蜂笉鑳戒负绌�");
-            }
+                //if (group.Key.AsnNo == null)
+                //{
+                //    throw new NotImplementedException("AsnNo涓嶈兘涓虹┖");
+                //}
 
-            if (group.Key.SqNo == null)
-            {
-                throw new NotImplementedException("閫�璐х敵璇峰崟琛屽彿涓嶈兘涓虹┖");
-            }
-
-            // 鍒涘缓涓�涓复鏃剁殑itemOutFrom瀵硅薄锛屼娇鐢ㄥ垎缁勭殑Key浣滀负涓昏灞炴��
-            var tempItemOutFrom = new ItemOutFrom
-            {
-                
-                MesNo = group.Key.MesNo,
-                SqNo = group.Key.SqNo,
-                // 缁ф壙鍘熷itemOutFrom鐨勫叾浠栧睘鎬�
-                RtnNo = itemOutFrom.RtnNo,
-                Type = itemOutFrom.Type,
-                CreateBy = itemOutFrom.CreateBy,
-                FMRMODE = itemOutFrom.FMRMODE,
-                DepotId = itemOutFrom.DepotId,
-                SupperId = itemOutFrom.SupperId
-            };
-
-            // 鏍规嵁Type鎵ц涓嶅悓鐨勯�昏緫
-            switch (tempItemOutFrom.Type)
-            {
-                case "1":
+                if (group.Key.MesNo == null)
                 {
-                    var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
-                        .Where(s => s.BillTypeId == BILL_TYPE_ID
-                                    && s.TransactionNo == TRANSACTION_NO
-                                    && s.ItemOutNo == tempItemOutFrom.RtnNo
-                                  
-                        )
-                        .Count();
-
-                    if (mesInvItemOuts > 0)
-                    {
-                        throw new NotImplementedException(
-                            tempItemOutFrom.RtnNo +
-                            "鐨勯��鏂欑敵璇峰崟宸茬粡瀛樺湪");
-                    }
-
-                    // 涓哄綋鍓嶅垎缁勪繚瀛樻暟鎹�
-                    var groupResult = Save(tempItemOutFrom, group.ToList());
-                    if (!groupResult)
-                    {
-                        result = false;
-                    }
-
-                    break;
+                    throw new NotImplementedException("鍏ュ簱鍗曞崟鍙蜂笉鑳戒负绌�");
                 }
-                case "4":
-                    var removeResult = Remove(tempItemOutFrom);
-                    if (!removeResult)
-                    {
-                        result = false;
-                    }
 
-                    break;
-                default:
-                    result = false;
-                    break;
+                if (group.Key.SqNo == null)
+                {
+                    throw new NotImplementedException("閫�璐х敵璇峰崟琛屽彿涓嶈兘涓虹┖");
+                }
+
+                // 鍒涘缓涓�涓复鏃剁殑itemOutFrom瀵硅薄锛屼娇鐢ㄥ垎缁勭殑Key浣滀负涓昏灞炴��
+                var tempItemOutFrom = new ItemOutFrom
+                {
+                    //AsnNo = group.Key.AsnNo,
+                    MesNo = group.Key.MesNo,
+                    SqNo = group.Key.SqNo,
+                    // 缁ф壙鍘熷itemOutFrom鐨勫叾浠栧睘鎬�
+                    RtnNo = itemOutFrom.RtnNo+ "-"+count.ToString(),
+                    Type = itemOutFrom.Type,
+                    CreateBy = itemOutFrom.CreateBy,
+                    FMRMODE = itemOutFrom.FMRMODE,
+                    DepotId = itemOutFrom.DepotId,
+                    SupperId = itemOutFrom.SupperId
+                };
+                count++;
+                // 鏍规嵁Type鎵ц涓嶅悓鐨勯�昏緫
+                switch (tempItemOutFrom.Type)
+                {
+                    case "1":
+                        {
+                            var mesInvItemOuts = Db.Queryable<MesInvItemOuts>()
+                                .Where(s => s.BillTypeId == BILL_TYPE_ID
+                                            && s.TransactionNo == TRANSACTION_NO
+                                            && s.ItemOutNo == tempItemOutFrom.RtnNo
+                                            && s.Sapno == tempItemOutFrom.SqNo
+                                )
+                                .Count();
+
+                            if (mesInvItemOuts > 0)
+                            {
+                                throw new NotImplementedException(
+                                    tempItemOutFrom.RtnNo +
+                                    "鐨勯��鏂欑敵璇峰崟宸茬粡瀛樺湪");
+                            }
+
+                            // 涓哄綋鍓嶅垎缁勪繚瀛樻暟鎹�
+                            var groupResult = Save(tempItemOutFrom, group.ToList());
+                            if (!groupResult)
+                            {
+                                result = 0;
+                            }
+
+                            break;
+                        }
+                    case "4":
+                        var removeResult = Remove(tempItemOutFrom);
+                        if (!removeResult)
+                        {
+                            result = 0;
+                        }
+
+                        break;
+                    default:
+                        result = 0;
+                        break;
+                }
             }
-        }
 
-        return result;
+            return result;
+        }) > 0;
+
+
     }
 
     private bool Save(ItemOutFrom from, List<ItemOutList> items)
@@ -286,7 +292,7 @@
                 RkQty = mesInvItemInCItems.Quantity,
                 TlQty = 0,
                 ItemId = Decimal.Parse(itemIdLinkU9.MesId), // 纭繚ItemId鏈夊��
-                //SqNo = itemOutList.SqNo, // 纭繚ItemId鏈夊��
+                SqNo = itemOutList.SqNo, // 纭繚ItemId鏈夊��
                 //ZzitemId = itemOutList.AsnLineNo, // 纭繚ItemId鏈夊��
                 // Unit = item.Unit,
             });

--
Gitblit v1.9.3