|
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.AppConfig;
namespace ICSSoft.Frame.Data.DAL { public class ICSLOTONWIPDetailDAL { //public class OrdinalComparer : System.Collections.Generic.IComparer<String>
//{
// public int Compare(DateTime x, DateTime y)
// {
// return DateTime.Compare(x, y);
// }
//}
public static void Suspend(string dsconn, ICSLOTONWIPDetail wipDetailInfo) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region 更新ICSLOTONWIPDetail表状态
//bool isnew=false;
//var wipDetailline = db.ICSLOTONWIPDetail.OrderByDescending(a => a.MTIME)
// .FirstOrDefault(a => a.LOTNO == wipDetailInfo.LOTNO
// && a.ROUTECODE == wipDetailInfo.ROUTECODE
// && a.OPCODE == wipDetailInfo.OPCODE
// && a.MUSER == wipDetailInfo.MUSER
// && a.CollectStatus != "COLLECT_BEGIN"
// && a.WorkPoint == wipDetailInfo.WorkPoint);
//if (wipDetailline == null)
//{
// isnew = true;
// wipDetailline == new ICSLOTONWIPDetail();
// wipDetailline.ID = wipDetailInfo.ID;
//}
//wipDetailline.AutoStatus = wipDetailInfo.AutoStatus;
//wipDetailline.BeginDateTime = wipDetailInfo.BeginDateTime;
//wipDetailline.CollectStatus = wipDetailInfo.CollectStatus;
//wipDetailline.DeptNo = wipDetailInfo.DeptNo;
//wipDetailline.EATTRIBUTE1 = wipDetailInfo.EATTRIBUTE1;
//wipDetailline.ECCode = wipDetailInfo.ECCode;
//wipDetailline.ECDesc = wipDetailInfo.ECDesc;
//wipDetailline.EndDateTime = wipDetailInfo.EndDateTime;
//wipDetailline.ITEMCODE = wipDetailInfo.ITEMCODE;
//wipDetailline.LOTNO = wipDetailInfo.LOTNO;
//wipDetailline.LOTSEQ = wipDetailInfo.LOTSEQ;
//wipDetailline.MTIME = wipDetailInfo.MTIME;
//wipDetailline.MUSER = wipDetailInfo.MUSER;
//wipDetailline.MUSERName = wipDetailInfo.MUSERName;
//wipDetailline.OPCODE = wipDetailInfo.OPCODE;
//wipDetailline.ROUTECODE = wipDetailInfo.ROUTECODE;
//wipDetailline.Status = wipDetailInfo.Status;
//wipDetailline.TransNO = wipDetailInfo.TransNO;
//wipDetailline.Type = wipDetailInfo.Type;
//wipDetailline.WorkCenter = wipDetailInfo.WorkCenter;
//wipDetailline.WorkPoint = wipDetailInfo.WorkPoint;
//if (isnew)
//{
// db.ICSLOTONWIPDetail.InsertOnSubmit(line);
//}
var line = db.ICSLOTONWIPDetail.FirstOrDefault(a => a.ID == wipDetailInfo.ID); if (line == null) { throw new Exception(wipDetailInfo.ID + "已被删除!"); } line.CollectStatus = wipDetailInfo.CollectStatus; line.Status = "更新"; db.SubmitChanges();
#endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } }
public static void Suspend(ICSLOTONWIPDetail wipDetailInfo, ICSLOTPAUSE ztinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTONWIPDetail表
var wipDetailLine = db.ICSLOTONWIPDetail.SingleOrDefault(a => a.ID == wipDetailInfo.ID); if (wipDetailLine == null) { throw new Exception("工序采集记录子表数据错误,本次开工记录不存在,暂停失败!"); } wipDetailLine.CollectStatus = wipDetailInfo.CollectStatus; db.SubmitChanges(); #endregion
#region ICSLOTPAUSE表
int notFinish = db.ICSLOTPAUSE.Where(a => a.WIPDetailID == wipDetailInfo.ID && a.BeginTime != null && a.EndTime == null).Count(); if (notFinish > 0) { throw new Exception("上次暂停还未结束,你的账号是否在多处登录报工界面并对同一[跟踪单-工序]进行操作?请退出所有此[跟踪单-工序]的报工,重新登陆"); } int seq = db.ICSLOTPAUSE.Where(a => a.LOTNO == ztinfo.LOTNO && a.ROUTECODE == ztinfo.ROUTECODE && a.OPCODE == ztinfo.OPCODE && a.MUSER == ztinfo.MUSER && a.WorkPoint == ztinfo.WorkPoint).Count();
ztinfo.SEQ = seq + 1;//暂停纪录序号
db.ICSLOTPAUSE.InsertOnSubmit(ztinfo); db.SubmitChanges(); #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } }
public static void Continue(string ID_wipDetail, string ID_PAUSE, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTONWIPDetail表
var wipDetailLine = db.ICSLOTONWIPDetail.SingleOrDefault(a => a.ID == ID_wipDetail); if (wipDetailLine == null) { throw new Exception("工序采集记录子表数据错误,本次开工记录不存在,[取消暂停]失败!"); } wipDetailLine.CollectStatus = "COLLECT_BEGIN";
db.SubmitChanges(); #endregion
#region ICSLOTPAUSE表
var ztline = db.ICSLOTPAUSE.SingleOrDefault(a => a.ID == ID_PAUSE); if (ztline == null) { throw new Exception("暂停表数据获取错误,本次暂停记录不存在,[取消暂停]失败!"); } if (ztline.EndTime != null) { throw new Exception("本次暂停已结束,你的账号是否在多处登录报工界面并对同一[跟踪单-工序]进行操作?请退出所有此[跟踪单-工序]的报工,重新登陆"); } ztline.EndTime = DateTime.Now;
db.SubmitChanges(); #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } }
public static void EndUserOP(ICSLOTONWIP onwip, ICSLOTONWIPDetail detail, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTONWIP表
var lineOnwip = db.ICSLOTONWIP.SingleOrDefault(a => a.LOTNO == onwip.LOTNO && a.OPCODE == onwip.OPCODE && a.WorkPoint == onwip.WorkPoint); if (lineOnwip == null) { throw new Exception("跟踪单-工序状态数据获取错误,[完工]失败!"); } lineOnwip.ACTION = onwip.ACTION; lineOnwip.GOODQTY = onwip.GOODQTY; lineOnwip.NGQTY = onwip.NGQTY; db.SubmitChanges(); #endregion
#region ICSLOTONWIPDetail表
var lineWipDetail = db.ICSLOTONWIPDetail.SingleOrDefault(a => a.ID == detail.ID); if (lineWipDetail == null) { throw new Exception("跟踪单-工序子表数据错误,[完工]失败!"); } lineWipDetail.OKQty = detail.OKQty; lineWipDetail.NGQty = detail.NGQty; lineWipDetail.EndDateTime = DateTime.Now; lineWipDetail.CollectStatus = detail.CollectStatus; lineWipDetail.SEGCODE = detail.SEGCODE; lineWipDetail.SGroup = detail.SGroup; db.SubmitChanges(); #endregion
#region ICSLOTSIMULATION表
var lineSim = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == onwip.LOTNO && a.WorkPoint == onwip.WorkPoint); if (lineSim == null) { throw new Exception("跟踪单状态数据获取错误,[完工]失败!"); } if (lineOnwip.EATTRIBUTE1 == "串行") { lineSim.GOODQTY = lineOnwip.GOODQTY; } if (detail.NGQty > 0) { lineSim.LACTION = "NG"; lineSim.PRODUCTSTATUS = "NG"; lineSim.ACTIONLIST = "NG"; } db.SubmitChanges(); #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } }
public static int QueryAllOPUserState(string lot, string route, string op, string workpoint, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); try { var wipDetailLine = db.ICSLOTONWIPDetail.Select(a => a.LOTNO == lot && a.ROUTECODE == route && a.OPCODE == op && a.WorkPoint == workpoint); return wipDetailLine.Count(); } catch (Exception ex) { throw ex; } }
public static void ReStart(ICSLOTONWIPDetail detail, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { db.ICSLOTONWIPDetail.InsertOnSubmit(detail); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } }
public static void CollectOPStart(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo, ICSLOTONWIPDetail wipDetailInfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTSIMULATION表
if (siminfo != null) { //var simline = new ICSLOTSIMULATION();
//simline.ID = siminfo.ID;
//simline.LOTNO = siminfo.LOTNO;
//simline.LOTSEQ = siminfo.LOTSEQ;
//simline.LOTQTY = siminfo.LOTQTY;
//simline.MOSEQ = siminfo.MOSEQ;
//simline.MOCODE = siminfo.MOCODE;
//simline.GOODQTY = siminfo.GOODQTY;
//simline.NGQTY = siminfo.NGQTY;
//simline.LOTStatus = siminfo.LOTStatus;
//simline.MODELCODE = siminfo.MODELCODE;
//simline.ITEMCODE = siminfo.ITEMCODE;
//simline.ROUTECODE = siminfo.ROUTECODE;
//simline.OPCODE = siminfo.OPCODE;
//simline.EQPCODE = siminfo.EQPCODE;
//simline.PRODUCTSTATUS = siminfo.PRODUCTSTATUS;
//simline.LACTION = siminfo.LACTION;
//simline.ACTIONLIST = siminfo.ACTIONLIST;
//simline.NGTIMES = siminfo.NGTIMES;
//simline.ISCOM = siminfo.ISCOM;
//simline.ISHOLD = siminfo.ISHOLD;
//simline.CollectStatus = siminfo.CollectStatus;
//simline.BeginTime = siminfo.BeginTime;
//simline.EndTime = siminfo.EndTime;
//simline.MUSER = siminfo.MUSER;
//simline.MUSERName = siminfo.MUSERName;
//simline.MTIME = siminfo.MTIME;
//simline.WorkPoint = siminfo.WorkPoint;
//simline.OPList = siminfo.OPList;
//simline.OPListAttr = siminfo.OPListAttr;
//simline.EATTRIBUTE1 = siminfo.EATTRIBUTE1;
//simline.EATTRIBUTE2 = siminfo.EATTRIBUTE2;
db.ICSLOTSIMULATION.InsertOnSubmit(siminfo); db.SubmitChanges(); } #endregion
#region ICSLOTONWIP表
if (wipinfo != null) { //var wipline = new ICSLOTONWIP();
//wipline.ID = wipinfo.ID;
//wipline.LOTNO = wipinfo.LOTNO;
//wipline.LOTSEQ = wipinfo.LOTSEQ;
//wipline.MOCODE = wipinfo.MOCODE;
//wipline.MODELCODE = wipinfo.MODELCODE;
//wipline.ITEMCODE = wipinfo.ITEMCODE; ;
//wipline.ROUTECODE = wipinfo.ROUTECODE;
//wipline.OPCODE = wipinfo.OPCODE;
//wipline.EQPCODE = wipinfo.EQPCODE;
//wipline.SHIFTTYPECODE = wipinfo.SHIFTTYPECODE;
//wipline.ACTION = wipinfo.ACTION;
//wipline.ACTIONRESULT = wipinfo.ACTIONRESULT;
//wipline.NGTIMES = wipinfo.NGTIMES;
//wipline.MOSEQ = wipinfo.MOSEQ;
//wipline.Processed = wipinfo.Processed;
//wipline.LOTQTY = wipinfo.LOTQTY;
//wipline.GOODQTY = wipinfo.GOODQTY;
//wipline.NGQTY = wipinfo.NGQTY;
//wipline.UserCodeBegin = wipinfo.UserCodeBegin;
//wipline.UserCodeEnd = wipinfo.UserCodeEnd;
//wipline.BeginTime = wipinfo.BeginTime;
//wipline.EndTime = wipinfo.EndTime;
//wipline.MUSER = wipinfo.MUSER;
//wipline.MUSERName = wipinfo.MUSERName;
//wipline.MTIME = wipinfo.MTIME;
//wipline.WorkPoint = wipinfo.WorkPoint;
//wipline.EATTRIBUTE1 = wipinfo.EATTRIBUTE1;
var lineSim = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == wipinfo.LOTNO && a.LOTSEQ == wipinfo.LOTSEQ && a.WorkPoint == wipinfo.WorkPoint); if (lineSim.OPListAttr == "并行" && wipinfo.EATTRIBUTE1 == "并行") { lineSim.OPList += ("," + wipinfo.OPSEQ.ToString()); } else { lineSim.OPList = wipinfo.OPSEQ.ToString(); lineSim.OPListAttr = wipinfo.EATTRIBUTE1; } lineSim.LOTQTY = Convert.ToDecimal(wipinfo.LOTQTY); db.SubmitChanges(); db.ICSLOTONWIP.InsertOnSubmit(wipinfo); db.SubmitChanges(); } #endregion
#region ICSLOTONWIPDetail表
if (wipDetailInfo != null) { //ICSLOTONWIPDetail wipDetailline = new ICSLOTONWIPDetail();
//wipDetailline.AutoStatus = wipDetailInfo.AutoStatus;
//wipDetailline.BeginDateTime = wipDetailInfo.BeginDateTime;
//wipDetailline.CollectStatus = wipDetailInfo.CollectStatus;
//wipDetailline.DeptNo = wipDetailInfo.DeptNo;
//wipDetailline.EATTRIBUTE1 = wipDetailInfo.EATTRIBUTE1;
//wipDetailline.ECCode = wipDetailInfo.ECCode;
//wipDetailline.ECDesc = wipDetailInfo.ECDesc;
//wipDetailline.EndDateTime = wipDetailInfo.EndDateTime;
//wipDetailline.ID = wipDetailInfo.ID;
//wipDetailline.ITEMCODE = wipDetailInfo.ITEMCODE;
//wipDetailline.LOTNO = wipDetailInfo.LOTNO;
//wipDetailline.LOTSEQ = wipDetailInfo.LOTSEQ;
//wipDetailline.MTIME = wipDetailInfo.MTIME;
//wipDetailline.MUSER = wipDetailInfo.MUSER;
//wipDetailline.MUSERName = wipDetailInfo.MUSERName;
//wipDetailline.OPCODE = wipDetailInfo.OPCODE;
//wipDetailline.ROUTECODE = wipDetailInfo.ROUTECODE;
//wipDetailline.Status = wipDetailInfo.Status;
//wipDetailline.TransNO = wipDetailInfo.TransNO;
//wipDetailline.EQPCode = wipDetailInfo.EQPCode;
//wipDetailline.EQPDesc = wipDetailInfo.EQPDesc;
//wipDetailline.Type = wipDetailInfo.Type;
//wipDetailline.WorkCenter = wipDetailInfo.WorkCenter;
//wipDetailline.WorkPoint = wipDetailInfo.WorkPoint;
db.ICSLOTONWIPDetail.InsertOnSubmit(wipDetailInfo); db.SubmitChanges(); } #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } } }
|