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/MesUnitManager.cs | 57 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 47 insertions(+), 10 deletions(-) diff --git a/MES.Service/service/BasicData/MesUnitManager.cs b/MES.Service/service/BasicData/MesUnitManager.cs index 7f6058d..ba637e9 100644 --- a/MES.Service/service/BasicData/MesUnitManager.cs +++ b/MES.Service/service/BasicData/MesUnitManager.cs @@ -100,9 +100,6 @@ var entity = new MesUnit { - // Id = string.IsNullOrEmpty(unit.Id) - // ? DateTimeOffset.UtcNow.ToUnixTimeSeconds() - // : Convert.ToDecimal(unit.Id), Fnumber = unit.FNumber, Fname = unit.FName, Funitgroupid = unit.FUnitGroupId, @@ -121,13 +118,20 @@ Type = unit.Type }; - var mesUnit = Db.Queryable<MesUnit>() + // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚屽崟浣嶇紪鐮佺殑璁板綍 + var existingUnit = Db.Queryable<MesUnit>() .Where(s => s.Fnumber == entity.Fnumber) .First(); - if (mesUnit != null) + if (existingUnit != null) { - entity.Id = mesUnit.Id; + // 濡傛灉瀛樺湪锛屼娇鐢ㄧ幇鏈夌殑ID锛屽悗缁皢鍒犻櫎鍚庨噸鏂版彃鍏� + entity.Id = existingUnit.Id; + } + else + { + // 濡傛灉涓嶅瓨鍦紝璁句负0锛孖nsertOrUpdate鏂规硶灏嗙敓鎴愭柊ID + entity.Id = 0; } return entity; @@ -164,12 +168,45 @@ return deleteByIds > 0; } + /// <summary> + /// 鐢熸垚鏂扮殑ID锛岀‘淇濅笉閲嶅 + /// </summary> + private decimal GenerateNewId() + { + // 澶勭悊绌鸿〃鐨勬儏鍐碉紝浠�1寮�濮� + var maxId = Db.Queryable<MesUnit>().Max(x => (decimal?)x.Id) ?? 0; + var newId = maxId + 1; + + // 鍙岄噸妫�鏌ワ紝纭繚鐢熸垚鐨処D涓嶅瓨鍦� + while (Db.Queryable<MesUnit>().Where(x => x.Id == newId).Any()) + { + newId++; + } + + return newId; + } + private bool InsertOrUpdate(SqlSugarScope db, MesUnit entity) { - db.Deleteable<MesUnit>() - .Where(s => s.Id == entity.Id).ExecuteCommand(); - var insert = db.Insertable(entity).ExecuteCommand(); - return insert > 0; + if (entity.Id == 0) + { + // 鏂板鎯呭喌锛氱敓鎴愭柊ID骞舵彃鍏� + var newId = GenerateNewId(); + entity.Id = newId; + return db.Insertable(entity).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand() > 0; + } + else + { + // 鏇存柊鎯呭喌锛氬垹闄ゅ悗閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D + var originalId = entity.Id; + + // 鍏堝垹闄ゅ師璁板綍锛堝鏋滃瓨鍦級 + db.Deleteable<MesUnit>().Where(s => s.Id == originalId).ExecuteCommand(); + + // 閲嶆柊鎻掑叆锛屼繚鎸佸師鏈塈D + entity.Id = originalId; + return db.Insertable(entity).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand() > 0; + } } private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesUnit> unitList) -- Gitblit v1.9.3