|
|
using System; using System.Collections; using System.Reflection; using System.Runtime.Remoting; using System.Text.RegularExpressions; using System.Linq; using System.Data.Linq; using System.Xml; using System.IO; using ICSSoft.Base.Config.AppConfig; using System.Collections.Specialized; using ICSSoft.Frame.Data.Entity; using ICSSoft.Frame.DataConnect.Action; using System.Data; using ICSSoft.Frame.DataCollect; using ICSSoft.Frame.Data.BLL; using ICSSoft.Frame.Helper; using System.Collections.Generic;
namespace ICSSoft.Frame.DataConnect { public class ICSQuery { private FramDataContext _domainDataProvider = null;
public ICSQuery(FramDataContext domainDataProvider) { this._domainDataProvider = domainDataProvider; }
public FramDataContext DataProvider { get { return _domainDataProvider; } }
//获取未做过产量计算的最小序列号
public int GetMinSerialNotProcessed() { string sql = @"select MIN(Serial)
from ICSONWIP WHERE processed='0'";
var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); if (objs == null || objs.Count < 1) return 0; else return objs[0].Serial;
}
public List<ICSONWIP> GetWIPDataList(int i_Seq) { string sql = @"select distinct RCARD, MOCODE,RCARDSEQ
from ICSONWIP where processed='0'and serial='" + i_Seq + "'";
var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return (List<ICSONWIP>)objs; }
public ICSONWIP GetWIPData(string rcard, string mocode, string rcardseq) { string sql = @"select RCARD, RCARDSEQ, MOCODE, MODELCODE, ITEMCODE, ROUTECODE, OPCODE,
SEGCODE, SSCODE, RESCODE, SHIFTTYPECODE, SHIFTCODE, TPCODE, SHIFTDAY,' ACTION, ACTIONRESULT, NGTIMES, EATTRIBUTE1, Serial from ICSONWIP where RCARD='" + rcard + "' and MOCODE='" + mocode + "' and RCARDSEQ< ='" + rcardseq + "' ORDER BY RCARDSEQ DESC";
var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return (ICSONWIP)objs[0]; }
//MainProcess
public void MainProcess(List<ICSONWIP> onwiplist) {
int LastMESEntitySerial; int MESEntitySerial;
string OPControl; string ActionList; bool First; bool AllGOOD; bool AllGoodPerOP; string OPLastResult; string OPLastAttribute; string OPLastResultForGood; string OPLastAttributeForGood; bool FirstWithLine; bool AllGoodInLine; bool AllGoodInLinePerOP;
ICSONWIP LastONWIPData; ICSONWIP onwip; ICSMESEntityList LastMESEntity; ICSMESEntityList MESEntity; ICSRPTSOQTY RPTSOQTY; ICSRPTSOQTY LastRPTSOQTY; ICSRPTLINEQTY RPTLINEQTY; ; ICSRPTLINEQTY LastRPTLINEQTY; ; ICSRPTOPQTY RPTOPQTY; ;
onwip = onwiplist[0]; MESEntity = new ICSMESEntityList(); MESEntity.BIGSSCODE = ""; MESEntity.MODELCODE = onwip.MODELCODE; MESEntity.OPCODE = onwip.OPCODE; MESEntity.SEGCODE = onwip.SEGCODE; MESEntity.SSCODE = onwip.SSCODE; MESEntity.RESCODE = onwip.RESCODE; MESEntity.SHIFTTYPECODE = onwip.SHIFTTYPECODE; MESEntity.SHIFTCODE = onwip.SHIFTCODE; MESEntity.TPCODE = onwip.TPCODE; MESEntity.FACCODE = GetFactoryCode(onwip.SEGCODE); MESEntity.WorkPoint = AppConfig.WorkPointCode; MESEntity.EATTRIBUTE1 = "";
string sql = @"select SEARIL from ICSMESEntityList
where BIGSSCODE = '" + MESEntity.BIGSSCODE + "'";
sql += "AND MODELCODE = '" + MESEntity.MODELCODE + "'"; sql += "AND OPCODE = '" + MESEntity.OPCODE + "'"; sql += "AND SEGCODE = '" + MESEntity.SEGCODE + "'"; sql += "AND SSCODE = '" + MESEntity.SSCODE + "'"; sql += "AND RESCODE = '" + MESEntity.RESCODE + "'"; sql += "AND SHIFTTYPECODE = '" + MESEntity.SHIFTTYPECODE + "'"; sql += "AND SHIFTCODE = '" + MESEntity.SHIFTCODE + "'"; sql += "AND TPCODE = '" + MESEntity.TPCODE + "'"; sql += "AND FACCODE = '" + MESEntity.FACCODE + "'"; var objs = this._domainDataProvider.ExecuteQuery<ICSMESEntityList>(sql).ToList(); if (objs == null || objs.Count < 1) { MESEntitySerial = 0; this._domainDataProvider.ICSMESEntityList.InsertOnSubmit(objs[0]); } else { return; }
AllGOOD = true; AllGoodPerOP = true; First = true; OPLastResult = ""; OPLastAttribute = ""; OPLastResultForGood = ""; OPLastAttributeForGood = ""; FirstWithLine = true; AllGoodInLine = true; AllGoodInLinePerOP = true; if (onwiplist.Count > 1) { for (int i = 1; i < onwiplist.Count; i++) { if ((onwiplist[i].OPCODE == onwip.OPCODE) && (onwiplist[i].MOCODE == onwip.MOCODE)) { First = false; if (onwiplist[i].ACTIONRESULT != "GOOD") { AllGoodPerOP = false; } if (OPLastResultForGood == "" || OPLastResultForGood == "") { OPLastResultForGood = onwiplist[i].ACTIONRESULT; OPLastAttributeForGood = onwiplist[i].EATTRIBUTE1; } } if (onwiplist[i].ACTIONRESULT != "GOOD") { AllGOOD = false; } if (onwiplist[i].MOCODE == onwip.MOCODE && onwiplist[i].SSCODE == onwip.SSCODE) { if (onwiplist[i].OPCODE == onwip.OPCODE) { FirstWithLine = false; if (onwiplist[i].ACTIONRESULT != "GOOD") { AllGoodInLinePerOP = false; }
} if (onwiplist[i].ACTIONRESULT != "GOOD") { AllGoodInLine = false; } }
} //Last record
if(onwiplist[1].MOCODE==onwip.MOCODE && onwiplist[1].OPCODE== onwip.OPCODE) { OPLastResult =onwiplist[1].ACTIONRESULT; OPLastAttribute = onwiplist[1].EATTRIBUTE1; } } // Get OPControl
OPControl = GetOPControl(onwip.ITEMCODE,onwip.ROUTECODE,onwip.OPCODE);
//Get SO Qty Report Entity
RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(RPTSOQTY.ICSMESEntityList_serial==0) { RPTSOQTY.MOCODE=onwip.MOCODE; RPTSOQTY.SHIFTDAY=Convert.ToInt32(onwip.SHIFTDAY); RPTSOQTY.ITEMCODE =onwip.ITEMCODE; RPTSOQTY.ICSMESEntityList_serial=MESEntitySerial; //v_RPTSOQTY.addnew();
}
// Calculate qty
//RPTSOQTY.moinputcount OK
if( onwip.ACTION=="GOMO" && onwip.RCARDSEQ==1) { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); RPTSOQTY.MOInputCount= RPTSOQTY.MOInputCount + 1; UpdateRPTSOQTY(RPTSOQTY); } //v_RPTSOQTY.mooutputcount OK
if(IsItemRouteLastOP(onwip.ITEMCODE,onwip.ROUTECODE ,onwip.OPCODE) == true) { if(onwip.ACTIONRESULT=="GOOD") { if(onwip.EATTRIBUTE1 == "GOOD") { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(First) { RPTSOQTY.MOOutputCount=RPTSOQTY.MOOutputCount + 1; if(AllGOOD) { RPTSOQTY.MOWhiteCardCount= RPTSOQTY.MOWhiteCardCount + 1; } else if(OPLastResultForGood !="GOOD") { RPTSOQTY.MOOutputCount= RPTSOQTY.MOOutputCount + 1; } else if(OPLastAttributeForGood!="GOOD") { RPTSOQTY.MOOutputCount= RPTSOQTY.MOOutputCount + 1; //解决最后一个工序有多个action时工单白卡数不更新的问题
if(AllGOOD) { RPTSOQTY.MOWhiteCardCount= RPTSOQTY.MOWhiteCardCount + 1; } } } } UpdateRPTSOQTY(RPTSOQTY); } } if(First =false && OPLastResult == "GOOD" && OPLastAttribute == "GOOD") {
LastONWIPData=onwiplist[1]; LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData); LastRPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),LastMESEntitySerial); if(LastRPTSOQTY.ICSMESEntityList_serial!= 0 ) { LastRPTSOQTY.MOOutputCount= LastRPTSOQTY.MOOutputCount - 1;
if(AllGOOD) { LastRPTSOQTY.MOOutputWhiteCardCount= LastRPTSOQTY.MOOutputWhiteCardCount - 1; }
UpdateRPTSOQTY(LastRPTSOQTY); } } // END IF;
//END IF;
//RPTSOQTY.molineoutputcount
if( OPControl.Substring(16, 1) == "1") { if(onwip.ACTIONRESULT == "GOOD") { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(First) { RPTSOQTY.MOLineOutputCount= RPTSOQTY.MOLineOutputCount + 1; if(AllGOOD) { RPTSOQTY.MOOutputWhiteCardCount= RPTSOQTY.MOOutputWhiteCardCount + 1; } else if(OPLastResultForGood!="GOOD") { RPTSOQTY.MOLineOutputCount= RPTSOQTY.MOLineOutputCount + 1; } }
UpdateRPTSOQTY(RPTSOQTY); if(!First && OPLastResult == "GOOD") { //last record.molineoutputcount - 1
LastONWIPData =onwiplist[1]; LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData);
LastRPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial);
if(LastRPTSOQTY.ICSMESEntityList_serial != 0 ) { LastRPTSOQTY.MOLineOutputCount= LastRPTSOQTY.MOLineOutputCount - 1;
if (AllGOOD) { LastRPTSOQTY.MOOutputCount= LastRPTSOQTY.MOOutputCount - 1; } UpdateRPTSOQTY(LastRPTSOQTY); } } } }
//RPTSOQTY.lineinputcount, MidInput OK
if(OPControl.Substring(1,1)=="1" && First==true) { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE ,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial);
RPTSOQTY.LineInputCount = RPTSOQTY.LineInputCount + 1;
UpdateRPTSOQTY(RPTSOQTY); }
//RPTSOQTY.lineoutputcount, MidOutput
if(OPControl.Substring(11,1)=="1") { if(onwip.ACTIONRESULT=="GOOD") { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(First) { RPTSOQTY.LineInputCount= RPTSOQTY.LineInputCount + 1; if(OPLastResultForGood!="GOOD") { RPTSOQTY.LineOutputCount= RPTSOQTY.LineOutputCount + 1; } } UpdateRPTSOQTY(RPTSOQTY);
if(!First && OPLastResult =="GOOD") { //last record.mooutputwhitecardcount - 1
LastONWIPData = onwiplist[1]; LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData);
LastRPTSOQTY = GetRPTSOQTY(LastONWIPData.MOCODE,LastONWIPData.ITEMCODE, Convert.ToInt32(LastONWIPData.SHIFTDAY),LastMESEntitySerial);
if(LastRPTSOQTY.ICSMESEntityList_serial !=0) { LastRPTSOQTY.LineOutputCount= LastRPTSOQTY.LineOutputCount - 1; UpdateRPTSOQTY(LastRPTSOQTY); } } } }
//RPTSOQTY.opcount
if(onwip.ACTIONRESULT=="GOOD") { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(First) { RPTSOQTY.OpCount= RPTSOQTY.OpCount + 1; if( OPLastResultForGood !="GOOD") { RPTSOQTY.OpCount= RPTSOQTY.OpCount + 1; } }
UpdateRPTSOQTY(RPTSOQTY);
if( !First && OPLastResult =="GOOD") { LastONWIPData = onwiplist[1]; LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData); LastRPTSOQTY = GetRPTSOQTY(LastONWIPData.MOCODE,LastONWIPData.ITEMCODE,Convert.ToInt32(LastONWIPData.SHIFTDAY),LastMESEntitySerial); if(LastRPTSOQTY.ICSMESEntityList_serial!=0) { LastRPTSOQTY.OpCount=LastRPTSOQTY.OpCount - 1; UpdateRPTSOQTY(LastRPTSOQTY); } } }
//v_RPTSOQTY.opwhitecardcount
if(AllGOOD) { if(onwip.ACTIONRESULT=="GOOD") { if(First) { RPTSOQTY = GetRPTSOQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); RPTSOQTY.OpWhiteCardCount= RPTSOQTY.OpWhiteCardCount + 1; UpdateRPTSOQTY(RPTSOQTY); } else if(!First && AllGoodPerOP) { LastONWIPData = onwiplist[1]; if(LastONWIPData.OPCODE == onwip.OPCODE) { LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData);
LastRPTSOQTY = GetRPTSOQTY(LastONWIPData.MOCODE,LastONWIPData.ITEMCODE,Convert.ToInt32(LastONWIPData.SHIFTDAY),LastMESEntitySerial);
if(LastRPTSOQTY.ICSMESEntityList_serial!=0) { LastRPTSOQTY.OpWhiteCardCount= LastRPTSOQTY.OpWhiteCardCount - 1; UpdateRPTSOQTY(LastRPTSOQTY); } } } } }
//Step6 : Get Line Qty Report Entity
RPTLINEQTY = GetRPTLINEQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(RPTLINEQTY.ICSMESEntityList_serial== 0) { RPTLINEQTY.MOCODE=onwip.MOCODE; RPTLINEQTY.SHIFTDAY=Convert.ToInt32(onwip.SHIFTDAY); RPTLINEQTY.ITEMCODE= onwip.ITEMCODE; RPTLINEQTY.ICSMESEntityList_serial= MESEntitySerial; //RPTLINEQTY.addnew();
} //Calculate Qty
//RPTLINEQTY.linewhitecardcount, MidOutput
if(OPControl.Substring(11,1)=="1") { if(onwip.ACTIONRESULT=="GOOD") { if(FirstWithLine && AllGoodInLine) { RPTLINEQTY = GetRPTLINEQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY), MESEntitySerial); RPTLINEQTY.LineWhiteCardCount= RPTLINEQTY.LineWhiteCardCount + 1; UpdateRPTLineQTY(RPTLINEQTY); } } if(!FirstWithLine && AllGoodInLinePerOP) { LastONWIPData = onwiplist[1]; if(LastONWIPData.OPCODE==onwip.OPCODE && LastONWIPData.SSCODE==onwip.SSCODE) { LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData);
LastRPTLINEQTY = GetRPTLINEQTY(LastONWIPData.MOCODE,LastONWIPData.ITEMCODE,Convert.ToInt32(LastONWIPData.SHIFTDAY),LastMESEntitySerial); if(LastRPTLINEQTY.ICSMESEntityList_serial!= 0) { LastRPTLINEQTY.LineWhiteCardCount= LastRPTLINEQTY.LineWhiteCardCount - 1; UpdateRPTLineQTY(LastRPTLINEQTY); } } }; } //RPTLINEQTY.reswhitecardcount
if(AllGoodInLine) { if(onwip.ACTIONRESULT=="GOOD") { if(FirstWithLine) { RPTLINEQTY = GetRPTLINEQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); RPTLINEQTY.ResWhiteCardCount= RPTLINEQTY.ResWhiteCardCount + 1;
UpdateRPTLineQTY(RPTLINEQTY); } else if(FirstWithLine && AllGoodInLinePerOP) { LastONWIPData=onwiplist[1]; if(LastONWIPData.OPCODE == onwip.OPCODE && LastONWIPData.SSCODE == onwip.SSCODE) { LastMESEntitySerial = GetLastMESEntitySerial(LastONWIPData); LastRPTLINEQTY = GetRPTLINEQTY(LastONWIPData.MOCODE, LastONWIPData.ITEMCODE, Convert.ToInt32(LastONWIPData.SHIFTDAY), LastMESEntitySerial); if(LastRPTLINEQTY.ICSMESEntityList_serial!=0) { LastRPTLINEQTY.ResWhiteCardCount= LastRPTLINEQTY.ResWhiteCardCount - 1; UpdateRPTLineQTY(LastRPTLINEQTY); } } } } }
//Step7 : Get OP Qty Report Entity
RPTOPQTY = GetRPTOPQTY(onwip.MOCODE,onwip.ITEMCODE,Convert.ToInt32(onwip.SHIFTDAY),MESEntitySerial); if(RPTOPQTY.ICSMESEntityList_serial== 0) { RPTOPQTY.MOCODE= onwip.MOCODE; RPTOPQTY.SHIFTDAY =Convert.ToInt32(onwip.SHIFTDAY); RPTOPQTY.ITEMCODE= onwip.ITEMCODE; RPTOPQTY.ICSMESEntityList_serial= MESEntitySerial; //RPTOPQTY.addnew();
} // Calculate Qty
/*IF INSTR(v_ActionList, '|' || v_ONWIPData.action || '|') > 0 THEN v_RPTOPQTY.inputtimes := v_RPTOPQTY.inputtimes + 1;
IF v_ONWIPData.actionresult = 'GOOD' THEN v_RPTOPQTY.outputtimes := v_RPTOPQTY.outputtimes + 1; END IF;
IF v_ONWIPData.actionresult = 'NG' THEN v_RPTOPQTY.ngtimes := v_RPTOPQTY.ngtimes + 1; END IF; END IF; */
if(onwip.ACTIONRESULT == "GOOD") { if(First) { RPTOPQTY.INPUTTIMES= RPTOPQTY.INPUTTIMES + 1; RPTOPQTY.OUTPUTTIMES= RPTOPQTY.OUTPUTTIMES + 1;
if( OPLastResultForGood!= "GOOD") { RPTOPQTY.INPUTTIMES= RPTOPQTY.INPUTTIMES + 1; RPTOPQTY.OUTPUTTIMES= RPTOPQTY.OUTPUTTIMES+ 1; } }
else if(First) { RPTOPQTY.NGTIMES= RPTOPQTY.NGTIMES + 1; RPTOPQTY.INPUTTIMES= RPTOPQTY.INPUTTIMES + 1; if(OPLastResultForGood =="GOOD") { if(!AllGoodPerOP) { RPTOPQTY.NGTIMES= RPTOPQTY.NGTIMES + 1; } RPTOPQTY.OUTPUTTIMES= RPTOPQTY.OUTPUTTIMES - 1; } }
}
UpdateRPTOPQTY(RPTOPQTY); }
//是否是产品途程的最后一道工序
public bool IsItemRouteLastOP(string itemcode, string routecode, string opcode) { string sql = @"select *
from ICSITEMROUTE2OP where ITEMCODE='" + itemcode + "' and ROUTECODE='" + routecode + "' and OPCODE ='" + opcode + "' and OPSEQ in (select MAX (OPSEQ) from ICSITEMROUTE2OP where ITEMCODE='" + itemcode + "' and ROUTECODE='" + routecode + "' and OPCODE ='" + opcode + "' )";
var objs = this._domainDataProvider.ExecuteQuery<ICSITEMROUTE2OP>(sql).ToList(); if (objs == null || objs.Count < 1) return false; else return true; }
//获取最大MES实体组合表serial
public int GetLastMESEntitySerial(ICSONWIP LastONWIP) { ICSMESEntityList lastMESEntityList = new ICSMESEntityList(); lastMESEntityList.BIGSSCODE = ""; lastMESEntityList.MODELCODE = LastONWIP.MODELCODE; lastMESEntityList.OPCODE = LastONWIP.OPCODE; lastMESEntityList.SEGCODE = LastONWIP.SEGCODE; lastMESEntityList.SSCODE = LastONWIP.SSCODE; lastMESEntityList.RESCODE = LastONWIP.RESCODE; lastMESEntityList.SHIFTTYPECODE = LastONWIP.SHIFTTYPECODE; lastMESEntityList.SHIFTCODE = LastONWIP.SHIFTCODE; lastMESEntityList.TPCODE = LastONWIP.TPCODE; lastMESEntityList.FACCODE = GetFactoryCode(LastONWIP.SEGCODE); lastMESEntityList.WorkPoint = AppConfig.WorkPointCode; lastMESEntityList.EATTRIBUTE1 = "";
string sql = @"select SEARIL
from ICSMESEntityList WHERE BIGSSCODE = '" + lastMESEntityList.BIGSSCODE + "'AND MODELCODE = '" + lastMESEntityList.MODELCODE + "'AND OPCODE = '" + lastMESEntityList.OPCODE + "'";
sql += "AND SEGCODE = '" + lastMESEntityList.SEGCODE + "'"; sql += "AND SSCODE = '" + lastMESEntityList.SSCODE + "'"; sql += "AND RESCODE = '" + lastMESEntityList.RESCODE + "'"; sql += "AND SHIFTTYPECODE = '" + lastMESEntityList.SHIFTTYPECODE + "'"; sql += "AND SHIFTCODE = '" + lastMESEntityList.SHIFTCODE + "'"; sql += "AND TPCODE = '" + lastMESEntityList.TPCODE + "'"; sql += "AND FACCODE = '" + lastMESEntityList.FACCODE + "'";
var objs = this._domainDataProvider.ExecuteQuery<ICSMESEntityList>(sql).ToList(); if (objs == null || objs.Count < 1) return 0; else return objs[0].serial; } //根据车间代码查询工厂代码
public string GetFactoryCode(string segcode) { string sql = @"select a.FACCODE
from ICSFACTORY a left join ICSSEG b on a.ID=b.FACID where b.SEGCODE='" + segcode + "'";
var objs = this._domainDataProvider.ExecuteQuery<ICSFACTORY>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return objs[0].FACCODE; }
//查询工序类型记录
public string GetOPControl(string itemcode, string routecode, string opcode) { string sql = @"select OPCONTROL
from ICSITEMROUTE2OP where ITEMCODE='" + itemcode + "' and ROUTECODE='" + routecode + "' and OPCODE ='" + opcode + "'";
var objs = this._domainDataProvider.ExecuteQuery<ICSITEMROUTE2OP>(sql).ToList(); if (objs == null || objs.Count < 1) { string sql1 = @"select OPCONTROL
from ICSROUTE2OP where ROUTECODE='" + routecode + "' and OPCODE ='" + opcode + "'";
var objs1 = this._domainDataProvider.ExecuteQuery<ICSROUTE2OP>(sql1).ToList(); if (objs1 == null || objs1.Count < 1) { string sql2 = @"select OPCONTROL
from ICSOP where OPCODE ='" + opcode + "'";
var objs2 = this._domainDataProvider.ExecuteQuery<ICSOP>(sql2).ToList(); if (objs2 == null || objs2.Count < 1) { return null; } else return objs2[0].OPCONTROL; } else return objs1[0].OPCONTROL; } else return objs[0].OPCONTROL; }
//根据seq查找过账事件历史记录
public List<ICSONWIP> GetWIPDataList(string serial) { List<ICSONWIP> WIPList = new List<ICSONWIP>(); string sql = @"SELECT DISTINCT RCARD,MOCODE,RCARDSEQ
FROM ICSONWIP WHERE Serial='" + serial + "' AND processed='0'";
var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else { foreach (var obj in objs) { WIPList.Add(obj); } return WIPList; } }
//根据工单查询过账事件历史记录
public List<ICSONWIP> GetWIPDataListByMO(int serial, string mocode) { List<ICSONWIP> WIPList = new List<ICSONWIP>(); string sql=@"SELECT DISTINCT RCARD,MOCODE,RCARDSEQ
FROM ICSONWIP WHERE Serial='"+serial+"' AND MOCODE='"+mocode+"'";
var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else { foreach (var obj in objs) { WIPList.Add(obj); } return WIPList; } }
//根据生产订单号、存货编码、实体表serial、工作天查询统计个数
public ICSRPTSOQTY GetRPTSOQTY(string mocode, string itemcode, int shiftday, int serial) { string sql = @"select *
from ICSRPTSOQTY where ITEMCODE='" + itemcode + "' and MOCODE='" + mocode + "' and SHIFTDAY ='" + shiftday + "' and SHIFTDAY ='" + shiftday + "' and ICSMESEntityList_serial='" + serial + "'";
var objs = this._domainDataProvider.ExecuteQuery<ICSRPTSOQTY>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return objs[0]; }
//更新ICSRPTSOQTY
public void UpdateRPTSOQTY(ICSRPTSOQTY soqty) { var line = this._domainDataProvider.ICSRPTSOQTY.SingleOrDefault(a => a.MOCODE == soqty.MOCODE && a.SHIFTDAY == soqty.SHIFTDAY && a.ITEMCODE == soqty.ITEMCODE && a.ICSMESEntityList_serial == soqty.ICSMESEntityList_serial); if (line != null) { this._domainDataProvider.ICSRPTSOQTY.DeleteOnSubmit(line); } this._domainDataProvider.ICSRPTSOQTY.InsertOnSubmit(soqty); }
//更新ICSRPTLINEQTY
public void UpdateRPTLineQTY(ICSRPTLINEQTY lineqty) { var line = this._domainDataProvider.ICSRPTLINEQTY.SingleOrDefault(a => a.MOCODE == lineqty.MOCODE && a.SHIFTDAY == lineqty.SHIFTDAY && a.ITEMCODE == lineqty.ITEMCODE && a.ICSMESEntityList_serial == lineqty.ICSMESEntityList_serial); if (line != null) { this._domainDataProvider.ICSRPTLINEQTY.DeleteOnSubmit(line); } this._domainDataProvider.ICSRPTLINEQTY.InsertOnSubmit(lineqty); }
//更新ICSRPTOPQTY
public void UpdateRPTOPQTY(ICSRPTOPQTY toqty) { var line = this._domainDataProvider.ICSRPTOPQTY.SingleOrDefault(a => a.MOCODE == toqty.MOCODE && a.SHIFTDAY == toqty.SHIFTDAY && a.ITEMCODE == toqty.ITEMCODE && a.ICSMESEntityList_serial == toqty.ICSMESEntityList_serial); if (line != null) { this._domainDataProvider.ICSRPTOPQTY.DeleteOnSubmit(line); } this._domainDataProvider.ICSRPTOPQTY.InsertOnSubmit(toqty); }
//根据工单查询报表数据
public void CollectReportDataByMO(string mocode) { int ProcessCounter = 0; if (mocode == "") { return; } var line = this._domainDataProvider.ICSRPTSOQTY.Where(a => a.MOCODE == mocode); this._domainDataProvider.ICSRPTSOQTY.DeleteAllOnSubmit(line);
var line2 = this._domainDataProvider.ICSRPTLINEQTY.Where(a => a.MOCODE == mocode); this._domainDataProvider.ICSRPTLINEQTY.DeleteAllOnSubmit(line2);
var line3 = this._domainDataProvider.ICSRPTOPQTY.Where(a => a.MOCODE == mocode); this._domainDataProvider.ICSRPTOPQTY.DeleteAllOnSubmit(line3);
string sql = @"select Serial from ICSONWIP where MOCODE='" + mocode + "' order by Serial asc"; var objs = this._domainDataProvider.ExecuteQuery<ICSONWIP>(sql).ToList(); for (int i = 0; i < objs.Count; i++) { List<ICSONWIP> onwiplist = GetWIPDataListByMO(objs[0].Serial, mocode); if (onwiplist.Count > 0) { MainProcess(onwiplist); ProcessCounter = ProcessCounter + 1; } }
} //工单,产线和工序统计白卡数(MO,Line,OP)
public ICSRPTLINEQTY GetRPTLINEQTY(string mocode,string itemcode,int shiftday,int serial) { ICSRPTLINEQTY LINEQTY= new ICSRPTLINEQTY(); string sql=@" SELECT MOCODE,SHIFTDAY,ITEMCODE,
ICSMESENTITYLIST_SERIAL,LineWhiteCardCount,ResWhiteCardCount,EAttribute FROM ICSRPTLINEQTY WHERE MOCODE ='"+mocode+"' and SHIFTDAY='"+shiftday+"' and ITEMCODE='"+itemcode+"' and TBLMESENTITYLIST_SERIAL='"+serial+"'";
var objs = this._domainDataProvider.ExecuteQuery<ICSRPTLINEQTY>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return objs[0]; }
//根据工单号、产品料号、工作天、序列号查询次数报表(MO,OP)
public ICSRPTOPQTY GetRPTOPQTY(string mocode,string itemcode,int shiftday,int serial) { ICSRPTOPQTY OPQTY = new ICSRPTOPQTY(); string sql=@" SELECT *
FROM ICSRPTOPQTY WHERE MOCODE ='"+mocode+"' and SHIFTDAY='"+shiftday+"' and ITEMCODE='"+itemcode+"' and TBLMESENTITYLIST_SERIAL='"+serial+"'";
var objs = this._domainDataProvider.ExecuteQuery<ICSRPTOPQTY>(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return objs[0]; } }
}
|