From ef5bf910f7c42000fee6eeca78d1c0281165d113 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期三, 25 六月 2025 14:40:17 +0800
Subject: [PATCH] 11111

---
 MES.Service/service/WomcaaManager.cs |   50 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 209a96b..5859f34 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -241,27 +241,53 @@
 
     public bool Delete(YFDelete data)
     {
+        if (data == null)
+            throw new ArgumentNullException(nameof(data));
 
+        if (string.IsNullOrWhiteSpace(data.FBillNo))
+            throw new ArgumentException("FBillNo 涓嶈兘涓虹┖", nameof(data.FBillNo));
+
+        if (string.IsNullOrWhiteSpace(data.FBillTypeID))
+            throw new ArgumentException("FBillTypeID 涓嶈兘涓虹┖", nameof(data.FBillTypeID));
 
         return UseTransaction(db =>
         {
-            var update = db.Deleteable<Womcaa>()
-                   .Where(it => it.Caa001 == data.FBillNo &&
-                                it.SrcBillType == data.FBillTypeID)
-                   .ExecuteCommand() > 0;
+            // 鍒犻櫎涓昏〃鏁版嵁
+            var deleteMain = db.Deleteable<Womcaa>()
+                .Where(it => it.Caa001 == data.FBillNo && it.SrcBillType == data.FBillTypeID)
+                .ExecuteCommand() > 0;
 
-            var insertOrUpdate = db.Deleteable<Womcab>()
-                  .Where(it => it.Cab001 == data.FBillNo &&
-                               it.Cab002 == data.FBillTypeID)
-                  .ExecuteCommand() > 0;
+            // 鍒犻櫎瀛愯〃鏁版嵁
+            var deleteDetail = db.Deleteable<Womcab>()
+                .Where(it => it.Cab001 == data.FBillNo && it.Cab002 == data.FBillTypeID)
+                .ExecuteCommand() > 0;
 
+            if (!deleteMain || !deleteDetail)
+                throw new Exception("鍒犻櫎澶辫触锛氫富琛ㄦ垨瀛愯〃璁板綍涓嶅瓨鍦�");
 
+            // 璋冪敤瀛樺偍杩囩▼杩涜鍚庣画澶勭悊
+            var inputParam1 = new SugarParameter("P_WORK_NO", data.FBillNo);
+            var inputParam2 = new SugarParameter("P_WORK_TYPE", data.FBillTypeID);
+            var outParam1 = new SugarParameter("C_RESULT", null, true); // 杈撳嚭鍙傛暟
+            var outParam2 = new SugarParameter("C_MSG", null, true);   // 杈撳嚭鍙傛暟
 
-            if (update && insertOrUpdate) return 1;
-            throw new NotImplementedException("鍒犻櫎澶辫触");
+            db.Ado.ExecuteCommand(
+                "BEGIN PRC_DELETE_DAA(:P_WORK_NO, :P_WORK_TYPE, :C_RESULT, :C_MSG); END;",
+                inputParam1, inputParam2, outParam1, outParam2);
+
+            int result = int.Parse((string)outParam1.Value);
+            string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
+
+            if (result == 1)
+            {
+                //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
+                db.Ado.RollbackTran();
+                throw new Exception(message);
+
+            }
+
+            return 1;
         }) > 0;
-
-
     }
 
 

--
Gitblit v1.9.3