From 4114d380bd594385fa6f10bb36a9eef4d19e8db1 Mon Sep 17 00:00:00 2001
From: kojingeun <diteam.co.kr>
Date: 월, 05 6월 2023 23:33:58 +0900
Subject: [PATCH] Ongoing50 #4517 CF AOI Review 결과 파일 찾기 실패 개선 1. Find Bin File 찾는 Library 변경  - CRT _findfirsti64 / _findnexti64 -> C++17 Filesystem directory_iterator  - 파일 탐색 시간 20k Files(80GB) 1sec 소요

---
 DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp |   74 ++++++++++++++++++++++++++++++++++--
 1 files changed, 69 insertions(+), 5 deletions(-)

diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
index e2290d6..1fdb749 100644
--- a/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
+++ b/DitGlassRawMessenger/DitGlassRawMessenger/DitGlassRawMessengerDlg.cpp
@@ -131,7 +131,6 @@
 	m_vecStrGridDefectHeader.push_back("MergeState");
 
 }
-
 void CDitGlassRawMessengerDlg::DoDataExchange(CDataExchange* pDX)
 {
 	CDialog::DoDataExchange(pDX);
@@ -166,6 +165,9 @@
 	ON_BN_CLICKED(IDC_BTN_STACKAPPLY, &CDitGlassRawMessengerDlg::OnBnClickedBtnStackapply)
 	ON_BN_CLICKED(IDC_TEST_CMD, &CDitGlassRawMessengerDlg::OnBnClickedTestCmd)
 	ON_BN_CLICKED(IDC_BTN_FTP_MANUALUPLOAD, &CDitGlassRawMessengerDlg::OnBnClickedBtnFtpManualupload)
+	/* <LJC 20211122 : #3820 ADD Start> */
+	ON_WM_COPYDATA()
+	/* <LJC 20211122 : #3820 ADD End> */
 END_MESSAGE_MAP()
 
 void GetCompileTime(tm& timestruct)
@@ -196,6 +198,12 @@
 
 BOOL CDitGlassRawMessengerDlg::OnInitDialog()
 {
+
+	/* <LJC 20220407 : #4053 MOD Start> */
+	CString strTemp;
+	strTemp.Format(_T("Version : %s %s"), _T(__DATE__), _T(__TIME__));
+	AKLOG("DITRawMessenger 프로그램 실행( : %s )", strTemp);
+	/* <LJC 20220407 : #4053 MOD End> */
 	CDialog::OnInitDialog();
 
 	DragAcceptFiles(TRUE);
@@ -251,11 +259,13 @@
 		akFileDB.getItem("DataMaxNumCell", &m_ConfigOption.m_nMaxDataNumCell, 200);
 		akFileDB.getItem("DataMaxNumDefect", &m_ConfigOption.m_nMaxDataNumDefect, 50000);
 		akFileDB.getItem("SelectRawType", &m_ConfigOption.m_nSelectRawType, 0);
-		akFileDB.getItem("LogFilePath", m_ConfigOption.m_strLogFilePath, "c:\\AOIServer\\LogRawMessenger\\LogRawMessenger");
+		akFileDB.getItem("LogFilePath", m_ConfigOption.m_strLogFilePath, "D:\\AOIServer\\LogRawMessenger\\LogRawMessenger");
 		akFileDB.getItem("Stack_Use", &m_ConfigOption.m_bUseStack, 0);
 		akFileDB.getItem("Stack_LocalPath", m_ConfigOption.m_strStackLocalPath, "D:\\DIT_ResultData\\Stack");
+		/*< KJG 20211024 - #3487 ADD Start >*/
 		akFileDB.getItem("RawMerge_Use", &m_ConfigOption.m_bUseRawMerge, 0);
 		akFileDB.getItem("RawMerge_LocalPath", m_ConfigOption.m_strRawMergeLocalPath, "D:\\DIT_ResultData\\RawMerge");
+		/*< KJG 20211024 - #3487 ADD End >*/
 		akFileDB.getItem("Stack_EquipID",m_ConfigOption.m_strStackEquipID, "AAAAA");
 		akFileDB.getItem("Stack_Param1",m_ConfigOption.m_strStackParam1, "");
 		akFileDB.getItem("Stack_Param2",m_ConfigOption.m_strStackParam2, "");
@@ -280,7 +290,7 @@
 
 		CreateDirectory(strPath, NULL);
 		//CakLoggerExt::getInstance()->setWriteFileMode(m_ConfigOption.m_strLogFilePath);
-		CakLoggerExt::getInstance()->setWriteFileMode2("C:\\DIT_LogData\\", "logGlassRawMessenger");
+		CakLoggerExt::getInstance()->setWriteFileMode2("D:\\DIT_LogData\\", "logGlassRawMessenger");
 		CakLoggerExt::getInstance()->m_hParent = GetSafeHwnd();
 
 		m_ctrlLoggerList;
@@ -438,7 +448,7 @@
 		{
 			HMENU hMenu = CreatePopupMenu();
 			AppendMenu(hMenu, MF_STRING, 0, "연구소2파트작품");
-			AppendMenu(hMenu, MF_STRING, WM_DESTROY, "Exit");
+			AppendMenu(hMenu, MF_STRING, WM_DESTROY, "Exit"); 
 			TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, 0, GetSafeHwnd(), NULL);
 		}
 		
@@ -597,6 +607,9 @@
 		Sleep(10);
 	}
 	pThis->m_nThreadMainFlag = 0;
