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