From 7d015999eec3156e16e972bf3aa6adecb0c18854 Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期五, 14 二月 2025 20:58:00 +0800
Subject: [PATCH] ERP变更用料清单同步

---
 MES.Service/service/WomcaaManager.cs |   45 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/MES.Service/service/WomcaaManager.cs b/MES.Service/service/WomcaaManager.cs
index 7b09e4b..62c2f95 100644
--- a/MES.Service/service/WomcaaManager.cs
+++ b/MES.Service/service/WomcaaManager.cs
@@ -33,19 +33,54 @@
             switch (womErpCaa.Type)
             {
                 case "3":
-                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
+                    return DeleteData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                 case "1":
                 case "2":
                 case "4":
+                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                 case "5":
-                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
-                        ? 1
-                        : 0;
+                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                 default:
                     throw new NotImplementedException(
                         $"type娌℃湁{womErpCaa.Type}杩欎釜绫诲瀷");
             }
         }) > 0;
+    }
+    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs)
+    {
+        if (mesWomcaa.Id != null)
+        {
+            base.DeleteById(mesWomcaa.Id);
+        }
+        if (mesWomcabs.Count > 0)
+        {
+            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
+        }
+        var orUpdate = base.Insert(mesWomcaa);
+        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
+        if (orUpdate && baOrUpdate)
+        {
+            //瀹氫箟杈撳叆鍙傛暟
+            var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001);
+            // 瀹氫箟杈撳嚭鍙傛暟
+            var outParam1 = new SugarParameter("c_Result", null, true);
+            var outParam2 = new SugarParameter("C_MSG", null, true);
+            // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+            Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, 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);
+            }
+            // 鎻愪氦浜嬪姟
+            db.Ado.CommitTran();
+            return true;
+        }
+        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
     }
 
     private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
@@ -61,7 +96,7 @@
         throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
     }
 
-    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
+    private bool DeleteData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
     {
         var decimals = mesWomcabs.Select(s => s.Id).ToArray();
         var update = base.DeleteById(mesWomcaa.Id);

--
Gitblit v1.9.3