From 76db5b59294f6a9fef77a77ad9536b4d0ea97657 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期五, 12 七月 2024 16:17:07 +0800
Subject: [PATCH] erp接口更新优化逻辑

---
 MES.Service/service/BasicData/MesRohInManager.cs |   41 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs
index 5ad7b39..384fc85 100644
--- a/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/MES.Service/service/BasicData/MesRohInManager.cs
@@ -22,13 +22,14 @@
             {
                 switch (rohInErpRohIn.Type)
                 {
-                    case "2":
-                        return InsertData(db, mesRohIn, mesRohInDatas,
-                            rohInErpRohIn.FBILLTYPE)
-                            ? 1
-                            : 0;
+                    // case "2":
+                    //     return InsertData(db, mesRohIn, mesRohInDatas,
+                    //         rohInErpRohIn.FBILLTYPE)
+                    //         ? 1
+                    //         : 0;
                     case "3":
                         return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
+                    case "2":
                     case "4":
                         return SaveOrUpdateData(db, mesRohIn, mesRohInDatas)
                             ? 1
@@ -48,6 +49,18 @@
             {
                 case "A":
                 {
+                    var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+
+                    if (mesRohIn.Id != null)
+                    {
+                        base.DeleteById(mesRohIn.Id);
+                    }
+
+                    if (decimals.Length > 0)
+                    {
+                        db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand();
+                    }
+                    
                     var insert = base.Insert(mesRohIn);
                     var insertRange =
                         rohInDataManager.InsertRange(mesRohInDatas);
@@ -81,8 +94,11 @@
         private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
             List<MesRohInData> mesRohInDatas)
         {
-            var update = base.Insert(mesRohIn);
-            var insertOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
+            var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+            var update = base.DeleteById(mesRohIn.Id);
+            var insertOrUpdate = db
+                .Deleteable<MesRohInData>().In(decimals)
+                .ExecuteCommand() > 0;
 
             if (update && insertOrUpdate) return true;
             throw new NotImplementedException("鏇存柊澶辫触");
@@ -92,6 +108,17 @@
         private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
             List<MesRohInData> mesRohInDatas)
         {
+            
+            if (mesRohIn.Id != null)
+            {
+                base.DeleteById(mesRohIn.Id);
+            }
+
+            if (mesRohInDatas.Count > 0)
+            {
+                db.Deleteable<MesRohInData>().Where(s=>s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
+            }
+
             var orUpdate = base.Insert(mesRohIn);
             var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
             if (orUpdate && baOrUpdate) return true;

--
Gitblit v1.9.3