锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
8.5 KiB

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
{
/// <summary>
/// 批量删除
/// </summary>
/// <param name="listID"></param>
/// <param name="dsconn"></param>
public static void DeleteById(List<string> 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();
}
}
/// <summary>
/// 单行新增
/// </summary>
/// <param name="info"></param>
/// <param name="dsconn"></param>
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();
}
}
/// <summary>
/// 单行修改
/// </summary>
/// <param name="info"></param>
/// <param name="dsconn"></param>
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();
}
}
/// <summary>
/// 单设备一次性维护多个时间段
/// </summary>
/// <param name="EQPID">设备id</param>
/// <param name="Available">启用</param>
/// <param name="listDATEDIFFID">时间段id</param>
/// <param name="MUSERName">用户名</param>
/// <param name="MTIME">维护时间</param>
/// <param name="WorkPoint">站点</param>
/// <param name="dsconn">conn</param>
public static void Edit4OneEQ(string EQPID, bool Available, List<string> 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<ICSEQPWeeklyMaintenance> linesInsert = new List<ICSEQPWeeklyMaintenance>();
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();
}
}
/// <summary>
/// 批量导入
/// </summary>
/// <param name="list"></param>
/// <param name="WorkPoint"></param>
/// <param name="dsconn"></param>
public static void Import(List<ICSEQPWeeklyMaintenance> list, string WorkPoint, string dsconn)
{
throw new Exception("暂不支持");
}
public static void Edit4OneEQ(string EQPID, List<ICSEQPWeeklyMaintenance> 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();
}
}
}
}