using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Threading.Tasks; using SqlSugar; namespace IStation.DAL { /// /// 监测单元 /// public partial class MonitorUnit : CorpDAL_Sorter_UseStatus_TagName { /// /// /// public override ConnectionConfig ConnectionConfig { get { return ConfigHelper.DefaultConnectionConfig; } } /// /// 通过 BelongType 和 BelongID 获取 /// public List GetByBelongTypeAndBelongID(long CorpID, string BelongType, long BelongID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.CorpID == CorpID && x.BelongType == BelongType && x.BelongID == BelongID).ToList(); } } /// /// 插入拓展 /// public long InsertEx(Entity.MonitorUnit entity, List signals) { if (entity == null) return default; if (signals == null || signals.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var id = db.Insertable(entity).ExecuteReturnSnowflakeId(); if (id < 1) { db.RollbackTran(); return default; } signals.ForEach(x => x.MonitorUnitID = id); var bol = db.Insertable(signals).ExecuteReturnSnowflakeIdList().Count() > 0; if (!bol) { db.RollbackTran(); return default; } db.CommitTran(); return id; } catch { db.RollbackTran(); throw; } } } /// /// 批量插入拓展 /// public bool InsertsEx(Dictionary> dict) { if (dict == null || dict.Count < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); foreach (var kvp in dict) { var id = db.Insertable(kvp.Key).ExecuteReturnSnowflakeId(); if (id < 1) { db.RollbackTran(); return default; } kvp.Value.ForEach(x => x.MonitorUnitID = id); var bol = db.Insertable(kvp.Value).ExecuteReturnSnowflakeIdList().Count() > 0; if (!bol) { db.RollbackTran(); return default; } } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } /// /// 批量插入拓展 /// public List InsertsREx(Dictionary> dict) { if (dict == null || dict.Count < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var list = new List(); foreach (var kvp in dict) { var id = db.Insertable(kvp.Key).ExecuteReturnSnowflakeId(); if (id < 1) { db.RollbackTran(); return default; } kvp.Value.ForEach(x => x.MonitorUnitID = id); var bol = db.Insertable(kvp.Value).ExecuteReturnSnowflakeIdList().Count() > 0; if (!bol) { db.RollbackTran(); return default; } list.Add(id); } db.CommitTran(); return list; } catch { db.RollbackTran(); throw; } } } /// /// 更新拓展 /// public bool UpdateEx(Entity.MonitorUnit entity, List signals) { if (entity == null) return default; if (signals == null || signals.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var result = db.Updateable(entity).ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return default; } result = db.Updateable(signals).ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return default; } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } /// /// 批量更新拓展 /// public bool UpdatesEx(Dictionary> dict) { if (dict == null || dict.Count < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); foreach (var kvp in dict) { var result = db.Updateable(kvp.Key).ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return default; } result = db.Insertable(kvp.Value).ExecuteCommand() > 0; if (!result) { db.RollbackTran(); return default; } } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } /// /// 通过 ID 删除 /// public override bool DeleteByID(long CorpID, long ID) { using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var result = db.Deleteable() .Where(x => x.CorpID == CorpID && x.ID == ID) .ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return default; } result = db.Deleteable() .Where(x => x.CorpID == CorpID && x.MonitorUnitID == ID) .ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return default; } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } } }