using Yw.DAL.PostgreSql; namespace HStation.DAL.PostgreSql { /// /// /// public partial class XhsPumpPhartMapping : BaseDAL_Sorter, IXhsPumpPhartMapping { /// /// /// public override ConnectionConfig ConnectionConfig { get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; } } /// /// 插入拓展 /// public long InsertEx(Entity.XhsPumpPhartMapping mapping, Entity.XhsPhartDiagram diagram, List graphList) { if (mapping == null) { return default; } using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); long diagramId = mapping.DiagramID; if (diagram != null) { if (diagram.ID > 0) { var bol = db.Insertable(diagram).ExecuteCommand() > 0; if (bol) { diagramId = diagram.ID; } } else { diagramId = db.Insertable(diagram).ExecuteReturnSnowflakeId(); } } if (diagramId < 1) { db.RollbackTran(); return default; } if (graphList != null && graphList.Any()) { List graphIds = null; graphList.ForEach(x => x.DiagramID = diagramId); if (graphList.Exists(x => x.ID > 0)) { graphList.ForEach(x => { if (x.ID < 1) { x.ID = SnowFlakeSingle.instance.NextId(); } }); if (db.Insertable(graphList).ExecuteCommand() > 0) { graphIds = graphList.Select(x => x.ID).Distinct().ToList(); } } else { graphIds = db.Insertable(graphList).ExecuteReturnSnowflakeIdList(); } if (graphIds == null || !graphIds.Any()) { db.RollbackTran(); return default; } } mapping.DiagramID = diagramId; long mappingId = 0; if (mapping.ID > 0) { var bol = db.Insertable(mapping).ExecuteCommand() > 0; if (bol) { mappingId = mapping.ID; } } else { mappingId = db.Insertable(mapping).ExecuteReturnSnowflakeId(); } if (mappingId < 1) { db.RollbackTran(); return default; } db.CommitTran(); return mappingId; } catch { db.RollbackTran(); throw; } } } /// /// 更新拓展 /// public bool UpdateEx(Entity.XhsPumpPhartMapping mapping, Entity.XhsPhartDiagram diagram, List graphList) { using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var bol = db.Updateable(mapping).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } if (diagram != null) { if (diagram.ID != mapping.DiagramID) { db.RollbackTran(); return false; } bol = db.Updateable(diagram).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } } if (graphList != null && graphList.Count > 0) { if (graphList.Exists(x => x.DiagramID != mapping.DiagramID)) { db.RollbackTran(); return false; } bol = db.Updateable(graphList).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } /// /// 通过 PumpID 获取 /// public List GetByPumpID(long PumpID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.PumpID == PumpID) .OrderBy(x => x.SortCode).ToList(); } } /// /// 通过 PumpIds 获取 /// public List GetByPumpIds(List PumpIds) { if (PumpIds == null || PumpIds.Count < 1) { return default; } using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => PumpIds.Contains(x.PumpID)) .OrderBy(x => x.SortCode).ToList(); } } /// /// 通过 DiagramID 获取 /// public List GetByDiagramID(long DiagramID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.DiagramID == DiagramID) .OrderBy(x => x.SortCode).ToList(); } } /// /// 通过 DiagramIds 获取 /// public List GetByDiagramIds(List DiagramIds) { if (DiagramIds == null || DiagramIds.Count < 1) { return default; } using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => DiagramIds.Contains(x.DiagramID)) .OrderBy(x => x.SortCode).ToList(); } } /// /// 更新 OtherName /// public bool UpdateOtherName(long ID, string OtherName) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable() .SetColumns(x => x.OtherName == OtherName) .Where(x => x.ID == ID) .ExecuteCommandHasChange(); } } /// /// 更新 Importance /// public bool UpdateImportance(long ID, int Importance) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Updateable() .SetColumns(x => x.Importance == Importance) .Where(x => x.ID == ID) .ExecuteCommandHasChange(); } } /// /// 通过 PumpID 删除 /// public bool DeleteByPumpID(long PumpID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable() .Where(x => x.PumpID == PumpID) .ExecuteCommandHasChange(); } } /// /// 通过 DiagramID 删除所有映射、图表、图形 /// public bool DeleteByDiagramID(long DiagramID) { using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); var bol = db.Deleteable().Where(x => x.DiagramID == DiagramID).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } bol = db.Deleteable().Where(x => x.ID == DiagramID).ExecuteCommandHasChange(); if (!bol) { db.RollbackTran(); return false; } bol = db.Deleteable().Where(x => x.DiagramID == DiagramID).ExecuteCommandHasChange(); db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } } }