[성현모] CPXV2 Init

This commit is contained in:
SHM
2024-06-26 10:30:00 +09:00
parent cdf12248c5
commit 5958993b6a
588 changed files with 698420 additions and 0 deletions

View File

@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SystemX.Net.XAdaptor.PC;
using SystemX.Net.Platform.Common.ExtensionMethods;
using static SystemX.Net.XAdaptor.PC.O2Sensor.NgCode.DBSchemaMap;
using static SystemX.Net.Platform.Common.Util.LogMessage;
namespace SystemX.Net.XAdaptor.PC.O2Sensor.NgCode
{
public class NGHistDBFinder
{
string SET_NG_HIST_TABLE_NAME = "HIST_TestNgResult";
//Name - ProcNo - TestID
Dictionary<eHistProcTableList, Tuple<int, string>> dicHistInfo;
XAdaptorPC refPCAdaptor;
public NGHistDBFinder(XAdaptorPC refAdaptor)
{
refPCAdaptor = refAdaptor;
dicHistInfo = new Dictionary<eHistProcTableList, Tuple<int, string>>();
dicHistInfo.Add(eHistProcTableList.HIST_ProdLoad, new Tuple<int, string>(180, "PL"));
dicHistInfo.Add(eHistProcTableList.HIST_CapDeassy, new Tuple<int, string>(180, "CDA"));
dicHistInfo.Add(eHistProcTableList.HIST_PreHeating, new Tuple<int, string>(190, "PH"));
dicHistInfo.Add(eHistProcTableList.HIST_PreMeas, new Tuple<int, string>(190, "PM"));
dicHistInfo.Add(eHistProcTableList.HIST_Leak, new Tuple<int, string>(200, "LK"));
dicHistInfo.Add(eHistProcTableList.HIST_LaserTrim, new Tuple<int, string>(210, "LT"));
dicHistInfo.Add(eHistProcTableList.HIST_LaserTrimVision, new Tuple<int, string>(220, "LTV"));
dicHistInfo.Add(eHistProcTableList.HIST_IsoRes, new Tuple<int, string>(220, "IR"));
dicHistInfo.Add(eHistProcTableList.HIST_CapAssy, new Tuple<int, string>(230, "CA"));
dicHistInfo.Add(eHistProcTableList.HIST_Function, new Tuple<int, string>(240, "FT"));
dicHistInfo.Add(eHistProcTableList.HIST_OutSealPress, new Tuple<int, string>(250, "OSP"));
dicHistInfo.Add(eHistProcTableList.HIST_PinVision, new Tuple<int, string>(260, "PV"));
dicHistInfo.Add(eHistProcTableList.HIST_PinLVDT, new Tuple<int, string>(260, "LVDT"));
}
public Dictionary<eHistProcTableList, DataRow> FindHistory(string strMESID, string strPalletID, bool bFristFailScan = false)
{
Dictionary<eHistProcTableList, DataRow> dicResult = new Dictionary<eHistProcTableList, DataRow>();
string strQuery = $"SELECT * FROM {SET_NG_HIST_TABLE_NAME.ToString()} WHERE No IN (SELECT No FROM {SET_NG_HIST_TABLE_NAME.ToString()} WHERE " +
$"{eHistTableCommonCols.ProdID} = '{strMESID}' AND {eHistTableCommonCols.PalletID} = '{strPalletID}') " +
$"ORDER BY {eHistTableCommonCols.ProcNo.ToString()};";
DataSet dsResult = null;
try
{
dsResult = refPCAdaptor.WaitSystemQuery(strQuery);
DataRow dr = null;
foreach (eHistProcTableList tableName in Enum.GetValues(typeof(eHistProcTableList)))
{
int iProcNo = dicHistInfo[tableName].Item1;
string strTestID = dicHistInfo[tableName].Item2;
bool bNgRowFind = false;
dr = null;
foreach (var item in dsResult.Tables[0].Rows)
{
dr = item as DataRow;
int iIndex = dsResult.Tables[0].Rows.IndexOf(dr);
string strGetProcNo = dsResult.Tables[0].Rows[iIndex][eHistTableCommonCols.ProcNo.ToString()].ToString().Trim();
string strGetTestID = dsResult.Tables[0].Rows[iIndex][eHistTableCommonCols.TestID.ToString()].ToString().Trim();
if (strGetProcNo == iProcNo.ToString() &&
strGetTestID == strTestID)
{
bNgRowFind = true;
break;
}
}
if (bNgRowFind)
{
dicResult.Add(tableName, dr);
//이력 존재시 NG
if (bFristFailScan)
break;
}
else
{
dicResult.Add(tableName, null);
//이력 미 존재시 PASS
}
}
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
@"NgCode<Exception> - NGHistDBFinder - FindHistory()\r\n" +
ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
}
finally { }
return dicResult;
}
public Tuple<eHistProcTableList, DataRow, bool> FindNGHistory(string strMESID, string strPalletID)
{
Tuple<eHistProcTableList, DataRow, bool> pairResult = null;
Dictionary<eHistProcTableList, DataRow> dicResult = FindHistory(strMESID, strPalletID, true);
try
{
foreach (eHistProcTableList procTbl in Enum.GetValues(typeof(eHistProcTableList)))
{
DataRow dtRow = dicResult[procTbl];
if (dtRow == null)
{
if (pairResult == null)
pairResult = new Tuple<eHistProcTableList, DataRow, bool>(procTbl, null, true);
}
else
{
pairResult = new Tuple<eHistProcTableList, DataRow, bool>(procTbl, dtRow, false);
break;
}
}
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
@"NgCode<Exception> - NGHistDBFinder - FindNGHistory()\r\n" +
ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
}
finally { }
return pairResult;
}
public List<string> GetOnloadedPalletIDs(string strMESID)
{
string strQuery = $"SELECT PalletID FROM {eHistAllTableList.HIST_ProdLoad.ToString()} WHERE {eHistTableCommonCols.ProdID} = '{strMESID}' ORDER BY {eHistTableCommonCols.UpdateDT.ToString()} DESC";
DataSet dtSet = refPCAdaptor.WaitSystemQuery(strQuery);
List<string> vstrPalletID = (from dtResult in dtSet.Tables[0].AsEnumerable()
let strResult = dtResult[eHistTableCommonCols.PalletID.ToString()].ToString().Trim()
select strResult).ToList();
return vstrPalletID;
}
public List<string> GetNGCodeHistory(string strMESID)
{
List<string> vstrNGCodes = null;
try
{
string strQuery = $"SELECT TOP 100 NGCode FROM {eHistAllTableList.HIST_ProdUnload.ToString()} WHERE {eHistTableCommonCols.ProdID} = '{strMESID}' ORDER BY {eHistTableCommonCols.UpdateDT.ToString()} DESC";
DataSet dtSet = refPCAdaptor.WaitSystemQuery(strQuery);
vstrNGCodes = (from dtResult in dtSet.Tables[0].AsEnumerable()
let strResult = dtResult[eHist_ProdUnload.NGCode.ToString()].ToString().Trim()
select strResult).ToList();
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
@"NgCode<Exception> - NGHistDBFinder - GetNGCodeHistory()\r\n" +
ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
}
finally { }
return vstrNGCodes;
}
string SearchRecentResultQuery(string strTable, string strMESID)
{
string strQuery = $"SELECT * FROM {strTable}";
return strQuery;
}
public string GetCurrentPalletID(string strMESID)
{
string strColPalletID = "PalletID";
string strProdLoadState = "STAT_ProdLoad";
string strQuery = $"SELECT {strColPalletID} FROM {strProdLoadState} WHERE {eStat_ProdLoad.ProdID} = '{strMESID}'";
DataSet dsResult = refPCAdaptor.WaitSystemQuery(QueryProcessList);
List<string> vstrPalletID = (from dtResult in dsResult.Tables[0].AsEnumerable()
where dtResult[strColPalletID].ToString().Trim() == strMESID
let strResult = dtResult[strColPalletID].ToString().Trim()
select strResult).ToList();
if(vstrPalletID.Count <= 0)
return string.Empty;
return vstrPalletID[0];
}
public DataTable GetProcessList()
{
DataSet dsResult = refPCAdaptor.WaitSystemQuery(QueryProcessList);
return dsResult.Tables[0];
}
string QueryProcessList = $"SELECT * FROM {DBSchemaMap.ProcessListTableName}";
}
}