From fba48d2d676cd9b6d493163aef9d87f6e5090aee Mon Sep 17 00:00:00 2001
From: 如洲 陈 <1278080563@qq.com>
Date: 星期五, 12 九月 2025 19:02:00 +0800
Subject: [PATCH] 出库检和退货检验

---
 MES.Service/service/QC/XJService.cs |   66 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/MES.Service/service/QC/XJService.cs b/MES.Service/service/QC/XJService.cs
index e2fa544..65a3a08 100644
--- a/MES.Service/service/QC/XJService.cs
+++ b/MES.Service/service/QC/XJService.cs
@@ -3,6 +3,8 @@
 using MES.Service.Modes;
 using MES.Service.util;
 using SqlSugar;
+using System.Data;
+using System.Data.Common;
 
 namespace MES.Service.service.QC;
 
@@ -496,11 +498,75 @@
                     .Where(s => s.Id == detail.Gid)
                     .ExecuteCommand();
             });
+
+            // 鏂板锛氬鏋滃垽瀹氱粨鏋滀负涓嶅悎鏍硷紝璋冪敤瀛樺偍杩囩▼鐢熸垚寮傚父澶勭疆鍗�
+            if (FcheckResu.Equals("涓嶅悎鏍�"))
+            {
+                CallXJUnqualifiedStoredProcedure(detail.Gid, detail.CreateBy);
+            }
         }
 
         return useTransactionWithOracle;
     }
 
+    /// <summary>
+    /// 璋冪敤宸℃涓嶅悎鏍煎鐞嗗瓨鍌ㄨ繃绋嬬敓鎴愬紓甯稿缃崟
+    /// </summary>
+    /// <param name="gid">宸℃涓昏〃ID</param>
+    /// <param name="createBy">鎿嶄綔浜�</param>
+    private void CallXJUnqualifiedStoredProcedure(decimal? gid, string createBy)
+    {
+        try
+        {
+            var db = SqlSugarHelper.GetInstance();
+            
+            // 鑾峰彇宸℃鍗曚俊鎭�
+            var xjInfo = db.Queryable<QsQaItemXj>()
+                .Where(s => s.Id == gid)
+                .First();
+                
+            if (xjInfo == null) return;
+
+            // 瀹氫箟杈撳嚭鍙傛暟
+            var outputResult = new SugarParameter("o_Result", null,
+                System.Data.DbType.Int32, ParameterDirection.Output, 4000);
+
+            var outputMessage = new SugarParameter("o_Msg", null,
+                System.Data.DbType.String, ParameterDirection.Output, 4000);
+
+            // 瀹氫箟杈撳叆鍙傛暟
+            var parameters = new List<SugarParameter>
+            {
+                new("p_Gid", gid, System.Data.DbType.Decimal, ParameterDirection.Input),
+                new("p_Bill_No", xjInfo.BillNo, System.Data.DbType.String, ParameterDirection.Input),
+                new("p_User", createBy, System.Data.DbType.String, ParameterDirection.Input),
+                outputResult,
+                outputMessage
+            };
+
+            // 鎵ц瀛樺偍杩囩▼鐢熸垚寮傚父澶勭疆鍗�
+            db.Ado.ExecuteCommand(
+                "BEGIN PRC_XJ_EXCEPTION_ORDER(:p_Gid, :p_Bill_No, :p_User, :o_Result, :o_Msg); END;",
+                parameters.ToArray());
+
+            // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+            var resultValue = outputResult.Value?.ToString();
+            var messageValue = outputMessage.Value?.ToString();
+
+            if ("1".Equals(resultValue)) 
+            {
+                throw new Exception($"宸℃寮傚父澶勭疆鍗曠敓鎴愬け璐�: {messageValue}");
+            }
+        }
+        catch (Exception ex)
+        {
+            // 璁板綍鏃ュ織浣嗕笉褰卞搷涓绘祦绋�
+            Console.WriteLine($"宸℃寮傚父澶勭疆鍗曠敓鎴愬瓨鍌ㄨ繃绋嬭皟鐢ㄥけ璐�: {ex.Message}");
+            // 鍙互鏍规嵁闇�瑕佸喅瀹氭槸鍚︽姏鍑哄紓甯�
+            // throw new Exception($"宸℃寮傚父澶勭疆鍗曠敓鎴愬け璐�: {ex.Message}");
+        }
+    }
+
     public int UpdateQSItemDetail(QsQaItemXj02 detail)
     {
         var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>

--
Gitblit v1.9.3