From 540fc5ffc0db7ba2c01866f4079b3daae4a27e9b Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 06 八月 2025 15:55:57 +0800
Subject: [PATCH] 退补料完成

---
 service/Warehouse/MesItemBlManager.cs |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs
index bf74ff4..c9b5ff5 100644
--- a/service/Warehouse/MesItemBlManager.cs
+++ b/service/Warehouse/MesItemBlManager.cs
@@ -597,6 +597,82 @@
     public (bool success, List<MesItemBlDetail> pendingList) SplitBarcode(
         WarehouseQuery query)
     {
+
+        // 杈撳叆鍙傛暟楠岃瘉锛堜繚鎸佷笉鍙橈級
+        if (string.IsNullOrEmpty(query.userName))
+            throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒");
+
+        if (string.IsNullOrEmpty(query.billNo))
+            throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+
+        if (string.IsNullOrEmpty(query.barcode))
+            throw new Exception("璇锋壂鎻忔潯鐮侊紒");
+
+        if ((query.Num ?? 0) <= 0)
+            throw new Exception("璇疯緭鍏ユ纭殑鍙戞枡鏁伴噺锛�");
+
+        if (string.IsNullOrEmpty(query.blNo))
+            throw new Exception("琛ユ枡鍗曞彿涓嶈兘涓虹┖锛�");
+
+        // 鍑嗗瀛樺偍杩囩▼鍙傛暟
+        var outMsg = "";
+        var outSum = -1;
+        var outCfBar = "";
+
+        try
+        {
+            // 璋冪敤瀛樺偍杩囩▼
+            var parameters = new List<SugarParameter>
+    {
+        new SugarParameter("@C_USER", query.userName),               // 鎿嶄綔浜哄憳
+        new SugarParameter("@P_BILL_NO", query.billNo),            // 宸ュ崟鍙�
+        new SugarParameter("@P_ITEM_BARCODE", query.barcode),      // 鏉$爜
+        new SugarParameter("@P_BL_NO", query.blNo),                // 琛ユ枡鍗曞彿
+        new SugarParameter("@P_TYPE", query.Type),                 // 绫诲瀷(鐢熶骇琛ユ枡/鐢熶骇瓒呴)
+        new SugarParameter("@NUM", query.Num),                     // 鎷嗗垎鏁�
+        new SugarParameter("@OUT_MSG", null, true),                // 杈撳嚭娑堟伅
+        new SugarParameter("@OUT_SUM", null, true),                // 鎵ц缁撴灉(1鎴愬姛,-1澶辫触)
+        new SugarParameter("@OUT_CF_BAR", null, true)              // 杈撳嚭鏂版潯鐮佺紪鍙�
+    };
+
+            // 鎵ц瀛樺偍杩囩▼
+            Db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters);
+
+            // 鑾峰彇杈撳嚭鍙傛暟
+            outMsg = parameters.First(p => p.ParameterName == "@OUT_MSG").Value?.ToString();
+            outSum = Convert.ToInt32(parameters.First(p => p.ParameterName == "@OUT_SUM").Value);
+            outCfBar = parameters.First(p => p.ParameterName == "@OUT_CF_BAR").Value?.ToString();
+
+            // 澶勭悊瀛樺偍杩囩▼杩斿洖缁撴灉
+            if (outSum != 1)
+            {
+                throw new Exception(outMsg ?? "鎿嶄綔澶辫触");
+            }
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(outMsg ?? ex.Message);
+        }
+
+        // 鑾峰彇寰呭彂鏂欐槑缁嗗垪琛紙淇濇寔涓嶅彉锛�
+        var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) =>
+                new JoinQueryInfos(JoinType.Left, a.Id == b.Mid))
+            .Where((a, b) => a.BlNo == query.blNo
+                             && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0)
+            .Select((a, b) => new MesItemBlDetail
+            {
+                Bld012 = b.Bld012,
+                Bld002 = b.Bld002,
+                Bld003 = b.Bld003,
+                Bld004 = b.Bld004,
+                Bld007 = b.Bld007,
+                Bld008 = b.Bld008
+            })
+            .ToList();
+
+        // 杩斿洖缁撴灉锛堟垚鍔熺姸鎬佸拰寰呭彂鏂欏垪琛級
+        return (outSum == 1, pendingList);
+
         //if (string.IsNullOrEmpty(query.userName))
         //    throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒");
 

--
Gitblit v1.9.3