[성현모] TRA HEX 값 표기 수정
This commit is contained in:
@ -0,0 +1,281 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SystemX.Product.ALIS.Interface;
|
||||
using SystemX.Product.CP.TRA;
|
||||
using SystemX.Product.TRA.UIControl;
|
||||
|
||||
using static SystemX.Product.TRA.DataManager.DMOverview;
|
||||
using static SystemX.Product.CP.TRA.Commons;
|
||||
using DataBaseConnection.Control;
|
||||
|
||||
namespace SystemX.Product.TRA.DataManager
|
||||
{
|
||||
public class DMTestNgHistory
|
||||
{
|
||||
public enum eColList
|
||||
{
|
||||
No,
|
||||
TestDateTime,
|
||||
StationName,
|
||||
Host,
|
||||
Section,
|
||||
ProductID,
|
||||
ProductNo,
|
||||
TestType,
|
||||
TestCode,
|
||||
ParentNo,
|
||||
FileVersion,
|
||||
FileCode,
|
||||
StepVersion,
|
||||
Duration,
|
||||
TestResult,
|
||||
//OK,
|
||||
//NOK,
|
||||
TestListFileNo,
|
||||
TestListVariantNo,
|
||||
TestlistFileName,
|
||||
TestlistReqID
|
||||
}
|
||||
|
||||
private SqlConnection DBConn { get; set; }
|
||||
private SqlConnection ShortTermDBConn { get; set; }
|
||||
private SqlConnection LongTermDBConn { get; set; }
|
||||
|
||||
private SqlCommand SQLCmd { get; set; }
|
||||
|
||||
private IDataBaseController DBControllers { get; set; }
|
||||
|
||||
public eSelectDataView NgHistorySelectView { get; set; }
|
||||
|
||||
public DMTestNgHistory(eSelectDataView SelectView, IDataBaseController getDBController, DateTime dtStart)
|
||||
{
|
||||
DBControllers = getDBController;
|
||||
DBConn = getDBController.GetMainConn();
|
||||
|
||||
if (SelectView == eSelectDataView.DataDocumentViewC1)
|
||||
{
|
||||
NgHistorySelectView = eSelectDataView.DataDocumentViewC1;
|
||||
ShortTermDBConn = getDBController.GetShortTermConn1();
|
||||
|
||||
LongTermDBConn = getDBController.GetLongTermConn1().Where(x=>x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||
}
|
||||
else if (SelectView == eSelectDataView.DataDocumentViewC2)
|
||||
{
|
||||
NgHistorySelectView = eSelectDataView.DataDocumentViewC2;
|
||||
ShortTermDBConn = getDBController.GetShortTermConn2();
|
||||
|
||||
LongTermDBConn = getDBController.GetLongTermConn2().Where(x => x.Key.Contains(dtStart.Year.ToString())).First().Value;
|
||||
}
|
||||
}
|
||||
|
||||
public DataTable SearchTestNgHistory(SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||
{
|
||||
DataTable dtResult = GetRawResult(data, option, nReqIdPos);
|
||||
|
||||
return dtResult;
|
||||
}
|
||||
|
||||
public int[] CheckTestListFileNo(string strProductNo, string strTestCode, string strTestType, string strFileVer, string strFileCode)
|
||||
{
|
||||
DataTable dtResult = new DataTable();
|
||||
StringBuilder strQuery = new StringBuilder();
|
||||
//string strQuery = string.Empty;
|
||||
|
||||
strQuery.Append($"SELECT A.ProdNo_C, B.ProdNo_P, B.UpdateDT, D.TestCode, D.Gate1, D.Gate2, E.FileName, A.RegUserComment, B.Description, C.GroupName, C.ModelName, A.VariantNo AS 'TestListNo', A.Config, E.TestType, E.Version, E.ProdCode, B.UseTLPosition, B.TestListFileNo, E.UpdateDT AS 'TestListFileUpdateDT', A.VariantNo FROM [PROD_Release] AS A WITH(NOLOCK) " +
|
||||
$"INNER JOIN(SELECT * FROM [PROD_Variant] WITH(NOLOCK)) AS B ON A.VariantNo = B.No " +
|
||||
$"INNER JOIN(SELECT * FROM [PROD_Group] WITH(NOLOCK)) AS C ON B.GroupNo = C.No " +
|
||||
$"INNER JOIN(SELECT * FROM [STAT_TestCode] WITH(NOLOCK)) AS D ON A.TestCodeNo = D.No " +
|
||||
$"INNER JOIN(SELECT * FROM [STOR_TestListFile] WITH(NOLOCK)) AS E ON B.TestListFileNo = E.No " +
|
||||
$"WHERE A.ProdNo_C = '{strProductNo}' AND D.TestCode = '{strTestCode}' AND E.TestType = '{strTestType}' AND E.Version = '{strFileVer}' AND E.ProdCode = '{strFileCode}';");
|
||||
|
||||
SQLCmd = new SqlCommand(strQuery.ToString(), DBConn);
|
||||
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||
|
||||
DbDataReader dtCompReader = SQLCmd.ExecuteReader();
|
||||
DataTable dtCompResult = new DataTable();
|
||||
|
||||
dtCompResult.Load(dtCompReader);
|
||||
|
||||
if (Commons.isHasRow(dtCompResult) == false)
|
||||
return new int[] { int.MinValue, int.MinValue };
|
||||
|
||||
string strCompVariNo = dtCompResult.Rows[0]["VariantNo"].ToString();
|
||||
string strCompFileNo = dtCompResult.Rows[0]["TestListFileNo"].ToString();
|
||||
|
||||
dtCompReader.Close();
|
||||
|
||||
return new int[] { int.Parse(strCompFileNo), int.Parse(strCompVariNo) };
|
||||
}
|
||||
|
||||
public DataTable GetUseTestListInformation(int nTestListNo, int nUseStepVersion)
|
||||
{
|
||||
DataTable dtResult = new DataTable();
|
||||
StringBuilder strQuery = new StringBuilder();
|
||||
//string strQuery = string.Empty;
|
||||
|
||||
strQuery.Append($"SELECT * FROM ( " +
|
||||
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {nTestListNo.ToString()} " +
|
||||
$"AND StepVersion <= {nUseStepVersion.ToString()}) X WHERE RN = 1 ORDER BY X.StepID ASC;");
|
||||
|
||||
/*
|
||||
strQuery.Append($"SELECT * FROM ( " +
|
||||
$"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
$"AS RN FROM VRFY_TestListFileRelease WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = {nTestListNo.ToString()} " +
|
||||
$"AND StepVersion <= {nUseStepVersion.ToString()}) X ORDER BY X.StepID ASC;");
|
||||
*/
|
||||
|
||||
SQLCmd = new SqlCommand(strQuery.ToString(), DBConn);
|
||||
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||
|
||||
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||
|
||||
dtResult.Load(dtReader);
|
||||
|
||||
dtReader.Close();
|
||||
|
||||
//PK 지정
|
||||
DataColumn[] keys1 = new DataColumn[1];
|
||||
keys1[0] = new DataColumn();
|
||||
keys1[0] = dtResult.Columns["StepID"];
|
||||
|
||||
dtResult.PrimaryKey = keys1;
|
||||
|
||||
return dtResult;
|
||||
}
|
||||
|
||||
DataTable GetRawResult(SelectedDataCollection data, TestHistorySearchOption option, int nReqIdPos = int.MaxValue)
|
||||
{
|
||||
if (NgHistorySelectView == eSelectDataView.DataDocumentViewC1)
|
||||
{
|
||||
ShortTermDBConn = DBControllers.GetShortTermConn1();
|
||||
|
||||
LongTermDBConn = DBControllers.GetLongTermConn1().Where(x => x.Key.Contains(data.SearchRangeStart.Year.ToString())).First().Value;
|
||||
}
|
||||
else if (NgHistorySelectView == eSelectDataView.DataDocumentViewC2)
|
||||
{
|
||||
ShortTermDBConn = DBControllers.GetShortTermConn2();
|
||||
|
||||
LongTermDBConn = DBControllers.GetLongTermConn2().Where(x => x.Key.Contains(data.SearchRangeStart.Year.ToString())).First().Value;
|
||||
}
|
||||
|
||||
DataTable dtResult = new DataTable();
|
||||
//string strQuery = string.Empty;
|
||||
StringBuilder strQuery = new StringBuilder();
|
||||
|
||||
DateTime dtCheckTime = DateTime.Now;
|
||||
|
||||
//데이터 검색 시작 시간 확인
|
||||
if (option.Time_WholeRange)
|
||||
dtCheckTime = data.SearchRangeStart;
|
||||
else if (option.Time_SelectedTest)
|
||||
dtCheckTime = data.StartTime;
|
||||
else if (option.Time_Day)
|
||||
dtCheckTime = data.StartTime;
|
||||
|
||||
DateTime dtNow = DateTime.Now;
|
||||
|
||||
if (data == null)
|
||||
return dtResult;
|
||||
|
||||
strQuery.Append($"SELECT ");
|
||||
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.No,");
|
||||
strQuery.Append($"CONVERT(char(20), {DMCommon.SummaryLogTable}.TestDT, 20) as {eColList.TestDateTime.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.StationName as {eColList.StationName.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.HostID as {eColList.Host.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.Section as {eColList.Section.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.ProductID as {eColList.ProductID.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.TestType as {eColList.TestType.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdNo_C as {eColList.ProductNo.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.Testcode as {eColList.TestCode.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdNo_P as {eColList.ParentNo.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.ProdCode as {eColList.FileCode.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.Version as {eColList.FileVersion.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.StepVersion as {eColList.StepVersion.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.Duration as {eColList.Duration.ToString()},");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.Result as {eColList.TestResult.ToString()},");
|
||||
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListFileNo],");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListVariantNo],");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListFileName],");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.[TestListCntID] as {eColList.TestlistReqID.ToString()}");
|
||||
|
||||
strQuery.Append(" ");
|
||||
strQuery.Append($"FROM {DMCommon.SummaryLogTable} ");
|
||||
strQuery.Append($"WITH(NOLOCK) ");
|
||||
|
||||
if (option.Time_WholeRange)
|
||||
strQuery.Append($"WHERE TestDT >= '{data.SearchRangeStart.ToString("yyyy-MM-dd 00:00:00")}' AND TestDT <= '{data.SearchRangeEnd.ToString("yyyy-MM-dd 23:59:59")}' ");
|
||||
else if(option.Time_SelectedTest)
|
||||
strQuery.Append($"WHERE TestDT >= '{data.StartTime.ToString("yyyy-MM-dd HH:mm:ss")}' AND TestDT <= '{data.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}' ");
|
||||
else if(option.Time_Day)
|
||||
strQuery.Append($"WHERE TestDT >= '{data.StartTime.ToShortDateString()} 00:00:00' AND TestDT <= '{data.EndTime.ToShortDateString()} 23:59:59' ");
|
||||
|
||||
if (option.Station && !string.IsNullOrWhiteSpace(data.StationName))
|
||||
strQuery.Append($" AND (StationName = '{data.StationName}' OR StationName = '-') ");
|
||||
if (option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||
strQuery.Append($" AND (HostID = '{data.HostID}' OR HostID = '-') ");
|
||||
if (option.Section && !string.IsNullOrWhiteSpace(data.SectionID))
|
||||
strQuery.Append($" AND (Section = '{data.SectionID}' OR Section = '-') ");
|
||||
if (option.TestType)
|
||||
strQuery.Append($" AND (TestType = '{data.TestType}' OR TestType = '-') ");
|
||||
if (option.ProductNo)
|
||||
{
|
||||
strQuery.Append($" AND (ProdNo_C = '{data.ProductNo}' ");
|
||||
|
||||
if(option.Host && !string.IsNullOrWhiteSpace(data.HostID))
|
||||
{
|
||||
foreach(string strCmd in Enum.GetNames(typeof(eCommand)))
|
||||
strQuery.Append($"OR ProdNo_C = '{strCmd}'");
|
||||
}
|
||||
strQuery.Append($" )");
|
||||
}
|
||||
if (option.TestCode)
|
||||
strQuery.Append($" AND (Testcode = '{data.TestCode}' OR Testcode = '-') ");
|
||||
if (option.ParentNo)
|
||||
strQuery.Append($" AND (ProdNo_P = '{data.ParentNo}' OR ProdNo_P = '-') ");
|
||||
if (option.ProductionCode)
|
||||
strQuery.Append($" AND (ProdCode = '{data.ProductionCode}' OR ProdCode = '-') ");
|
||||
if (option.FileVersion)
|
||||
strQuery.Append($" AND (Version = '{data.FileVersion}' OR Version = '-') ");
|
||||
if (option.StepVersion)
|
||||
strQuery.Append($" AND (StepVersion = '{data.StepVersion}' OR StepVersion = '-1') ");
|
||||
if (option.Time_SelectedTest)
|
||||
{
|
||||
if (nReqIdPos == int.MaxValue)
|
||||
strQuery.Append($" AND (TestListCntID = '{data.TestRequestID[0]}' OR TestListCntID = '-') ");
|
||||
else
|
||||
strQuery.Append($" AND (TestListCntID = '{data.TestRequestID[nReqIdPos]}' OR TestListCntID = '-') ");
|
||||
}
|
||||
|
||||
// strQuery.Append($" AND (Result = 'NG' OR Result = 'SYSTEM_ERROR' OR Result = 'STOP') ";
|
||||
strQuery.Append($" AND (Result != 'OK') ");
|
||||
|
||||
strQuery.Append(" ");
|
||||
strQuery.Append($"ORDER BY ");
|
||||
strQuery.Append($"{DMCommon.SummaryLogTable}.TestDT");
|
||||
strQuery.Append(";");
|
||||
|
||||
var query = strQuery.ToString();
|
||||
|
||||
if (DatabaseConnControl.ScanLongTermLog) SQLCmd = new SqlCommand(strQuery.ToString(), LongTermDBConn);
|
||||
else SQLCmd = new SqlCommand(strQuery.ToString(), ShortTermDBConn);
|
||||
SQLCmd.CommandTimeout = DMCommon.nDefaultScanTime;
|
||||
|
||||
DbDataReader dtReader = SQLCmd.ExecuteReader();
|
||||
|
||||
dtResult.Load(dtReader);
|
||||
|
||||
dtReader.Close();
|
||||
|
||||
return dtResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user