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