From 8c1d92cab74656e84275cd0155d4157c2a52d1d5 Mon Sep 17 00:00:00 2001
From: cnf <3283105747@qq.com>
Date: 星期五, 07 十一月 2025 14:09:38 +0800
Subject: [PATCH] 增加一键调拨拆分后端

---
 service/Warehouse/MesInvItemInCDetailsManager.cs |  136 +++++++++++++++++++++++++++++++++------------
 1 files changed, 99 insertions(+), 37 deletions(-)

diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index 23981ef..bb925b3 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,4 +1,5 @@
 锘縰sing Masuit.Tools.Models;
+using Microsoft.AspNetCore.SignalR.Protocol;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
 using NewPdaSqlServer.entity;
@@ -28,7 +29,7 @@
         if (string.IsNullOrEmpty(entity.userName)) throw new ArgumentNullException(nameof(entity.userName), "鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
         if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
         if (string.IsNullOrEmpty(entity.barcode)) throw new ArgumentNullException(nameof(entity.barcode), "鏉$爜涓嶅厑璁镐负绌�");
-       
+
         using (var conn = new SqlConnection(connectionString))
         {
             using (var cmd = new SqlCommand("[prc_pda_inv_cgrk]", conn))
@@ -56,8 +57,17 @@
                     string? outMessage = parameters[4].Value?.ToString();
                     string? outSum = parameters[5].Value?.ToString();
 
+
+                    // 妫�鏌ュ弬鏁版槸鍚︿负绌猴紝骞跺湪寮傚父涓樉绀哄疄闄呭��
                     if (string.IsNullOrEmpty(outMessage) || string.IsNullOrEmpty(outSum))
-                        throw new InvalidOperationException("瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父");
+                    {
+                        // 鎷兼帴鍙傛暟瀹為檯鍊硷紙澶勭悊 null 鐨勬儏鍐碉級
+                        string messageValue = outMessage ?? "null";
+                        string sumValue = outSum ?? "null";
+                        throw new InvalidOperationException(
+                            $"瀛樺偍杩囩▼杩斿洖鍙傛暟寮傚父锛氳緭鍑烘秷鎭负銆恵messageValue}銆戯紝杈撳嚭鏁伴噺涓恒�恵sumValue}銆�"
+                        );
+                    }
 
                     // 楠岃瘉缁撴灉
                     if (!int.TryParse(outSum, out int result) || result <= 0)
@@ -113,10 +123,16 @@
                     WHERE  a.Item_In_Id = '{0}' AND a.Item_Id = '{1}'", cId, itemBarcodeDetails.ItemId);
 
                     res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2);
+                    //鏌ヨ宸插叆搴撴�绘暟
+                    var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+                    .Where(it => it.ItemInId == cId)
+                    .Sum(it => it.Quantity);
+                  
+                    res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
 
                     // 璁剧疆杩斿洖淇℃伅
                     res.Message = outMessage;
-                    res.SumQuantity = result;
+                    
 
                     return res;
                 }
@@ -1272,8 +1288,8 @@
         if (string.IsNullOrEmpty(entity.sectionCode)) throw new ArgumentNullException(nameof(entity.sectionCode), "搴撲綅缂栧彿涓嶅厑璁镐负绌�");
         if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
 
