using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; namespace ICSSoft.Frame.Data.DAL { public class ICSEQPWeeklyMaintenanceDAL { /// /// 批量删除 /// /// /// public static void DeleteById(List listID, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var lines = db.ICSEQPWeeklyMaintenance.Where(a => listID.Contains(a.ID)); db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(lines); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } finally { db.Connection.Close(); } } /// /// 单行新增 /// /// /// public static void Add(ICSEQPWeeklyMaintenance info, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var line = db.ICSEQPWeeklyMaintenance.SingleOrDefault(a => a.EQPID == info.EQPID && a.DATEDIFFID == info.DATEDIFFID); if (line != null) { throw new Exception("此设备的对应时间段已经维护!"); } var list = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == info.EQPID).ToList(); var lineDateCurrent = db.ICSDateDiff.SingleOrDefault(a => a.ID == info.DATEDIFFID); foreach (ICSEQPWeeklyMaintenance item in list) { var lineDateEx = db.ICSDateDiff.SingleOrDefault(a => a.ID == item.DATEDIFFID); if (lineDateEx.TYPE != "RPS") { continue; } if (lineDateEx.BEGINTIME > lineDateCurrent.ENDTIME || lineDateEx.ENDTIME < lineDateCurrent.BEGINTIME) { continue; } else { throw new Exception("维护时间段(" + lineDateCurrent.BEGINTIME + "~" + lineDateCurrent.ENDTIME + ")与已有时间段(" + lineDateEx.BEGINTIME + "~" + lineDateEx.ENDTIME + ")有重叠"); } } db.ICSEQPWeeklyMaintenance.InsertOnSubmit(info); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } finally { db.Connection.Close(); } } /// /// 单行修改 /// /// /// public static void Modify(ICSEQPWeeklyMaintenance info, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var line = db.ICSEQPWeeklyMaintenance.SingleOrDefault(a => a.ID == info.ID); if (line == null) { throw new Exception("记录已被删除!"); } var list = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == info.EQPID).ToList(); var lineDateCurrent = db.ICSDateDiff.SingleOrDefault(a => a.ID == info.DATEDIFFID); foreach (ICSEQPWeeklyMaintenance item in list) { var lineDateEx = db.ICSDateDiff.SingleOrDefault(a => a.ID == item.DATEDIFFID); if (lineDateEx.TYPE != "RPS") { continue; } if (lineDateEx.BEGINTIME > lineDateCurrent.ENDTIME || lineDateEx.ENDTIME < lineDateCurrent.BEGINTIME) { continue; } else { throw new Exception("维护时间段(" + lineDateCurrent.BEGINTIME + "~" + lineDateCurrent.ENDTIME + ")与已有时间段(" + lineDateEx.BEGINTIME + "~" + lineDateEx.ENDTIME + ")有重叠"); } } line.DATEDIFFID = info.DATEDIFFID; line.MTIME = info.MTIME; line.MUSERName = info.MUSERName; line.Available = info.Available; db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } finally { db.Connection.Close(); } } /// /// 单设备一次性维护多个时间段 /// /// 设备id /// 启用 /// 时间段id /// 用户名 /// 维护时间 /// 站点 /// conn public static void Edit4OneEQ(string EQPID, bool Available, List listDATEDIFFID, string MUSERName, DateTime MTIME, string WorkPoint, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var linesDel = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == EQPID); db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(linesDel); List linesInsert = new List(); foreach (var DATEDIFFID in listDATEDIFFID) { ICSEQPWeeklyMaintenance line = new ICSEQPWeeklyMaintenance(); line.EQPID = EQPID; line.DATEDIFFID = DATEDIFFID; line.MTIME = MTIME; line.MUSERName = MUSERName; line.WorkPoint = WorkPoint; line.Available = Available; linesInsert.Add(line); } db.ICSEQPWeeklyMaintenance.InsertAllOnSubmit(linesInsert); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } finally { db.Connection.Close(); } } /// /// 批量导入 /// /// /// /// public static void Import(List list, string WorkPoint, string dsconn) { throw new Exception("暂不支持"); } public static void Edit4OneEQ(string EQPID, List list, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var linesDel = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == EQPID); db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(linesDel); db.ICSEQPWeeklyMaintenance.InsertAllOnSubmit(list); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } finally { db.Connection.Close(); } } } }