+	/* <KMH 20220407 : #4053 ADD Start> */
+	AKLOG("Main Thread End");
+	/* <KMH 20220407 : #4053 ADD End> */
 }
 
 void CDitGlassRawMessengerDlg::MainProcess()
@@ -766,7 +779,6 @@
 	WriteConfigFile();
 
 }
-
 
 BOOL CDitGlassRawMessengerDlg::DestroyWindow()
 {
@@ -1349,8 +1361,10 @@
 
 	akFileDB.setItem("Stack_Use", m_ConfigOption.m_bUseStack);
 	akFileDB.setItem("Stack_LocalPath", m_ConfigOption.m_strStackLocalPath);
+	/*< KJG 20211024 - #3487 ADD Start >*/
 	akFileDB.setItem("RawMerge_Use", m_ConfigOption.m_bUseRawMerge);
 	akFileDB.setItem("RawMerge_LocalPath", m_ConfigOption.m_strRawMergeLocalPath);
+	/*< KJG 20211024 - #3487 ADD End >*/
 	akFileDB.setItem("Stack_EquipID", m_ConfigOption.m_strStackEquipID);
 	akFileDB.setItem("Stack_Param1",m_ConfigOption.m_strStackParam1);
 	akFileDB.setItem("Stack_Param2",m_ConfigOption.m_strStackParam2);
@@ -1530,8 +1544,10 @@
 {
 	m_ConfigOption.m_bUseStack = ((CButton*)GetDlgItem(IDC_CHECK_STACKFILEREAD))->GetCheck();
 	GetDlgItemText(IDC_EDIT_STACK_LOCALSAVEPATH,m_ConfigOption.m_strStackLocalPath, 256);
+	/*< KJG 20211024 - #3487 ADD Start >*/
 	m_ConfigOption.m_bUseRawMerge = ((CButton*)GetDlgItem(IDC_CHECK_RAWMERGEFILEREAD))->GetCheck();
 	GetDlgItemText(IDC_EDIT_RAWMERGE_LOCALSAVEPATH, m_ConfigOption.m_strRawMergeLocalPath, 256);
+	/*< KJG 20211024 - #3487 ADD End >*/
 	GetDlgItemText(IDC_EDIT_STACK_EQUIPID,m_ConfigOption.m_strStackEquipID, 32);
 	GetDlgItemText(IDC_EDIT_STACK_PARAM1,m_ConfigOption.m_strStackParam1, 32);
 	GetDlgItemText(IDC_EDIT_STACK_PARAM2,m_ConfigOption.m_strStackParam2, 32);
@@ -1613,3 +1629,51 @@
 
 	
 }
+
+/* <LJC 20211122 : #3820 ADD Start> */
+BOOL CDitGlassRawMessengerDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
+{
+	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
+	CDitGlassRawServer* pServer = (CDitGlassRawServer*)&m_Server;
+	CgrmGlassRawData* pRawDataBuffer = &m_GlassRawDataBuffer;
+	pRawDataBuffer->ImportGlassRaw(pServer->GetGlassRawInfo(), (char*)pServer->GetGlassData(), true);
+	CFTPCopyDataParam* FTPCopyDataParam = ((CFTPCopyDataParam*)pCopyDataStruct->lpData);
+	switch (pCopyDataStruct->dwData)
+	{
+	case COPYDATA_RAW_DOWNLOAD_ACK:
+		{
+		if (FTPCopyDataParam->m_nProcessType == CFTPCopyDataParam::FTPProcessType_DownFile && pServer->GetGlassRawInfo()->m_ServerProcStep == APS_GlassLoading && m_pGlassRawMaker->GetEnableFtpAck() == TRUE)
+		{
+			if (FTPCopyDataParam->m_nSendResultCode == TRUE)
+			{
+				m_pGlassRawMaker->SetEnableFtpAck(FALSE);
+				m_pGlassRawMaker->SearchFIle(pRawDataBuffer);
+				break;
+			}
+			else
+			{
+				m_nMaxMergeList++;
+				m_pGlassRawMaker->DownLoadMergeFile(pRawDataBuffer);
+				if (m_nMaxMergeList > 10)
+				{
+					m_nMaxMergeList = 0;
+					break;
+				}
+
+			}
+		}
+		else
+		{
+			break;
+		}
+		
+		}
+		break;
+
+	default:
+		break;
+	}
+
+	return CDialog::OnCopyData(pWnd, pCopyDataStruct);
+}
+/* <LJC 20211122 : #3820 ADD End> */
\ No newline at end of file

--
Gitblit v1.9.3