-        try
-        {
+        //try
+        //{
             // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
             var isInStock = Db.Queryable<MesInvItemInCDetails>()
                 .Where(it => it.ItemBarcode == entity.returnBarcode)
@@ -1296,22 +1312,59 @@
                 .Where(it => it.ItemBarcode.Trim().ToLower() == entity.returnBarcode.Trim().ToLower())
                 .First() ?? throw new InvalidOperationException($"鏈壘鍒版潯鐮� '{entity.returnBarcode}' 鐨勫尮閰嶄俊鎭�");
 
+            // 鑾峰彇鍒拌揣鏄庣粏ID锛堝亣璁句粠鏉$爜淇℃伅涓彲浠ヨ幏鍙栧埌dhmxGuid锛�
+            var dhmxGuid = itemBarcode.AboutGuid; 
+
+            // 鏌ヨ妫�楠屼俊鎭紙瀵瑰簲SQL涓殑瑙嗗浘鏌ヨ閫昏緫锛�
+            var checkParams = new List<SugarParameter>
+        {
+            new("@dHdMx", dhmxGuid),
+            new("@JYZT", null, true),  // 杈撳嚭鍙傛暟锛氭楠岀姸鎬�
+            new("@JYJG", null, true),  // 杈撳嚭鍙傛暟锛氭楠岀粨鏋�
+            new("@PDJG", null, true),  // 杈撳嚭鍙傛暟锛氬垽瀹氱粨鏋�
+            new("@ISRK", null, true),  // 杈撳嚭鍙傛暟锛氭槸鍚﹁兘鍏ュ簱
+            new("@CLYS", null, true)   // 杈撳嚭鍙傛暟锛氬鐞嗘剰瑙�
+        };
+
+            // 鎵ц鏌ヨ鑾峰彇妫�楠屼俊鎭�
+            Db.Ado.ExecuteCommand(@"
+            SELECT @JYZT = ISNULL(妫�楠岀姸鎬�, '鏈煡'),
+                   @JYJG = ISNULL(妫�楠岀粨鏋�, '鏈煡'),
+                   @PDJG = ISNULL(鍒ゅ畾缁撴灉, '鏈煡'),
+                   @ISRK = ISNULL(鏄惁鑳藉叆搴�, 0),
+                   @CLYS = ISNULL(澶勭悊鎰忚, '鏃�')
+            FROM v_dhmx
+            WHERE dhmxGuid = @dHdMx", checkParams);
+
+            // 瑙f瀽杈撳嚭鍙傛暟
+            var jyzt = checkParams[1].Value?.ToString() ?? "鏈煡";
+            var jyjg = checkParams[2].Value?.ToString() ?? "鏈煡";
+            var pdjg = checkParams[3].Value?.ToString() ?? "鏈煡";
+            var isRk = checkParams[4].Value != DBNull.Value ? Convert.ToInt32(checkParams[4].Value) : 0;
+            var clys = checkParams[5].Value?.ToString() ?? "鏃�";
+
+            // 妫�鏌ユ槸鍚︽煡璇㈠埌妫�楠岃褰�
+            if (string.IsNullOrEmpty(jyzt) && string.IsNullOrEmpty(jyjg))
+                throw new Exception($"鏈壘鍒板埌璐ф槑缁唅d涓篬{dhmxGuid}]鐨勬楠岃褰�");
+            // 妫�鏌ユ槸鍚﹀厑璁搁獙閫�锛堝紓甯哥洿鎺ユ姏鍑猴級
+            if (isRk != 1)
+                throw new Exception($"璇ユ潯鐮佸搴旂殑鏀舵枡鍗曟楠岀粨鏋�:[{jyjg}]锛屽垽瀹氱粨鏋�:[{pdjg}]锛屽鐞嗘剰瑙�:[{clys}]锛屼笉鑳借繘琛岄獙閫�鎿嶄綔");
+
+
+
+
             // 灏嗘煡璇㈠埌鐨勬潯鐮佷俊鎭祴鍊肩粰杩斿洖妯″瀷
             res.itemBarcodeDetails = itemBarcode;
-
-           
             res.Message = "鏌ヨ鎴愬姛";
-           
-
             return res;
-        }
-        catch (Exception ex)
-        {
-            // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
-            res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
-            res.SumQuantity = -1;
-            return res;
-        }
+        //}
+        //catch (Exception ex)
+        //{
+        //    // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+        //    res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+        //    res.SumQuantity = -1;
+        //    return res;
+        //}
     }
 
     // 楠岄��
@@ -1325,8 +1378,8 @@
         if (string.IsNullOrEmpty(entity.returnBarcode)) throw new ArgumentNullException(nameof(entity.returnBarcode), "鏉$爜涓嶅厑璁镐负绌�");
         if (entity.returnQuantity <= 0) throw new ArgumentException("楠岄��鏁伴噺蹇呴』澶т簬0", nameof(entity.returnQuantity));
 
