using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.DBHelper; using System.Data; using System.Data.SqlClient; using ICSSoft.Base.Config.AppConfig; namespace ICSSoft.Frame.Data.DAL { public class ICSDataCollectionDAL { #region 根据放料轴编码获取放料轴信息 public static DataTable GetInfoByCode(string INVShaftCode, string SubLotNo, string dsconn) { try { string sql = @"Select 0 AS RowNo ,A.ID AS guid ,C.LotNO ,A.ShaftCode ,A.ShaftName ,B.INVCode AS INVCode ,D.INVNAME AS INVName ,C.ActualWidth ,C.LOTQTY from ICSINVShaft A LEFT JOIN ICSITEM2INVShaft B ON B.ShaftCode=A.ShaftCode LEFT JOIN ICSITEMLot C ON C.ItemCODE=B.INVCode LEFT JOIN ICSINVENTORY D ON D.INVCODE=C.ITEMCODE WHERE A.ShaftCode='{0}' AND C.LOTNO='{1}' AND A.WorkPoint='{2}'"; sql = string.Format(sql, INVShaftCode, SubLotNo, AppConfig.WorkPointCode); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; return dt; } catch (Exception ex) { throw ex; } } #endregion #region 保存采集上下模日志记录 //public static void MouldLogSave(ICSMouldUpAndDownLog info, string dsconn) //{ // FramDataContext db = new FramDataContext(dsconn); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // bool isNew = false; // var line = db.ICSMouldUpAndDownLog.SingleOrDefault(a => a.ID == info.ID); // if (line == null) // { // isNew = true; // line = new ICSMouldUpAndDownLog(); // line.ID = info.ID; // } // line.OperaterType = info.OperaterType; // line.MOCode = info.MOCode; // line.LotNo = info.LotNo; // line.INVCode = info.INVCode; // line.OPCode = info.OPCode; // line.EQPCode = info.EQPCode; // line.OperaterUser = info.OperaterUser; // line.MTIME = info.MTIME; // line.MUSER = info.MUSER; // line.MUSERNAME = info.MUSERNAME; // line.WorkPoint = info.WorkPoint; // line.EATTRIBUTE1 = info.EATTRIBUTE1; // line.EATTRIBUTE2 = info.EATTRIBUTE2; // if (isNew) // db.ICSMouldUpAndDownLog.InsertOnSubmit(line); // db.SubmitChanges(); // db.Transaction.Commit(); // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw ex; // } //} #endregion #region 工序开工 public static void CollectOPStart(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo, 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.SEQ = siminfo.SEQ; simline.MOCODE = siminfo.MOCODE; simline.LOTSEQ = siminfo.LOTSEQ; simline.LOTQTY = siminfo.LOTQTY; 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.MOSEQ = siminfo.MOSEQ; 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.EATTRIBUTE1 = siminfo.EATTRIBUTE1; db.ICSLOTSIMULATION.InsertOnSubmit(simline); db.SubmitChanges(); } #endregion #region ICSLOTONWIP表 if (wipinfo == null) { throw new Exception("采集记录子表数据错误,开工失败"); } else { var wipline = new ICSLOTONWIP(); //var CheckWipline = db.ICSLOTONWIP.SingleOrDefault(a => a.LOTNO == wipinfo.LOTNO); //if (CheckWipline!=null) //{ // throw new Exception("该条码信息已经存在"); //} 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; db.ICSLOTONWIP.InsertOnSubmit(wipline); db.SubmitChanges(); } #endregion 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.SEQ = siminfo.SEQ; simline.MOCODE = siminfo.MOCODE; simline.LOTSEQ = siminfo.LOTSEQ; simline.LOTQTY = siminfo.LOTQTY; 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.MOSEQ = siminfo.MOSEQ; 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.EATTRIBUTE1 = siminfo.EATTRIBUTE1; db.ICSLOTSIMULATION.InsertOnSubmit(simline); db.SubmitChanges(); } #endregion #region ICSLOTONWIP表 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; db.ICSLOTONWIP.InsertOnSubmit(wipline); 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.Type = wipDetailInfo.Type; wipDetailline.WorkCenter = wipDetailInfo.WorkCenter; wipDetailline.WorkPoint = wipDetailInfo.WorkPoint; db.ICSLOTONWIPDetail.InsertOnSubmit(wipDetailline); db.SubmitChanges(); } #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 工序上料 public static void CollectOPUP(List infoList, string SaveOrReturnType, string Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { bool isNew = false; foreach (var item in infoList) { var wipItem = db.ICSLOTONWIPITEM.SingleOrDefault(a => a.LOTNO == item.LOTNO && a.MOCODE == item.MOCODE && a.MOSEQ == item.MOSEQ && a.OPCODE == item.OPCODE && a.INVCODE == item.INVCODE && a.ROUTECODE == item.ROUTECODE); if (wipItem == null) { isNew = true; wipItem = new ICSLOTONWIPITEM(); wipItem.ID = AppConfig.GetGuid(); } //ICSLOTONWIPITEM wipItem = new ICSLOTONWIPITEM(); //wipItem.ID = item.ID; wipItem.MOCODE = item.MOCODE; wipItem.MOSEQ = item.MOSEQ; wipItem.LOTNO = item.LOTNO; wipItem.ITEMCODE = item.ITEMCODE; ;//母件编码 wipItem.INVCODE = item.INVCODE; ;//子件编码 wipItem.OPCODE = item.OPCODE; ; wipItem.ROUTECODE = item.ROUTECODE; ; ; if (item.QTY > 0) { if (wipItem.QTY > 0 && SaveOrReturnType == "1") { wipItem.QTY = wipItem.QTY + item.QTY; } else { wipItem.QTY = item.QTY; } } //wipItem.QTY = 0;// Convert.ToDecimal(item["iQuantity"].ToString()) / Convert.ToDecimal(txtLONTQty.Text.ToString()); wipItem.MTIME = item.MTIME; ; wipItem.MUSER = item.MUSER; ; ; wipItem.MUSERName = item.MUSERName; ; wipItem.WorkPoint = item.WorkPoint; ; if (isNew) db.ICSLOTONWIPITEM.InsertOnSubmit(wipItem); } db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion #region 工序完工 //public static void CollectOPEnd(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo,bool issplit,string splitLotno, string dsconn) public static void CollectOPEnd(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo, string splitLotno, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTSIMULATION表(如果需要创建分卷则分卷数量更新在EATTRIBUTE1,不修改GOODQTY) if (siminfo != null) { var simline = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == siminfo.LOTNO && a.OPCODE == siminfo.OPCODE); //if (issplit == false) //{ simline.GOODQTY = simline.GOODQTY + siminfo.GOODQTY; simline.NGQTY = simline.NGQTY + siminfo.NGQTY; simline.CollectStatus = siminfo.CollectStatus; //} //else //{ // simline.EATTRIBUTE1 = siminfo.GOODQTY.ToString(); //} simline.EATTRIBUTE1 = siminfo.GOODQTY.ToString(); db.SubmitChanges(); #region 如果需要创建分卷,ICSLOTSIMULATION表需要新增一条采集完工记录,其中条码改成分批出来的条码,并扣除原采集记录的数量 //if (issplit == true) //{ //var simcopyline = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == siminfo.LOTNO); // if (simcopyline == null) // { // throw new Exception("采集记录主表ID错误,开工失败"); // } // else // { // simcopyline.LOTQTY = simcopyline.LOTQTY - siminfo.GOODQTY; // var simnewline = new ICSLOTSIMULATION(); // simnewline.ID = AppConfig.GetGuid(); // simnewline.LOTNO = splitLotno; // simnewline.SEQ = simcopyline.SEQ; // simnewline.MOCODE = simcopyline.MOCODE; // simnewline.LOTSEQ = simcopyline.LOTSEQ; // simnewline.LOTQTY = siminfo.GOODQTY; // simnewline.GOODQTY = siminfo.GOODQTY; // simnewline.NGQTY = simcopyline.NGQTY; // simnewline.LOTStatus = simcopyline.LOTStatus; // simnewline.MODELCODE = simcopyline.MODELCODE; // simnewline.ITEMCODE = simcopyline.ITEMCODE; // simnewline.ROUTECODE = simcopyline.ROUTECODE; // simnewline.OPCODE = simcopyline.OPCODE; // simnewline.EQPCODE = simcopyline.EQPCODE; // simnewline.PRODUCTSTATUS = simcopyline.PRODUCTSTATUS; // simnewline.LACTION = simcopyline.LACTION; // simnewline.ACTIONLIST = simcopyline.ACTIONLIST; // simnewline.NGTIMES = simcopyline.NGTIMES; // simnewline.ISCOM = simcopyline.ISCOM; // simnewline.ISHOLD = simcopyline.ISHOLD; // simnewline.MOSEQ = simcopyline.MOSEQ; // simnewline.CollectStatus = "COLLECT_END"; // simnewline.BeginTime = simcopyline.BeginTime; // simnewline.EndTime = simcopyline.EndTime; // simnewline.MUSER = simcopyline.MUSER; // simnewline.MUSERName = simcopyline.MUSERName; // simnewline.MTIME = simcopyline.MTIME; // simnewline.WorkPoint = simcopyline.WorkPoint; // simnewline.EATTRIBUTE1 = simcopyline.EATTRIBUTE1; // db.ICSLOTSIMULATION.InsertOnSubmit(simnewline); // db.SubmitChanges(); // } //} #endregion } #endregion #region ICSLOTONWIP表 if (wipinfo == null) { throw new Exception("采集记录子表数据错误,开工失败"); } else { var wipline = db.ICSLOTONWIP.SingleOrDefault(a => a.ID == wipinfo.ID); if (wipline == null) { throw new Exception("采集记录子表ID错误,开工失败"); } else { wipline.ACTIONRESULT = wipinfo.ACTIONRESULT; wipline.LOTQTY = wipinfo.LOTQTY; wipline.GOODQTY = wipinfo.GOODQTY; wipline.NGQTY = wipinfo.NGQTY; wipline.UserCodeEnd = wipinfo.UserCodeEnd; wipline.EndTime = wipinfo.EndTime; db.SubmitChanges(); } #region 如果需要创建分卷,获取需要插入ICSLOTONWIP表的工序编码 //if (issplit == true) //{ // var wipcopylinelist = db.ICSLOTONWIP.Where(a => a.LOTNO == wipline.LOTNO && a.UserCodeBegin == wipline.UserCodeBegin).Distinct(); // foreach(ICSLOTONWIP wipcopyline in wipcopylinelist) // { // var newwipline = new ICSLOTONWIP(); // newwipline.ID = AppConfig.GetGuid(); // newwipline.LOTNO = splitLotno; // newwipline.LOTSEQ = wipcopyline.LOTSEQ; // newwipline.MOCODE = wipcopyline.MOCODE; // newwipline.MODELCODE = wipcopyline.MODELCODE; // newwipline.ITEMCODE = wipcopyline.ITEMCODE; ; // newwipline.ROUTECODE = wipcopyline.ROUTECODE; // newwipline.OPCODE = wipcopyline.OPCODE; // newwipline.EQPCODE = wipcopyline.EQPCODE; // newwipline.SHIFTTYPECODE = ""; // newwipline.ACTION = wipcopyline.ACTION; // newwipline.ACTIONRESULT = wipcopyline.ACTIONRESULT; // newwipline.NGTIMES = wipcopyline.NGTIMES; // newwipline.MOSEQ = wipcopyline.MOSEQ; // newwipline.Processed = wipcopyline.Processed; // newwipline.LOTQTY = wipcopyline.LOTQTY; // newwipline.GOODQTY = wipcopyline.GOODQTY; // newwipline.NGQTY = wipcopyline.NGQTY; // newwipline.SEQ = wipcopyline.SEQ; // newwipline.UserCodeBegin = wipcopyline.UserCodeBegin; // newwipline.UserCodeEnd = wipcopyline.UserCodeEnd; // newwipline.BeginTime = wipcopyline.BeginTime; // newwipline.EndTime = wipcopyline.EndTime; // newwipline.MUSER = wipcopyline.MUSER; // newwipline.MUSERName = wipcopyline.MUSERName; // newwipline.MTIME = wipcopyline.MTIME; // newwipline.WorkPoint = wipcopyline.WorkPoint; // newwipline.EATTRIBUTE1 = "分卷"; // db.ICSLOTONWIP.InsertOnSubmit(newwipline); // db.SubmitChanges(); // } //} #endregion } #endregion #region 如果需要创建分卷,则需要在ICSITEMLOT表,ICSITEMROUTE2OPLOT表和ICSMO2USER表都需要插入数据,其中ICSITEMLOT表还需要在原条码上扣除分卷的数量 //if (issplit == true) //{ // var lotline = db.ICSITEMLot.SingleOrDefault(a => a.LotNO == siminfo.LOTNO); // if (lotline == null) // { // throw new Exception("创建分卷时条码表数据错误,创建失败!"); // } // else // { // #region ICSITEMLOT表扣减原条码数量 // lotline.LOTQTY = lotline.LOTQTY - siminfo.GOODQTY; // #endregion // #region ICSITEMLOT新增分卷数据 // var newlotline = new ICSITEMLot(); // newlotline.ID = AppConfig.GetGuid(); // newlotline.LotNO = splitLotno; // newlotline.ItemCODE = lotline.ItemCODE; // newlotline.TransNO = lotline.TransNO; // newlotline.TransLine = lotline.TransLine; // newlotline.VENDORITEMCODE = lotline.VENDORITEMCODE; // newlotline.VENDORCODE = lotline.VENDORCODE; // newlotline.VenderLotNO = lotline.VenderLotNO; // newlotline.PRODUCTDATE = lotline.PRODUCTDATE; // newlotline.LOTQTY = siminfo.GOODQTY; // newlotline.ACTIVE = lotline.ACTIVE; // newlotline.Exdate = lotline.Exdate; // newlotline.WorkPoint = lotline.WorkPoint; // newlotline.MUSER = lotline.MUSER; // newlotline.MUSERName = lotline.MUSERName; // newlotline.MTIME = lotline.MTIME; // newlotline.EATTRIBUTE1 = lotline.EATTRIBUTE1; // newlotline.TYPE = lotline.TYPE; // newlotline.EATTRIBUTE2 = lotline.EATTRIBUTE2; // newlotline.EATTRIBUTE3 = lotline.EATTRIBUTE3; // newlotline.EATTRIBUTE4 = lotline.EATTRIBUTE4; // newlotline.EATTRIBUTE5 = lotline.EATTRIBUTE5; // newlotline.PrintTimes = lotline.PrintTimes; // newlotline.lastPrintUSERID = lotline.lastPrintUSERID; // newlotline.lastPrintTime = lotline.lastPrintTime; // newlotline.ORDERNO = lotline.ORDERNO; // //newlotline.BMStd = lotline.BMStd; // //newlotline.BMBatch = lotline.BMBatch; // //newlotline.LMStd = lotline.LMStd; // //newlotline.LMBatch = lotline.LMBatch; // //newlotline.ZCStd = lotline.ZCStd; // //newlotline.ZCBatch = lotline.ZCBatch; // //newlotline.SCStage = lotline.SCStage; // //newlotline.Edition = lotline.Edition; // //newlotline.ActualWidth = lotline.ActualWidth; // //newlotline.Meters = lotline.Meters; // //newlotline.ZCStdone = lotline.ZCStdone; // //newlotline.LMBatchone = lotline.LMBatchone; // //newlotline.ZCStdtwo = lotline.ZCStdtwo; // //newlotline.LMBatchtwo = lotline.LMBatchtwo; // //newlotline.ZCStdthree = lotline.ZCStdthree; // //newlotline.LMBatchthree = lotline.LMBatchthree; // db.ICSITEMLot.InsertOnSubmit(newlotline); // db.SubmitChanges(); // #endregion // #region 新增ICSITEMROUTE2OPLOT表 // var oplotline = db.ICSITEMROUTE2OPLot.Where(a => a.LotNo == siminfo.LOTNO); // foreach (ICSITEMROUTE2OPLot oplotinfo in oplotline) // { // var newoplotline = new ICSITEMROUTE2OPLot(); // newoplotline.ID = AppConfig.GetGuid(); // newoplotline.ITEMCODE = oplotinfo.ITEMCODE; // newoplotline.ROUTECODE = oplotinfo.ROUTECODE; // newoplotline.OPCODE = oplotinfo.OPCODE; // newoplotline.OPSEQ = oplotinfo.OPSEQ; // newoplotline.OPCONTROL = oplotinfo.OPCONTROL; // newoplotline.OPTIONALOP = oplotinfo.OPTIONALOP; // newoplotline.LotNo = splitLotno; // newoplotline.IDMERGETYPE = oplotinfo.IDMERGETYPE; // newoplotline.IDMERGERULE = oplotinfo.IDMERGERULE; // newoplotline.MUSER = oplotinfo.MUSER; // newoplotline.MUSERName = oplotinfo.MUSERName; // newoplotline.MTIME = oplotinfo.MTIME; // newoplotline.WorkPoint = oplotinfo.WorkPoint; // newoplotline.EATTRIBUTE1 = oplotinfo.EATTRIBUTE1; // db.ICSITEMROUTE2OPLot.InsertOnSubmit(newoplotline); // db.SubmitChanges(); // } // #endregion // #region 新增ICSMO2USER表 // var moline = db.ICSMO2User.Where(a => a.LOTNO == siminfo.LOTNO); // foreach (ICSMO2User moinfo in moline) // { // var newmoline = new ICSMO2User(); // newmoline.ID = AppConfig.GetGuid(); // newmoline.MOCODE = moinfo.MOCODE; // newmoline.MOSEQ = moinfo.MOSEQ; // newmoline.LOTNO = splitLotno; // newmoline.SEGCODE = moinfo.SEGCODE; // newmoline.RouteCode = moinfo.RouteCode; // newmoline.OPCODE = moinfo.OPCODE; // newmoline.USERCODE = moinfo.USERCODE; // newmoline.USERName = moinfo.USERName; // newmoline.EQPCode = moinfo.EQPCode; // newmoline.EQPName = moinfo.EQPName; // newmoline.StartPlanDate = moinfo.StartPlanDate; // newmoline.EndPlanDate = moinfo.EndPlanDate; // newmoline.MUSER = moinfo.MUSER; // newmoline.MUSERName = moinfo.MUSERName; // newmoline.MTIME = moinfo.MTIME; // newmoline.WorkPoint = moinfo.WorkPoint; // newmoline.EATTRIBUTE1 = moinfo.EATTRIBUTE1; // db.ICSMO2User.InsertOnSubmit(newmoline); // db.SubmitChanges(); // } // #endregion // } //} #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 单件工序完工 public static void CollectOPEndPrice(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo, string splitLotno, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTSIMULATION表(如果需要创建分卷则分卷数量更新在EATTRIBUTE1,不修改GOODQTY) if (siminfo != null) { var simline = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == siminfo.LOTNO && a.OPCODE == siminfo.OPCODE && a.ROUTECODE == siminfo.ROUTECODE); simline.GOODQTY = simline.GOODQTY + siminfo.GOODQTY; simline.NGQTY = simline.NGQTY + siminfo.NGQTY; simline.CollectStatus = siminfo.CollectStatus; simline.EndTime = siminfo.EndTime; simline.EATTRIBUTE1 = siminfo.GOODQTY.ToString(); db.SubmitChanges(); } #endregion #region ICSLOTONWIP表 if (wipinfo == null) { throw new Exception("采集记录子表数据错误,开工失败"); } else { var wipline = db.ICSLOTONWIP.SingleOrDefault(a => a.ID == wipinfo.ID); if (wipline == null) { throw new Exception("采集记录子表ID错误,开工失败"); } else { wipline.ACTIONRESULT = wipinfo.ACTIONRESULT; wipline.LOTQTY = wipinfo.LOTQTY; wipline.GOODQTY = wipinfo.GOODQTY; wipline.NGQTY = wipinfo.NGQTY; wipline.UserCodeEnd = wipinfo.UserCodeEnd; wipline.EndTime = wipinfo.EndTime; db.SubmitChanges(); } } #endregion #region 如果需要创建分卷,则需要在ICSITEMLOT表,ICSITEMROUTE2OPLOT表和ICSMO2USER表都需要插入数据,其中ICSITEMLOT表还需要在原条码上扣除分卷的数量 //if (issplit == true) //{ // var lotline = db.ICSITEMLot.SingleOrDefault(a => a.LotNO == siminfo.LOTNO); // if (lotline == null) // { // throw new Exception("创建分卷时条码表数据错误,创建失败!"); // } // else // { // #region ICSITEMLOT表扣减原条码数量 // lotline.LOTQTY = lotline.LOTQTY - siminfo.GOODQTY; // #endregion // #region ICSITEMLOT新增分卷数据 // var newlotline = new ICSITEMLot(); // newlotline.ID = AppConfig.GetGuid(); // newlotline.LotNO = splitLotno; // newlotline.ItemCODE = lotline.ItemCODE; // newlotline.TransNO = lotline.TransNO; // newlotline.TransLine = lotline.TransLine; // newlotline.VENDORITEMCODE = lotline.VENDORITEMCODE; // newlotline.VENDORCODE = lotline.VENDORCODE; // newlotline.VenderLotNO = lotline.VenderLotNO; // newlotline.PRODUCTDATE = lotline.PRODUCTDATE; // newlotline.LOTQTY = siminfo.GOODQTY; // newlotline.ACTIVE = lotline.ACTIVE; // newlotline.Exdate = lotline.Exdate; // newlotline.WorkPoint = lotline.WorkPoint; // newlotline.MUSER = lotline.MUSER; // newlotline.MUSERName = lotline.MUSERName; // newlotline.MTIME = lotline.MTIME; // newlotline.EATTRIBUTE1 = lotline.EATTRIBUTE1; // newlotline.TYPE = lotline.TYPE; // newlotline.EATTRIBUTE2 = lotline.EATTRIBUTE2; // newlotline.EATTRIBUTE3 = lotline.EATTRIBUTE3; // newlotline.EATTRIBUTE4 = lotline.EATTRIBUTE4; // newlotline.EATTRIBUTE5 = lotline.EATTRIBUTE5; // newlotline.PrintTimes = lotline.PrintTimes; // newlotline.lastPrintUSERID = lotline.lastPrintUSERID; // newlotline.lastPrintTime = lotline.lastPrintTime; // newlotline.ORDERNO = lotline.ORDERNO; // //newlotline.BMStd = lotline.BMStd; // //newlotline.BMBatch = lotline.BMBatch; // //newlotline.LMStd = lotline.LMStd; // //newlotline.LMBatch = lotline.LMBatch; // //newlotline.ZCStd = lotline.ZCStd; // //newlotline.ZCBatch = lotline.ZCBatch; // //newlotline.SCStage = lotline.SCStage; // //newlotline.Edition = lotline.Edition; // //newlotline.ActualWidth = lotline.ActualWidth; // //newlotline.Meters = lotline.Meters; // //newlotline.ZCStdone = lotline.ZCStdone; // //newlotline.LMBatchone = lotline.LMBatchone; // //newlotline.ZCStdtwo = lotline.ZCStdtwo; // //newlotline.LMBatchtwo = lotline.LMBatchtwo; // //newlotline.ZCStdthree = lotline.ZCStdthree; // //newlotline.LMBatchthree = lotline.LMBatchthree; // db.ICSITEMLot.InsertOnSubmit(newlotline); // db.SubmitChanges(); // #endregion // #region 新增ICSITEMROUTE2OPLOT表 // var oplotline = db.ICSITEMROUTE2OPLot.Where(a => a.LotNo == siminfo.LOTNO); // foreach (ICSITEMROUTE2OPLot oplotinfo in oplotline) // { // var newoplotline = new ICSITEMROUTE2OPLot(); // newoplotline.ID = AppConfig.GetGuid(); // newoplotline.ITEMCODE = oplotinfo.ITEMCODE; // newoplotline.ROUTECODE = oplotinfo.ROUTECODE; // newoplotline.OPCODE = oplotinfo.OPCODE; // newoplotline.OPSEQ = oplotinfo.OPSEQ; // newoplotline.OPCONTROL = oplotinfo.OPCONTROL; // newoplotline.OPTIONALOP = oplotinfo.OPTIONALOP; // newoplotline.LotNo = splitLotno; // newoplotline.IDMERGETYPE = oplotinfo.IDMERGETYPE; // newoplotline.IDMERGERULE = oplotinfo.IDMERGERULE; // newoplotline.MUSER = oplotinfo.MUSER; // newoplotline.MUSERName = oplotinfo.MUSERName; // newoplotline.MTIME = oplotinfo.MTIME; // newoplotline.WorkPoint = oplotinfo.WorkPoint; // newoplotline.EATTRIBUTE1 = oplotinfo.EATTRIBUTE1; // db.ICSITEMROUTE2OPLot.InsertOnSubmit(newoplotline); // db.SubmitChanges(); // } // #endregion // #region 新增ICSMO2USER表 // var moline = db.ICSMO2User.Where(a => a.LOTNO == siminfo.LOTNO); // foreach (ICSMO2User moinfo in moline) // { // var newmoline = new ICSMO2User(); // newmoline.ID = AppConfig.GetGuid(); // newmoline.MOCODE = moinfo.MOCODE; // newmoline.MOSEQ = moinfo.MOSEQ; // newmoline.LOTNO = splitLotno; // newmoline.SEGCODE = moinfo.SEGCODE; // newmoline.RouteCode = moinfo.RouteCode; // newmoline.OPCODE = moinfo.OPCODE; // newmoline.USERCODE = moinfo.USERCODE; // newmoline.USERName = moinfo.USERName; // newmoline.EQPCode = moinfo.EQPCode; // newmoline.EQPName = moinfo.EQPName; // newmoline.StartPlanDate = moinfo.StartPlanDate; // newmoline.EndPlanDate = moinfo.EndPlanDate; // newmoline.MUSER = moinfo.MUSER; // newmoline.MUSERName = moinfo.MUSERName; // newmoline.MTIME = moinfo.MTIME; // newmoline.WorkPoint = moinfo.WorkPoint; // newmoline.EATTRIBUTE1 = moinfo.EATTRIBUTE1; // db.ICSMO2User.InsertOnSubmit(newmoline); // db.SubmitChanges(); // } // #endregion // } //} #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 工序结束 public static void CollectOPAllEnd(ICSLOTSIMULATION siminfo, ICSLOTONWIP wipinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTSIMULATION表 if (siminfo != null) { var simline = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == siminfo.LOTNO && a.OPCODE == siminfo.OPCODE); simline.CollectStatus = "COLLECT_END"; simline.GOODQTY = simline.GOODQTY + siminfo.GOODQTY; simline.NGQTY = simline.NGQTY + siminfo.NGQTY; db.SubmitChanges(); } #endregion #region ICSLOTONWIP表 if (wipinfo == null) { throw new Exception("采集记录子表数据错误,开工失败"); } else { var wipline = db.ICSLOTONWIP.SingleOrDefault(a => a.ID == wipinfo.ID); if (wipline == null) { throw new Exception("采集记录子表ID错误,开工失败"); } else { wipline.ACTIONRESULT = wipinfo.ACTIONRESULT; wipline.LOTQTY = wipinfo.LOTQTY; wipline.NGQTY = wipinfo.NGQTY + wipline.NGQTY; wipline.GOODQTY = wipinfo.GOODQTY + wipline.GOODQTY; wipline.UserCodeEnd = wipinfo.UserCodeEnd; wipline.EndTime = wipinfo.EndTime; db.SubmitChanges(); } } #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 工序暂停 public static void CollectOPPause(ICSLOTONWIP wipinfo, ICSLOTPAUSE ztinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTONWIP表 var wipline = db.ICSLOTONWIP.SingleOrDefault(a => a.ID == wipinfo.ID); if (wipline == null) { throw new Exception("工序采集记录子表数据错误,暂停失败!"); } else { wipline.EATTRIBUTE1 = wipinfo.EATTRIBUTE1; } db.SubmitChanges(); #endregion #region ICSLOTPAUSE表 var ztline = new ICSLOTPAUSE(); ztline.ID = ztinfo.ID; ztline.LOTNO = ztinfo.LOTNO; ztline.LOTSEQ = ztinfo.LOTSEQ; ztline.MOCODE = ztinfo.MOCODE; ztline.MODELCODE = ztinfo.MODELCODE; ztline.ITEMCODE = ztinfo.ITEMCODE; ztline.ROUTECODE = ztinfo.ROUTECODE; ztline.OPCODE = ztinfo.OPCODE; ztline.RESCODE = ztinfo.RESCODE; ztline.EQPCODE = ztinfo.EQPCODE; ztline.BeginTime = ztinfo.BeginTime; ztline.MUSER = ztinfo.MUSER; ztline.MUSERName = ztinfo.MUSERName; ztline.MTIME = ztinfo.MTIME; ztline.WorkPoint = ztinfo.WorkPoint; ztline.EATTRIBUTE1 = ztinfo.EATTRIBUTE1; db.ICSLOTPAUSE.InsertOnSubmit(ztline); db.SubmitChanges(); #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 取消暂停 public static void CollectOPCancelPause(ICSLOTONWIP wipinfo, ICSLOTPAUSE ztinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTONWIP表 var wipline = db.ICSLOTONWIP.SingleOrDefault(a => a.ID == wipinfo.ID); if (wipline == null) { throw new Exception("工序采集记录子表数据错误,暂停失败!"); } else { wipline.EATTRIBUTE1 = wipinfo.EATTRIBUTE1; } db.SubmitChanges(); #endregion #region ICSLOTPAUSE表 //var ztline = db.ICSLOTPAUSE.SingleOrDefault(a => a.LOTNO == ztinfo.LOTNO && a.OPCODE == ztinfo.OPCODE && a.MUSER == ztinfo.MUSER); var ztline = db.ICSLOTPAUSE.SingleOrDefault(a => a.LOTNO == ztinfo.LOTNO && a.OPCODE == ztinfo.OPCODE && a.MUSER == ztinfo.MUSER && (a.EndTime.ToString() == "" || a.EndTime.ToString() == null)); if (ztline == null) { throw new Exception("工序暂停记录表数据错误,取消暂停失败!"); } else { ztline.EndTime = ztinfo.EndTime; ztline.EATTRIBUTE1 = ztinfo.EATTRIBUTE1; } db.SubmitChanges(); #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 单件上岗 public static void CollectOPStartPrice(ICSLOTONWIPPriceLog wipinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSLOTSIMULATION表 if (wipinfo != null) { #region ICSLOTONWIP表 var wipline = new ICSLOTONWIPPriceLog(); 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.SEQ = wipinfo.SEQ; 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; db.ICSLOTONWIPPriceLog.InsertOnSubmit(wipline); db.SubmitChanges(); #endregion db.SubmitChanges(); } #endregion db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion #region 单件离岗 public static void CollectOPStartEnd(string UserCode, string EQPCode, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { //epList.OrderByDescending(x => x.value).FirstOrDefault() //var line = db.ICSLOTONWIPPriceLog.OrderByDescending(q => q.BeginTime).SingleOrDefault(a => a.EQPCODE == EQPCode && a.UserCodeBegin == UserCode && a.ACTIONRESULT == "COLLECT_BEGIN"); string sql = @"SELECT TOP 1 ID FROM ICSLOTONWIPPriceLog WHERE UserCodeBegin='" + UserCode + "' AND EQPCODE='" + EQPCode + "' AND ACTIONRESULT='COLLECT_BEGIN' ORDER BY BeginTime DESC"; DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; string ID = string.Empty; if (dt != null && dt.Rows.Count > 0) { ID = dt.Rows[0][0].ToString(); } var line = db.ICSLOTONWIPPriceLog.SingleOrDefault(a => a.ID == ID); #region ICSLOTSIMULATION表 if (line != null) { #region ICSLOTONWIP表 line.ACTIONRESULT = "COLLECT_END"; line.UserCodeEnd = UserCode; line.EndTime = DateTime.Now; db.SubmitChanges(); #endregion db.Transaction.Commit(); } #endregion } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } public static void CollectOPStartEnd(ICSLOTONWIPPriceLog wipinfo, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { string sql = @"SELECT TOP 1 ID FROM ICSLOTONWIPPriceLog WHERE UserCodeBegin='" + wipinfo.UserCodeBegin + "' AND EQPCODE='" + wipinfo.EQPCODE + "' AND ACTIONRESULT='COLLECT_BEGIN' ORDER BY BeginTime DESC"; DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; string ID = string.Empty; if (dt != null && dt.Rows.Count > 0) { ID = dt.Rows[0][0].ToString(); } var line = db.ICSLOTONWIPPriceLog.SingleOrDefault(a => a.ID == ID); #region ICSLOTSIMULATION表 if (line != null) { #region ICSLOTONWIP表 line.LOTNO = wipinfo.LOTNO; line.LOTSEQ = wipinfo.LOTSEQ; line.MOCODE = wipinfo.MOCODE; line.ITEMCODE = wipinfo.ITEMCODE; line.ROUTECODE = wipinfo.ROUTECODE; line.OPCODE = wipinfo.OPCODE; line.EQPCODE = wipinfo.EQPCODE; line.ACTIONRESULT = wipinfo.ACTIONRESULT; line.MOSEQ = wipinfo.MOSEQ; line.SEQ = wipinfo.SEQ; line.UserCodeEnd = wipinfo.UserCodeEnd; line.EndTime = wipinfo.EndTime; line.MUSER = wipinfo.MUSER; line.MUSERName = wipinfo.MUSERName; line.MTIME = wipinfo.MTIME; line.WorkPoint = wipinfo.WorkPoint; db.SubmitChanges(); #endregion db.Transaction.Commit(); } #endregion } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion //public ICSLOTONWIPPriceLog getICSLOTONWIPPriceLog(string UserCode,string EQPCode,string dsconn) //{ // FramDataContext db = new FramDataContext(dsconn); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // var ztline = db.ICSLOTONWIPPriceLog.SingleOrDefault(a => a.LOTNO == ztinfo.LOTNO && a.OPCODE == ztinfo.OPCODE && a.MUSER == ztinfo.MUSER); // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw ex; // } //} #region 检验数据 public static void AddAndEditList(ICSQualityCKDATA QualityCKDATA, List ECCodeList, string Appconstr, bool isIPQC) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { bool _isNew = true; ICSQualityCKDATA _line = new ICSQualityCKDATA(); var lines = db.ICSQualityCKDATA.Where(a => a.LOTNO == QualityCKDATA.LOTNO && a.OPCode == QualityCKDATA.OPCode); _line.ID = AppConfig.GetGuid(); _line.LOTNO = QualityCKDATA.LOTNO; _line.MOCODE = QualityCKDATA.MOCODE; _line.CKUserCode = QualityCKDATA.CKUserCode; _line.SEQ = QualityCKDATA.SEQ; _line.CKResult = QualityCKDATA.CKResult; _line.CKUserCode = QualityCKDATA.CKUserCode; _line.Type = QualityCKDATA.Type; _line.MEMO = QualityCKDATA.MEMO; _line.MUSER = AppConfig.UserId; _line.MUSERName = AppConfig.UserName; _line.MTIME = DateTime.Now; _line.WorkPoint = AppConfig.WorkPointCode; _line.EATTRIBUTE1 = QualityCKDATA.EATTRIBUTE1; _line.OPCode = QualityCKDATA.OPCode;//20191114 _line.EATTRIBUTE2 = QualityCKDATA.EATTRIBUTE2; _line.EATTRIBUTE3 = QualityCKDATA.EATTRIBUTE3; _line.EATTRIBUTE4 = QualityCKDATA.EATTRIBUTE4; _line.EATTRIBUTE5 = QualityCKDATA.EATTRIBUTE5; _line.EATTRIBUTE6 = QualityCKDATA.EATTRIBUTE6; _line.EATTRIBUTE7 = QualityCKDATA.EATTRIBUTE7; _line.EATTRIBUTE8 = QualityCKDATA.EATTRIBUTE8; _line.RCVDoc = QualityCKDATA.RCVDoc; _line.RCVLineNo = QualityCKDATA.RCVLineNo; if (_isNew) db.ICSQualityCKDATA.InsertOnSubmit(_line); db.SubmitChanges(); foreach (var ECCode in ECCodeList) { ICSOQCCKGROUP2LISTCheckResult line = null; bool isNew = false; if (isIPQC) { //line = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.CKGROUP == ECCode.CKGROUP && a.GXorWWCheck == ECCode.GXorWWCheck && a.LotNo == ECCode.LotNo && a.OPCode == ECCode.OPCode && a.CKListCode == ECCode.CKListCode); line = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.GXorWWCheck == ECCode.GXorWWCheck && a.LotNo == ECCode.LotNo && a.OPCode == ECCode.OPCode && a.CKListCode == ECCode.CKListCode); if (line == null) { isNew = true; line = new ICSOQCCKGROUP2LISTCheckResult(); line.ID = AppConfig.GetGuid(); } } else { //line = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.CKGROUP == ECCode.CKGROUP && a.LotNo == ECCode.LotNo && a.OPCode == ECCode.OPCode && a.CKListCode == ECCode.CKListCode); line = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.LotNo == ECCode.LotNo && a.OPCode == ECCode.OPCode && a.CKListCode == ECCode.CKListCode); if (line == null) { isNew = true; line = new ICSOQCCKGROUP2LISTCheckResult(); line.ID = AppConfig.GetGuid(); } } //var code = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.CKITEMCODE == ECCode.CKITEMCODE && a.CKListCode == ECCode.CKListCode && a.CKGROUP == ECCode.CKGROUP && a.OPCode == ECCode.OPCode && a.CheckoutAttribute == ECCode.CheckoutAttribute); var code = db.ICSOQCCKGROUP2LISTCheckResult.SingleOrDefault(a => a.CKITEMCODE == ECCode.CKITEMCODE && a.CKListCode == ECCode.CKListCode && a.OPCode == ECCode.OPCode && a.CheckoutAttribute == ECCode.CheckoutAttribute); if (code != null) { throw new Exception("料品编码码:" + ECCode.CKITEMCODE + ",检验项目组:" + ECCode.CKGROUP + ",检验项目:" + ECCode.CKListCode + ",检验属性:" + ECCode.CheckoutAttribute + "已存在!"); } line.CKListCode = ECCode.CKListCode; line.CKGROUP = ECCode.CKGROUP; line.CKITEMCODE = ECCode.CKITEMCODE; line.VALUEMAX = ECCode.VALUEMAX; line.VALUEMIN = ECCode.VALUEMIN; line.UNIT = ECCode.UNIT; line.AQL = ECCode.AQL; line.InspectionStandard = ECCode.InspectionStandard; line.CheckoutAttribute = ECCode.CheckoutAttribute; line.AQL = ECCode.AQL; line.InspectionStandard = ECCode.InspectionStandard; line.RCVCode = ECCode.RCVCode; line.LotNo = ECCode.LotNo; line.INVDESC = ECCode.INVDESC; line.IsOK = ECCode.IsOK; line.UserCode = ECCode.UserCode; line.MOCode = ECCode.MOCode; line.CheckResultValue = ECCode.CheckResultValue; line.CCorWGResult = ECCode.CCorWGResult; line.Qualified = ECCode.Qualified; line.UnQualified = ECCode.UnQualified; //line.WGResult = ECCode.WGResult; line.UserCode = AppConfig.UserCode; line.MOCode = ECCode.MOCode; line.OPCode = ECCode.OPCode; line.GXorWWCheck = ECCode.GXorWWCheck; line.WorkPoint = AppConfig.WorkPointCode; line.MUSER = AppConfig.UserCode; line.MUSERName = AppConfig.UserName; line.MTIME = DateTime.Now; if (isNew) db.ICSOQCCKGROUP2LISTCheckResult.InsertOnSubmit(line); #region Log #endregion } db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion public static void CollectOPPause(ICSLOTONWIPDetail wipinfo, ICSLOTPAUSE ztinfo, string dsconn) { throw new NotImplementedException(); } } }