锐腾搅拌上料功能
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.

1285 lines
61 KiB

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<ICSLOTONWIPITEM> 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<ICSOQCCKGROUP2LISTCheckResult> 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();
}
}
}