-        try
-        {
+        //try
+        //{
             // 妫�鏌ユ潯鐮佹槸鍚﹀凡鍏ュ簱
             var isInStock = Db.Queryable<MesInvItemInCDetails>()
                 .Where(it => it.ItemBarcode == entity.returnBarcode)
@@ -1358,7 +1411,7 @@
             string strMsg = "";
             string intSum = "";
             string cfBar = "";
-            
+
             using (var conn = new SqlConnection(DbHelperSQL.strConn))
             {
                 using (var cmd = new SqlCommand("[prc_pda_bar_cf_before]", conn))
@@ -1394,7 +1447,7 @@
             string ytMsg = "";
             string ytSum = "";
             string ytdh = "";
-            
+
             using (var conn = new SqlConnection(DbHelperSQL.strConn))
             {
                 using (var cmd = new SqlCommand("prc_pda_scan_CGYT", conn))
@@ -1412,7 +1465,7 @@
 
                     cmd.Parameters.AddRange(ytParameters);
                     cmd.ExecuteNonQuery();
-                    
+
                     ytMsg = ytParameters[2].Value.ToString();
                     ytSum = ytParameters[3].Value.ToString();
                     ytdh = ytParameters[4].Value.ToString();
@@ -1424,7 +1477,7 @@
             // 璋冪敤鍏ュ簱瀛樺偍杩囩▼ prc_pda_inv_cgrk锛屼娇鐢ㄥ師濮嬫潯鐮�
             string rkMsg = "";
             string rkSum = "";
-            
+
             using (var conn = new SqlConnection(DbHelperSQL.strConn))
             {
                 using (var cmd = new SqlCommand("prc_pda_inv_cgrk", conn))
@@ -1443,15 +1496,15 @@
 
                     cmd.Parameters.AddRange(rkParameters);
                     cmd.ExecuteNonQuery();
-                    
-                    rkMsg = rkParameters[3].Value.ToString();
-                    rkSum = rkParameters[4].Value.ToString();
+
+                    rkMsg = rkParameters[4].Value.ToString();
+                    rkSum = rkParameters[5].Value.ToString();
 
                     if (rkSum == "-1") throw new Exception(rkMsg);
                 }
             }
 
-            
+
 
             // 浼樺寲鏌ヨ锛堝幓闄ょ┖鏍煎苟蹇界暐澶у皬鍐欙級
             var mesInvItemInCDetails = Db.Queryable<MesInvItemInCDetails>()
@@ -1493,18 +1546,27 @@
 
             res.ItemBarCDetails = Db.Ado.SqlQuery<dynamic>(sql2, new { cId, itemId = itemBarcode.ItemId });
 
-            res.Message = $"楠岄��鎿嶄綔鎴愬姛锛屾媶鍒嗗悗鏉$爜锛歿cfBar}锛岄獙閫�鍗曞彿锛歿ytdh}";
-            res.SumQuantity = res.ItemBarCDetails?.Count ?? 0;
 
+            //鏌ヨ宸插叆搴撴�绘暟
+            var totalCDetailsQuantity = Db.Queryable<MesInvItemInCDetails>()
+            .Where(it => it.ItemInId == cId)
+            .Sum(it => it.Quantity);
+
+            res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
+
+
+            res.Message = $"楠岄��鎿嶄綔鎴愬姛锛屾媶鍒嗗悗鏉$爜锛歿cfBar}锛岄獙閫�鍗曞彿锛歿ytdh}";
+            // res.SumQuantity = res.ItemBarCDetails?.Count ?? 0;
+            res.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
             return res;
-        }
-        catch (Exception ex)
-        {
-            // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
-            res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
-            res.SumQuantity = -1;
-            return res;
-        }
+        //}
+        //catch (Exception ex)
+        //{
+        //    // 璁板綍寮傚父鏃ュ織锛堝缓璁ˉ鍏呭叿浣撴棩蹇楄褰曚唬鐮侊級
+        //    res.Message = $"鎿嶄綔澶辫触: {ex.Message}";
+        //    res.SumQuantity = -1;
+        //    return res;
+        //}
     }
 
 }
\ No newline at end of file

--
Gitblit v1.9.3