From e159c28b6d090dc875c878e462ceb45a809315d7 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期五, 12 九月 2025 11:29:46 +0800 Subject: [PATCH] 111 --- MES.Service/service/BasicData/MesDepotsManager.cs | 58 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 47 insertions(+), 11 deletions(-) diff --git a/MES.Service/service/BasicData/MesDepotsManager.cs b/MES.Service/service/BasicData/MesDepotsManager.cs index eb746d6..16b4919 100644 --- a/MES.Service/service/BasicData/MesDepotsManager.cs +++ b/MES.Service/service/BasicData/MesDepotsManager.cs @@ -76,14 +76,46 @@ throw new NotImplementedException("鍙嶅鏍稿け璐�"); } + /// <summary> + /// 鐢熸垚鏂扮殑DepotId锛岀‘淇濅笉閲嶅 + /// </summary> + private decimal GenerateNewId() + { + // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮� + var maxId = Db.Queryable<MesDepots>().Max(x => (decimal?)x.DepotId) ?? 0; + var newId = maxId + 1; + + // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨凞epotId涓嶅瓨鍦� + while (Db.Queryable<MesDepots>().Where(x => x.DepotId == newId).Any()) + { + newId++; + } + + return newId; + } + // 鎻掑叆鎴栨洿鏂颁粨搴撶殑鏂规硶 private bool InsertOrUpdate(SqlSugarScope db, MesDepots entity) { - db.Deleteable<MesDepots>() - .Where(s => s.DepotId == entity.DepotId) - .ExecuteCommand(); - var insert = db.Insertable(entity).ExecuteCommand(); - return insert > 0; + if (entity.DepotId == 0) + { + // 鏂板鎯呭喌锛氱敓鎴愭柊DepotId骞舵彃鍏� + var newId = GenerateNewId(); + entity.DepotId = newId; + return db.Insertable(entity).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand() > 0; + } + else + { + // 鏇存柊鎯呭喌锛氬垹闄ゅ悗閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塂epotId + var originalId = entity.DepotId; + + // 鍏堝垹闄ゅ師璁板綍锛堝鏋滃瓨鍦級 + db.Deleteable<MesDepots>().Where(s => s.DepotId == originalId).ExecuteCommand(); + + // 閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塂epotId + entity.DepotId = originalId; + return db.Insertable(entity).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand() > 0; + } } // 灏� ErpDepots 瀵硅薄杞崲涓� MesDepots 瀵硅薄鐨勬柟娉� @@ -93,9 +125,6 @@ { DepotCode = depots.FNumber, DepotName = depots.FName, - // DepotId = string.IsNullOrEmpty(depots.Id) - // ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() - // : Convert.ToInt32(depots.Id), IsFkc = depots.FAllowMinusQty, CreateBy = depots.FPrincipal, Depottype = depots.FStockProperty, @@ -115,13 +144,20 @@ Factory = "1000" }; - var mesDepots = Db.Queryable<MesDepots>() + // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚屼粨搴撶紪鐮佺殑璁板綍 + var existingDepot = Db.Queryable<MesDepots>() .Where(s => s.DepotCode == entity.DepotCode) .First(); - if (mesDepots != null) + if (existingDepot != null) { - entity.DepotId = mesDepots.DepotId; + // 濡傛灉瀛樺湪锛屼娇鐢ㄧ幇鏈夌殑DepotId锛屽悗缁皢鍒犻櫎鍚庨噸鏂版彃鍏� + entity.DepotId = existingDepot.DepotId; + } + else + { + // 濡傛灉涓嶅瓨鍦紝璁句负0锛孖nsertOrUpdate鏂规硶灏嗙敓鎴愭柊DepotId + entity.DepotId = 0; } return entity; -- Gitblit v1.9.3