From 65d45cae3268e08a78362b608711f70483a087c0 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 수, 09 6월 2021 10:52:38 +0900
Subject: [PATCH] Ongoing50 #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 - 우선 순위 조건 Defect Type -> Defecct Code 변경

---
 ReviewSystem/include/CHReviewResult/DefectResult.h                  |   69 ++--
 ReviewSystem/ReviewSystem/DlgDefectList.cpp                         |   67 +++--
 ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp       |   78 +++--
 ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h               |   16 
 ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp                     |    8 
 ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp         |   45 ++-
 ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp                 |   32 +
 ReviewSystem/ReviewRecipeEditor/DlgReview.cpp                       |  111 ++++++---
 ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp                     |    4 
 ReviewSystem/CHReviewResult/DefectResult.cpp                        |    2 
 ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h |  233 +++++++++---------
 11 files changed, 373 insertions(+), 292 deletions(-)

diff --git a/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp b/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp
index a0f877f..162c96c 100644
--- a/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp
+++ b/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp
@@ -125,11 +125,11 @@
 
 		for(constMapDefectResultIt it=pMapDefectResult->begin();it!=pMapDefectResult->end();it++)
 		{
-			//pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값
+			//pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙
 			pDefectResult = static_cast<CDefectResult*>(it->second);
 			if(pDefectResult == NULL || pDefectResult->bReviewAdded==TRUE) continue;
 
-			if(pDefectResult->nDefectCode ==2) continue; //고객사 요청사항 190609 chm Crack 안찍기 
+			if(pDefectResult->nDefectCode ==2) continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� 
 
 			if(pPriorityInfo->GetPriorityDefectSizeOption())
 			{
@@ -186,13 +186,13 @@
 		m_vecDefectResultPtrTemp.clear();
 	}
 
-	// 결함 우선순위 정렬결과 출력
+	// 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占�
 	CString strFilename = _T("");
 	//strFilename.Format(_T("C:\\Users\\dit-344\\Desktop\\testfile\\Sorting_Review.csv"));
 	strFilename.Format(_T("D:\\Sorting_Review.csv"));
 	SaveDefectPoint(m_vecDefectResultPtr, strFilename);
 
-	// 결과 만들기
+	// 占쏙옙占� 占쏙옙占쏙옙占�
 	return AddReviewDefectResult();
 }
 
@@ -225,11 +225,11 @@
 
 		for(constMapDefectResultIt it=pMapDefectResult->begin();it!=pMapDefectResult->end();it++)
 		{
-			//pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값
+			//pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙
 			pDefectResult = static_cast<CDefectResult*>(it->second);
 			if(pDefectResult == NULL) continue;
              
-			if(pDefectResult->nDefectCode == 2)continue; //고객사 요청사항 190609 chm Crack 안찍기 
+			if(pDefectResult->nDefectCode == 2)continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� 
 			
 			//if(pDefectResult->nLocation == DefectLoc_ASG || pDefectResult->nLocation == DefectLoc_PAD || pDefectResult->nLocation == DefectLoc_C2C)	continue;
 
@@ -286,7 +286,7 @@
 		m_vecDefectResultPtrTemp.clear();
 	}
 
-	// 결함 우선순위 정렬결과 출력
+	// 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占�
 	CString strFilename = _T("");
 	//	strFilename.Format(_T("D:\\Sorting_Wsi_temp1.csv"));
 	//	SaveDefectPoint(vecDefectResultPtrTemp1, strFilename);
@@ -297,7 +297,7 @@
 	//	strFilename.Format(_T("D:\\Sorting_Wsi.csv"));
 	//	SaveDefectPoint(m_vecDefectResultPtr, strFilename);
 
-	// 결과 만들기..
+	// 占쏙옙占� 占쏙옙占쏙옙占�..
 	return AddWsiDefectResult();
 }
 
@@ -361,7 +361,7 @@
 	{
 		const CRcpUserDefectInfo *pDefectInfo = m_pRsRcpReviewInfo->GetRcpUserDefectInfo(nPointIdx);
 		if (pDefectInfo==NULL) continue;
-		if (pDefectInfo->m_nInspectionMode != 0) continue; // _T("WSI") 일 경우 continue 20181218 smok
+		if (pDefectInfo->m_nInspectionMode != 0) continue; // _T("WSI") 占쏙옙 占쏙옙占� continue 20181218 smok
 
 		sResult.Reset();
 
@@ -446,7 +446,7 @@
 	{
 		const CRcpUserDefectInfo *pInfo = m_pRsRcpReviewInfo->GetRcpUserDefectInfo(nPointIdx);
 		if (pInfo==NULL) continue;
-		if (pInfo->m_nInspectionMode != 1) continue; // _T("REVIEW") 일 경우 continue 20181218 smok
+		if (pInfo->m_nInspectionMode != 1) continue; // _T("REVIEW") 占쏙옙 占쏙옙占� continue 20181218 smok
 
 		sResult.Reset();
 
@@ -620,9 +620,16 @@
 	if (pPriorityInfo==NULL || pDefectResult==NULL) return FALSE;
 
 	// check Type
-	if (pPriorityInfo->GetPriorityOpticData() != RCP_PRIORITY_ORDER_OPTIC_ALL)
+	
+	//if (pPriorityInfo->GetPriorityOpticData() != RCP_PRIORITY_ORDER_OPTIC_ALL)
+	//{
+	//	
+	//	//if (pDefectResult->nDefectCode != pPriorityInfo->GetPriorityOpticData()) return FALSE;
+	//}
+	//210608 Defect Code 占쏙옙 채占승쇽옙 占쏙옙占쏙옙 占쏙옙청 
+	if (pPriorityInfo->GetPriorityDefectCode() != RCP_PRIORITY_DEFECT_CODE_ALL)
 	{
-		if (pDefectResult->nDefectCode != pPriorityInfo->GetPriorityOpticData()) return FALSE;
+		if (pDefectResult->nDefectJudgeCode != pPriorityInfo->GetPriorityDefectCode()) return FALSE;
 	}
 
 	if (pPriorityInfo->GetPriorityGradeData() != RCP_PRIORITY_Judge_ALL)
@@ -715,7 +722,7 @@
 
 		if (pPriorityInfo->GetPriorityModelData() < 0)return FALSE;
 
-		//레시피 인덱스 Model0 -> 1 그래서 -1 
+		//占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙 Model0 -> 1 占쌓뤄옙占쏙옙 -1 
 		if (pDefectResult->nMultiModel != pPriorityInfo->GetPriorityModelData() - 1)return FALSE;
 
 	}
@@ -824,7 +831,7 @@
 
 		if (pPriorityInfo->GetPriorityModelData() < 0)return FALSE;
 
-		//레시피 인덱스 Model0 -> 1 그래서 -1 
+		//占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙 Model0 -> 1 占쌓뤄옙占쏙옙 -1 
 		if (pDefectResult->nMultiModel != pPriorityInfo->GetPriorityModelData()-1)return FALSE;
 
 	}
@@ -848,7 +855,7 @@
 		return nTotalPointCount;
 	}
 	CDefectResult* pDefectResult = NULL;
-	const CRcpSortingInfo* pSortingInfo = m_pRsRcpReviewInfo->GetRcpWSISortInfo(); //WSI 가져다 쓰기 
+	const CRcpSortingInfo* pSortingInfo = m_pRsRcpReviewInfo->GetRcpWSISortInfo(); //WSI 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 
 	if (pSortingInfo == NULL) return FALSE;
 
 	int nCount = m_pRsRcpReviewInfo->GetRcpWsiPriorityInfoCount();
@@ -863,11 +870,11 @@
 
 		for (constMapDefectResultIt it = pMapDefectResult->begin(); it != pMapDefectResult->end(); it++)
 		{
-			//pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값
+			//pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙
 			pDefectResult = static_cast<CDefectResult*>(it->second);
 			if (pDefectResult == NULL) continue;
 
-			if (pDefectResult->nDefectCode == 2)continue; //고객사 요청사항 190609 chm Crack 안찍기 
+			if (pDefectResult->nDefectCode == 2)continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� 
 
 			//if (pDefectResult->nLocation == DefectLoc_ASG || pDefectResult->nLocation == DefectLoc_PAD || pDefectResult->nLocation == DefectLoc_C2C)	continue;
 
@@ -924,7 +931,7 @@
 		m_vecDefectResultPtrTemp.clear();
 	}
 
-	// 결함 우선순위 정렬결과 출력
+	// 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占�
 	CString strFilename = _T("");
 	//	strFilename.Format(_T("D:\\Sorting_Wsi_temp1.csv"));
 	//	SaveDefectPoint(vecDefectResultPtrTemp1, strFilename);
@@ -935,7 +942,7 @@
 	//	strFilename.Format(_T("D:\\Sorting_Wsi.csv"));
 	//	SaveDefectPoint(m_vecDefectResultPtr, strFilename);
 
-	// 결과 만들기..
+	// 占쏙옙占� 占쏙옙占쏙옙占�..
 	return AddWsiMultishotDefectResult();
 }
 
diff --git a/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp b/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp
index 85df3be..93fe56e 100644
--- a/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp
+++ b/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp
@@ -13,9 +13,9 @@
 
 void CRcpPriorityInfo::Reset()
 {	
-	m_nPriorityOpticData			= RCP_PRIORITY_ORDER_OPTIC_ALL;				// 우선순위 optic 데이터
-	m_nPriorityGrayData				= RCP_PRIORITY_ORDER_GRAY_ALL;				// 우선순위 gray 데이터
-	m_nPriorityStackData			= RCP_PRIORITY_ORDER_STACK_ALL;				// 우선순위 stack 데이터
+	m_nPriorityOpticData			= RCP_PRIORITY_ORDER_OPTIC_ALL;				// 占쎌선占쏙옙占쏙옙 optic 占쏙옙占쏙옙占쏙옙
+	m_nPriorityGrayData				= RCP_PRIORITY_ORDER_GRAY_ALL;				// 占쎌선占쏙옙占쏙옙 gray 占쏙옙占쏙옙占쏙옙
+	m_nPriorityStackData			= RCP_PRIORITY_ORDER_STACK_ALL;				// 占쎌선占쏙옙占쏙옙 stack 占쏙옙占쏙옙占쏙옙
 	m_nPriorityDefectType			= RCP_PRIORITY_ORDER_PARTICLE;
 	m_nPriorityModelData            = RCP_PRIORITY_MODEL_TYPE_ALL;
 	m_nDefectGradeData              = RCP_PRIORITY_Judge_ALL;
@@ -24,7 +24,7 @@
 	m_bUseSizeOption				= FALSE;
 	m_nDefectumMinSize				= 0;
 	m_nDefectumMaxSize				= 99999;
-
+	m_nPriorityDefectCode			= RCP_PRIORITY_DEFECT_CODE_ALL; //20210608
 }
 
 void CRcpPriorityInfo::SetInfo(const CRcpPriorityInfo& rhs)
diff --git a/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp b/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp
index 0319682..d2b73b9 100644
--- a/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp
+++ b/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp
@@ -9,7 +9,7 @@
 {
 }
 
-void CRcp_RsReviewManager::SetFlanFile(CMacroFile& macroFile)//0117 공유메모리 플랜
+void CRcp_RsReviewManager::SetFlanFile(CMacroFile& macroFile)//0117 占쏙옙占쏙옙占쌨몌옙 占시뤄옙
 {
 	int nPlanIdx, nSlotIdx, nLightIdx, nAFMRecipeIdx, nUserDefectIdx, nReflowParameterIdx, nLightIdxWsi, nAFMRecipeIdxWsi;
 	int nPlanCount, nLightCount, nAFMRecipeCount, nUserDefectCount, nLightCountWsi, nAFMRecipeCountWsi;
@@ -120,8 +120,11 @@
 		const CRcpPriorityInfo *pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpPriorityInfo(nPriorityIdx);
 		if (pRcpPriorityInfo==NULL) continue;
 
-		strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx);
-		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData());
+		/*	strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx);
+			macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData());*/
+		strItem.Format(_T("RCP_REVIEW_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx);
+		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectCode());
+		
 
 		strItem.Format(_T("RCP_REVIEW_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
 		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectSizeOption());
@@ -187,7 +190,7 @@
 	strItem.Format(_T("RCP_REVIEW_DEFOCUS_VALUE"));
 	macroFile.SetItem(strItem, m_rsRcpReviewInfo.GetDefocusValue());
 
-	// wsi 우선순위
+	// wsi 占쎌선占쏙옙占쏙옙
 	// Priority
 	int nWsiPriorityCount = m_rsRcpReviewInfo.GetRcpWsiPriorityInfoCount();
 	strItem.Format(_T("RCP_WSI_PRIORITY_COUNT"));
@@ -198,8 +201,11 @@
 		const CRcpPriorityInfo *pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpWsiPriorityInfo(nPriorityIdx);
 		if (pRcpPriorityInfo==NULL) continue;
 
-		strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx);
-		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData());
+		//strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx);
+		//macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData());
+		
+		strItem.Format(_T("RCP_WSI_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx);//20210608
+		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectCode());
 
 		strItem.Format(_T("RCP_WSI_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
 		macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectSizeOption());
@@ -765,9 +771,12 @@
 		if(pRcpPriorityInfo == NULL) continue;
 
 		int nData = 0;
-		strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx);
+		/*strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); //210608
 		macroFile.GetItem(strItem, nData);
-		pRcpPriorityInfo->SetPriorityOpticData(nData);
+		pRcpPriorityInfo->SetPriorityOpticData(nData);*/
+		strItem.Format(_T("RCP_REVIEW_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx); //210608
+		macroFile.GetItem(strItem, nData);
+		pRcpPriorityInfo->SetPriorityDefectCode(nData);
 
 		strItem.Format(_T("RCP_REVIEW_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
 		macroFile.GetItem(strItem, nData);
@@ -860,9 +869,12 @@
 		if(pRcpPriorityInfo == NULL) continue;
 
 		int nData = 0;
-		strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx);
+		/*strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx);
 		macroFile.GetItem(strItem, nData);
-		pRcpPriorityInfo->SetPriorityOpticData(nData);
+		pRcpPriorityInfo->SetPriorityOpticData(nData);*/
+		strItem.Format(_T("RCP_WSI_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx);	//210608
+		macroFile.GetItem(strItem, nData);
+		pRcpPriorityInfo->SetPriorityDefectCode(nData);
 
 		strItem.Format(_T("RCP_WSI_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx);
 		macroFile.GetItem(strItem, nData);
diff --git a/ReviewSystem/CHReviewResult/DefectResult.cpp b/ReviewSystem/CHReviewResult/DefectResult.cpp
index 595590c..ab25b2f 100644
--- a/ReviewSystem/CHReviewResult/DefectResult.cpp
+++ b/ReviewSystem/CHReviewResult/DefectResult.cpp
@@ -145,4 +145,6 @@
 	m_bClusterCore		= FALSE;
 
 	nDefectWBType		= 0;
+	nDefectJudgeCode = 0;
+	strDefectJudgeCode = _T("");
 }
diff --git a/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp b/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp
index f8007d5..605df49 100644
--- a/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp
+++ b/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp
@@ -11,7 +11,7 @@
 {
 }
 
-// [2017:5:12]-[WEZASW] : DFS Result File Format 변경
+// [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙
 void CParsingGlassResult_CPJT::ParsingFileToGlassResult(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr)//Cmark
 {
 	if(pGlassResult==NULL || pResultFileMgr==NULL)
@@ -61,7 +61,7 @@
 
 
 		//=========================
-		#pragma region 옛날 코드
+		#pragma region 占쏙옙占쏙옙 占쌘듸옙
 		//cellResult.strCellID		= pResultFileMgr->GetRawData(eCSOTRaw_PanelInfoData, nCellIdx, eCSOTRaw_Panel_CellNum);					// No.1 Cell Number
 												// No.1 Cell Number
 		//cellResult.nDefectCount		= atoi(pResultFileMgr->GetRawData(eCSOTRaw_PanelInfoData, nCellIdx, eCSOTRaw_Panel_RearCPDefectNum));		// No.2 Defect Count
@@ -84,9 +84,9 @@
 		//=========================
 		
 
-		pGlassResult->AddCellResult(cellResult);		// 추가
+		pGlassResult->AddCellResult(cellResult);		// 占쌩곤옙
 
-		// 예외처리 : PNL Total 수량과 실제 불량 개수 확인
+		// 占쏙옙占쏙옙처占쏙옙 : PNL Total 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쌀뤄옙 占쏙옙占쏙옙 확占쏙옙
 		if (nTotalDefectIdx+cellResult.nDefectCount > nDefectRawDataCount)	{	continue;	}
 				
 
@@ -103,7 +103,7 @@
 		//	pDefectResult->nDefectidx1	 = atoi( pResultFileMgr->GetDefectData(nDefIdx,1));
 		//	pDefectResult->nDefectidx2   = atoi(pResultFileMgr->GetDefectData(nDefIdx,2));
 
-			//pDefectResult->strDefectCode		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code);					// No.1 결함코드1
+			//pDefectResult->strDefectCode		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code);					// No.1 占쏙옙占쏙옙占쌘듸옙1
 			pDefectResult->strDefectCode.TrimRight();
 			pDefectResult->nDefectCode			= GetDefectCodeType( pGlassResult->m_strRecipeID, pDefectResult->strDefectCode );
 
@@ -125,7 +125,7 @@
 
 		
 
-			//pDefectResult->strDefectType		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_AOI_DEFECT_TYPE);	 		// No.7 결함 Type	// A - N: Normal, C: Common, M: Mask
+			//pDefectResult->strDefectType		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_AOI_DEFECT_TYPE);	 		// No.7 占쏙옙占쏙옙 Type	// A - N: Normal, C: Common, M: Mask
 			pDefectResult->nDefectType			= GetCSOTDefectType(pDefectResult->strDefectType);
 			
 			pDefectResult->nAOIArea				= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, 20));			// No.5 Defect Size
@@ -133,8 +133,8 @@
 			pDefectResult->nSizeType			= GetSizeType(pDefectResult->strSizeType);
 
 
-			pDefectResult->nAOISizeW			= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_WID))*1000;		// No.10 Defect’s X axis size (um)
-			pDefectResult->nAOISizeH			= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_HGT))*1000;		// No.11 Defect’s Y axis size (um)
+			pDefectResult->nAOISizeW			= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_WID))*1000;		// No.10 Defect占쏙옙s X axis size (um)
+			pDefectResult->nAOISizeH			= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_HGT))*1000;		// No.11 Defect占쏙옙s Y axis size (um)
 			pDefectResult->nAOISize				= atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, 26));
 		    
 			//pDefectResult->nAOISizeLength		= pDefectResult->nAOISizeW;
@@ -157,18 +157,18 @@
 
 			
 			//=======================
-			#pragma region 옛날 코드
+			#pragma region 占쏙옙占쏙옙 占쌘듸옙
 			/*
 			//atoi(pResultFileMgr->GetCellData(idx,nCellIdx));
 			////pDefectResult->strCellID     
 			//
 
-			pDefectResult->strDefectCode		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code);					// No.1 결함코드1
+			pDefectResult->strDefectCode		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code);					// No.1 占쏙옙占쏙옙占쌘듸옙1
 						pDefectResult->strDefectCode.TrimRight();
 						pDefectResult->nDefectCode			= GetDefectCodeType( pGlassResult->m_strRecipeID, pDefectResult->strDefectCode );
 									
-						pDefectResult->nUMCenterOriginX		= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriX));		// No.3 Glass Center 기준 좌표 X(mm)
-						pDefectResult->nUMCenterOriginY		= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriY));		// No.4 Glass Center 기준 좌표 Y(mm)
+						pDefectResult->nUMCenterOriginX		= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriX));		// No.3 Glass Center 占쏙옙占쏙옙 占쏙옙표 X(mm)
+						pDefectResult->nUMCenterOriginY		= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriY));		// No.4 Glass Center 占쏙옙占쏙옙 占쏙옙표 Y(mm)
 						pDefectResult->nUMOriginX			= (pGlassResult->GetGlassSizeX()/2) + pDefectResult->nUMCenterOriginX*1000;
 						pDefectResult->nUMOriginY			= (pGlassResult->GetGlassSizeY()/2) + pDefectResult->nUMCenterOriginY*1000;
 						//pDefectResult->nUMOriginX			= pDefectResult->nUMCenterOriginX*1000;
@@ -180,11 +180,11 @@
 						pDefectResult->strSizeType			= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectSizeType);				// No.6 Defect SizeType	// S/M/L/O
 						pDefectResult->nSizeType			= GetSizeType(pDefectResult->strSizeType);
 			
-						pDefectResult->strDefectType		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectType);	 		// No.7 결함 Type	// A - N: Normal, C: Common, M: Mask
+						pDefectResult->strDefectType		= pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectType);	 		// No.7 占쏙옙占쏙옙 Type	// A - N: Normal, C: Common, M: Mask
 						pDefectResult->nDefectType			= GetCSOTDefectType(pDefectResult->strDefectType);
 			
-						pDefectResult->nAOISizeW			= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDX))*1000;		// No.10 Defect’s X axis size (um)
-						pDefectResult->nAOISizeH			= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDY))*1000;		// No.11 Defect’s Y axis size (um)
+						pDefectResult->nAOISizeW			= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDX))*1000;		// No.10 Defect占쏙옙s X axis size (um)
+						pDefectResult->nAOISizeH			= atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDY))*1000;		// No.11 Defect占쏙옙s Y axis size (um)
 						pDefectResult->nAOISize				= int(pDefectResult->nAOISizeW*pDefectResult->nAOISizeH);
 						pDefectResult->nAOISizeLength		= pDefectResult->nAOISizeW;
 			
@@ -222,7 +222,7 @@
 	}
 }
 
-// [2017:5:12]-[WEZASW] : DFS Result File Format 변경 cmark
+// [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙 cmark
 int CParsingGlassResult_CPJT::ParsingReviewResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr) 
 {
 	if (pResultFileMgr==NULL || pGlassResult==NULL)
@@ -304,7 +304,7 @@
 #endif
 			if (pResult->nDefectIdx != -1)
 			{
-				// 고정리뷰일때만
+				// 占쏙옙占쏙옙占쏙옙占쏙옙占싹띰옙占쏙옙
 				/ *
 				if( pGlassResult->GetUserResultCount() > 0 )
 				{
@@ -407,7 +407,7 @@
 	return nWriteCount;
 }
 
-// [2017:1:3]-[WEZASW] : WSI 측정 결과 쓰기 (사양 미정으로 기본 설정) (ING)
+// [2017:1:3]-[WEZASW] : WSI 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙 (占쏙옙占� 占쏙옙占쏙옙占쏙옙占쏙옙 占썩본 占쏙옙占쏙옙) (ING)
 int CParsingGlassResult_CPJT::ParsingWsiResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr)
 {
 
@@ -433,8 +433,8 @@
 
 			if (pResultFileMgr && pResult->nDefectIdx != -1)
 			{
-				// [2017:5:13]-[WEZASW] : 7개 추가 항목이었으나 고객사 제출시(최종) 삭제(미스)되어 제공되어 고객사 회신으로 추가 항목(13, 25, 26)만 적용 하기로 기술팀(김D) 협의됨.
-				// [2017:5:24]-[WEZASW] : AOI DFS(DFT) 항목 추가(Index 변경)
+				// [2017:5:13]-[WEZASW] : 7占쏙옙 占쌩곤옙 占쌓몌옙占싱억옙占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙占�(占쏙옙占쏙옙) 占쏙옙占쏙옙(占싱쏙옙)占실억옙 占쏙옙占쏙옙占실억옙 占쏙옙占쏙옙占� 회占쏙옙占쏙옙占쏙옙 占쌩곤옙 占쌓몌옙(13, 25, 26)占쏙옙 占쏙옙占쏙옙 占싹깍옙占� 占쏙옙占쏙옙占�(占쏙옙D) 占쏙옙占실듸옙.
+				// [2017:5:24]-[WEZASW] : AOI DFS(DFT) 占쌓몌옙 占쌩곤옙(Index 占쏙옙占쏙옙)
 				///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 15, int(pResult->pWsi_ResultData[Wsi_X_Height]*1000));			// No.13 Defect Height (um)
 				///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 27, pResult->nWsi_ResultCode);									// No.25 Measurement Code (Success:1 / fail:0)
 				///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 28, int(pResult->pWsi_ResultData[Wsi_X_A_Ratio]*1000));		// No.26 Defect X axis Ration (um)
@@ -703,7 +703,7 @@
 			// review image file name
 			strImageFileName = pResult->strUploadImgFileName;
 			
-			// [2018/02/13 22:22:06 by jylee] related RTMS 매칭, 복사 처리
+			// [2018/02/13 22:22:06 by jylee] related RTMS 占쏙옙칭, 占쏙옙占쏙옙 처占쏙옙
 			if (pResult->nDefectIdx != -1)
 			{
 				CheckResultFileAndCopy( pGlassResult, pResultFileMgr, pResult, strImageFileName );
@@ -1088,7 +1088,7 @@
 int CParsingGlassResult_CPJT::GetCSOTDefectCode(CString strDfectType){
 
 	//COST_CRACK=0,CSOT_PARTICLE,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH
-	//Compare 대상이면 0 대상보다크면  1 작으면 -1 
+	//Compare 占쏙옙占쏙옙見占� 0 占쏙옙鑿릿占신⑼옙占�  1 占쏙옙占쏙옙占쏙옙 -1 
 
 	if(strDfectType.Compare(_T("CRACK"))==0)
 	{
@@ -1157,7 +1157,7 @@
 			break;
 		case Judge_Rework:		sStr.Format("RW");
 			break;
-		case Judge_Unknown:		sStr.Format("OK");//sStr.Format("Unknown");	//Unknown도 일단 OK
+		case Judge_Unknown:		sStr.Format("OK");//sStr.Format("Unknown");	//Unknown占쏙옙 占싹댐옙 OK
 			break;
 		default:				sStr.Format("OK");//sStr.Format("Ets");		
 			break;
@@ -1197,9 +1197,14 @@
 		{
 			return DOWS;
 		}
+		else
+		{
+			return CODE_DEFAULT;
+		}
 		return 0;
 
 }
+
 
 // [2018/03/14 09:47:51 by jylee] related Deep Learning
 int CParsingGlassResult_CPJT::GetDefectCodeType( const CString& strRecipeID, const CString& strValue )  
@@ -1344,7 +1349,7 @@
 void CParsingGlassResult_CPJT::MemoryParsingFileToGlassResult( CGlassResult* pGlassResult, CDitGlassRawClient* pDitRawClient )
 {
 
-	//찐코드//
+	//占쏙옙占쌘듸옙//
 	if(pGlassResult==NULL || pDitRawClient==NULL)	return;
 
 	CString strItem = _T("");
@@ -1376,7 +1381,7 @@
 		cellResult.nDefectCount = pDitRawClient->GetCellData(nCellIdx)->getTotalDefectNum(); 
 		cellResult.strCellJudge.Format(_T("%d"),pDitRawClient->GetCellData(nCellIdx)->m_nJudgement);
 		
-		//20201126 CELL 좌표계를 센터좌표로 바꿈으로 내부 좌표계에서 + 글라스 사이즈/2 해야됨 
+		//20201126 CELL 占쏙옙표占썼를 占쏙옙占쏙옙占쏙옙표占쏙옙 占쌕뀐옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표占썼에占쏙옙 + 占쌜띰옙 占쏙옙占쏙옙占쏙옙/2 占쌔야듸옙 
 		cellResult.nUMOriginX = pDitRawClient->GetCellData(nCellIdx)->m_rectCellLeft + pDitRawClient->GetGlassData()->m_nGlassSizeWidth/2;
 		cellResult.nUMOriginY = pDitRawClient->GetCellData(nCellIdx)->m_rectCellTop + pDitRawClient->GetGlassData()->m_nGlassSizeHeight / 2;
 		cellResult.nUMOriginWidth = pDitRawClient->GetCellData(nCellIdx)->m_rectCellRight - cellResult.nUMOriginX + pDitRawClient->GetGlassData()->m_nGlassSizeWidth / 2;
@@ -1386,7 +1391,7 @@
 		CString strCellID(pDitRawClient->GetCellData(nCellIdx)->m_strCellName);
 		cellResult.strCellID = strCellID;
 		
-		pGlassResult->AddCellResult(cellResult);		// 추가
+		pGlassResult->AddCellResult(cellResult);		// 占쌩곤옙
 		
 	}
 	pGlassResult->m_strGlassID = pDitRawClient->GetGlassData()->m_strGlassID;
@@ -1414,7 +1419,7 @@
 		if(pDefectResult->nDefectWBType == 1 || pDefectResult->nDefectWBType == 3 || pDefectResult->nDefectWBType ==5)	pDefectResult->nDefectWBType =2;
 		else	pDefectResult->nDefectWBType = 1;
 
-		//이거슨 컷오프 대상 Review 제외 210205
+		//占싱거쏙옙 占싣울옙占쏙옙 占쏙옙占� Review 占쏙옙占쏙옙 210205
 		if (pSharedDefect->m_bDefectCutoff == 1)
 		{
 			continue;
@@ -1431,7 +1436,10 @@
 		pDefectResult->nUMOriginX			= pSharedDefect->m_nUMOriginX;// 
 		pDefectResult->nUMOriginY			= pSharedDefect->m_nUMOriginY;// 
 		
-		//pDefectResult->nDefectCode =  GetCodeType(pDefectResult->strDefectCode);
+		//20210608 占쌘듸옙占� 占쎌선占쏙옙占쏙옙
+		pDefectResult->nDefectJudgeCode = GetCodeType(pSharedDefect->m_strDefectCode);
+		pDefectResult->strDefectJudgeCode = pSharedDefect->m_strDefectCode;
+
 
 		pDefectResult->nJudgeType = pSharedDefect->m_DefectJudgement;
 		pDefectResult->strJudgeType = GetGradeType(pDefectResult->nJudgeType);
@@ -1442,7 +1450,7 @@
 		
 		pDefectResult->nLocation			= pSharedDefect->m_sDefectLoc;
 
-		//멀티 모델별 Review/WSI 필터링을 위한 인자
+		//占쏙옙티 占쏜델븝옙 Review/WSI 占쏙옙占싶몌옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
 		pDefectResult->nMultiModel          = pSharedDefect->m_nModelIdx;
 
 		if (pSharedDefect->m_DefectBDType == 1)
@@ -1471,17 +1479,17 @@
 
 
 		////20190311CHM 
-		//if(pSharedDefect->m_StackInfo == 1) //스택 인데 리뷰 안함 
+		//if(pSharedDefect->m_StackInfo == 1) //占쏙옙占쏙옙 占싸듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙 
 		//{
-		//	pDefectResult->nStackType	 = 1; //3이 SD 		
+		//	pDefectResult->nStackType	 = 1; //3占쏙옙 SD 		
 		//}
-		//else if(pSharedDefect->m_StackInfo == 2) // 스택인데 리뷰 함
+		//else if(pSharedDefect->m_StackInfo == 2) // 占쏙옙占쏙옙占싸듸옙 占쏙옙占쏙옙 占쏙옙
 		//{
 		//	pDefectResult->nStackType	 = 2;
 		//}
 		//else 
 		//{
-		//	pDefectResult->nStackType	 = 0; //0이 ALL
+		//	pDefectResult->nStackType	 = 0; //0占쏙옙 ALL
 		//}
 
 		pDefectResult->nStackType = pSharedDefect->m_StackInfo;
@@ -1809,8 +1817,8 @@
 //#endif
 //				if (pResult->nResultIdx != -1)
 //				{
-//					// 20170831 smok 항목 추가 DEFECT_ZONE(AA/PAD/CRACK) 31 -> 32
-//					// [2017:5:24]-[WEZASW] : AOI DFS(DFT) 항목 추가(Index 변경)
+//					// 20170831 smok 占쌓몌옙 占쌩곤옙 DEFECT_ZONE(AA/PAD/CRACK) 31 -> 32
+//					// [2017:5:24]-[WEZASW] : AOI DFS(DFT) 占쌓몌옙 占쌩곤옙(Index 占쏙옙占쏙옙)
 //					pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, nDefectCount + pResult->nResultIdx, 33, strTemp);		// No.31 Image File Name
 //
 //					pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, nDefectCount + pResult->nResultIdx, 34, "***");
diff --git a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
index 20e1726..ab0c062 100644
--- a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
+++ b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
@@ -1,4 +1,4 @@
-// DlgReview_FIC.cpp : 구현 파일입니다.
+// DlgReview_FIC.cpp : 占쏙옙占쏙옙 占쏙옙占쏙옙占쌉니댐옙.
 //
 
 #include "stdafx.h"
@@ -8,7 +8,7 @@
 #include "ReviewRecipeEditorDlg.h"
 #include "DlgFilterSizeOption.h"
 
-// CDlgReview 대화 상자입니다.
+// CDlgReview 占쏙옙화 占쏙옙占쏙옙占쌉니댐옙.
 
 IMPLEMENT_DYNAMIC(CDlgReview, CDialog)
 
@@ -65,12 +65,12 @@
 END_MESSAGE_MAP()
 
 
-// CDlgReview 메시지 처리기입니다.
+// CDlgReview 占쌨쏙옙占쏙옙 처占쏙옙占쏙옙占쌉니댐옙.
 BOOL CDlgReview::OnInitDialog()
 {
 	CDialog::OnInitDialog();
 
-	// TODO:  여기에 추가 초기화 작업을 추가합니다.
+	// TODO:  占쏙옙占썩에 占쌩곤옙 占십깍옙화 占쌜억옙占쏙옙 占쌩곤옙占쌌니댐옙.
 	InitFilterGridControl();
 	InitLightInfoGridControl();
 	InitAFMRecipeGridControl();
@@ -82,9 +82,9 @@
 
 void CDlgReview::OnBnClickedButtonReviewReset()
 {
-	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
+	// TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙.
 	//CDialog::OnOK();
-	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
+	// TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙.
 	//CDialog::OnOK();
 	UpdateData(FALSE);
 }
@@ -92,7 +92,7 @@
 
 void CDlgReview::OnBnClickedButtonReviewApply()
 {
-	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
+	// TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙.
 	//CDialog::OnCancel();
 
 	SetFilterInfo(m_nType);
@@ -159,7 +159,7 @@
 	nDataColumnWidth = (rect.Width() - 35 - nMargin) / (PRIORITY_INFO_GRID_COL_COUNT-1);
 
 	Item.col = nColIdx;
-	strTemp.Format(_T("Defect Type"));
+	strTemp.Format(_T("Defect Code"));
 	Item.strText = strTemp;
 	m_ctrlGridFilterinfo.SetItem(&Item);
 	m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth+30);
@@ -244,7 +244,8 @@
 
 				if(strArrayOption.GetSize() > 0)
 				{
-					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
+					//strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
+					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI 占쏙옙占쏙옙占쏙옙 //20210608
 					m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
 				}
 			}
@@ -364,7 +365,8 @@
 
 				if(strArrayOption.GetSize() > 0)
 				{
-					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
+					//strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData());
+					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF 占쏙옙占쏙옙占쏙옙
 					m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
 				}
 			}
@@ -477,11 +479,11 @@
 {
 	UpdateData(TRUE);
 
-	//리뷰 dlg 가져오기
+	//占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙
 	CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
 	if(pDlg == NULL) return;
 
-	//리뷰 매니져
+	//占쏙옙占쏙옙 占신댐옙占쏙옙
 	CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
 	pRcpRsReviewManager = pDlg->GetRsReviewManager();
 	if(pRcpRsReviewManager == NULL) return;
@@ -490,11 +492,11 @@
 	CString strTemp, strItemText;	
 	CStringArray strArrayOption;
 
-	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리
+	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙
 	if(nType)
 	{
 		//WSI
-		//조명
+		//占쏙옙占쏙옙
 		nColIdx = 1;
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiLightInfoCount(m_nLightCount); 
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLightWsi = m_ctrlAutoLight.GetCheck();
@@ -520,7 +522,7 @@
 			nColIdx++;				
 		}
 
-		//AFM 레시피
+		//AFM 占쏙옙占쏙옙占쏙옙
 		nRowIdx = 1;
 		nColIdx = 1;
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiAFMRecipeInfoCount(m_nAFMCount); 
@@ -564,7 +566,7 @@
 	else
 	{
 		//Review
-		//조명
+		//占쏙옙占쏙옙
 		nColIdx = 1;
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpLightInfoCount(m_nLightCount); 
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLight = m_ctrlAutoLight.GetCheck();
@@ -590,7 +592,7 @@
 			nColIdx++;				
 		}
 
-		//AFM 레시피
+		//AFM 占쏙옙占쏙옙占쏙옙
 		nRowIdx = 1;
 		nColIdx = 1;
 		pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpAFMRecipeInfoCount(m_nAFMCount); 
@@ -635,11 +637,11 @@
 {
 	UpdateData(TRUE);
 
-	//리뷰 dlg 가져오기
+	//占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙
 	CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
 	if(pDlg == NULL) return;
 
-	//리뷰 매니져
+	//占쏙옙占쏙옙 占신댐옙占쏙옙
 	CRcp_RsReviewManager* pRcpRsReviewManager = NULL;
 	pRcpRsReviewManager = pDlg->GetRsReviewManager();
 	if(pRcpRsReviewManager == NULL) return;
@@ -683,7 +685,8 @@
 					strTemp = strArrayOption.GetAt(j);
 					if(strTemp.Compare(strItemText) == 0)
 					{
-						pRcpPriorityInfo->SetPriorityOpticData(j);
+						//pRcpPriorityInfo->SetPriorityOpticData(j);//20210608
+						pRcpPriorityInfo->SetPriorityDefectCode(j);
 						break;
 					}
 				}
@@ -796,7 +799,8 @@
 					strTemp = strArrayOption.GetAt(j);
 					if(strTemp.Compare(strItemText) == 0)
 					{
-						pRcpPriorityInfo->SetPriorityOpticData(j);
+						//pRcpPriorityInfo->SetPriorityOpticData(j); //20210608
+						pRcpPriorityInfo->SetPriorityDefectCode(j);
 						break;
 					}
 				}
@@ -930,7 +934,7 @@
 	const CSystemInfo *pSystemInfo = pDlg->GetSys_SystemInfo();
 	if (pSystemInfo==NULL) return;
 
-	int nLightCount = 0; // 헤더 갯수가 조명 설정 갯수임
+	int nLightCount = 0; // 占쏙옙占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙
 	int nGantryCount = pSystemInfo->GetGantryInfoCount();
 	for(int nGantryIdx=0; nGantryIdx<nGantryCount; nGantryIdx++)
 	{
@@ -961,7 +965,7 @@
 	Item.mask = GVIF_TEXT;
 	Item.row = nRowIdx;
 	Item.col = nColIdx;
-	strTemp.Format(_T("Index"));//_T("인덱스"));
+	strTemp.Format(_T("Index"));//_T("占싸듸옙占쏙옙"));
 	Item.strText = strTemp;
 	m_ctrlGridLightInfo.SetItem(&Item);
 	m_ctrlGridLightInfo.SetColumnWidth(nColIdx, 100);
@@ -969,28 +973,28 @@
 	nRowIdx++;
 	Item.row = nRowIdx;
 	Item.col = nColIdx;
-	strTemp.Format(_T("Light Level (gLv)"));//_T("광량 값"));
+	strTemp.Format(_T("Light Level (gLv)"));//_T("占쏙옙占쏙옙 占쏙옙"));
 	Item.strText = strTemp;
 	m_ctrlGridLightInfo.SetItem(&Item);
 
 	nRowIdx++;
 	Item.row = nRowIdx;
 	Item.col = nColIdx;
-	strTemp.Format(_T("Min Level (gLv)"));//_T("최소 광량 값"));
+	strTemp.Format(_T("Min Level (gLv)"));//_T("占쌍쇽옙 占쏙옙占쏙옙 占쏙옙"));
 	Item.strText = strTemp;
 	m_ctrlGridLightInfo.SetItem(&Item);
 
 	nRowIdx++;
 	Item.row = nRowIdx;
 	Item.col = nColIdx;
-	strTemp.Format(_T("Max Level (gLv)"));//_T("최대 광량 값"));
+	strTemp.Format(_T("Max Level (gLv)"));//_T("占쌍댐옙 占쏙옙占쏙옙 占쏙옙"));
 	Item.strText = strTemp;
 	m_ctrlGridLightInfo.SetItem(&Item);
 
 	nRowIdx++;
 	Item.row = nRowIdx;
 	Item.col = nColIdx;
-	strTemp.Format(_T("Auto Light (gLv)"));//_T("자동 변경 값"));
+	strTemp.Format(_T("Auto Light (gLv)"));//_T("占쌘듸옙 占쏙옙占쏙옙 占쏙옙"));
 	Item.strText = strTemp;
 	m_ctrlGridLightInfo.SetItem(&Item);
 
@@ -1026,7 +1030,7 @@
 	if(pRcpRsReviewManager == NULL) return;
 
 
-	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리
+	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙
 	if(nType)
 	{
 		m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetWsiAutoLight());
@@ -1114,7 +1118,7 @@
 			if (pHeaderInfo==NULL) continue;
 			nAFMCount += pHeaderInfo->GetAFMInfoCount();
 
-			//[2017:6:2]-[WEZASW] : SystemSetting의 배율정보 기준으로 적용(셋팅된 렌즈 배율만 선택)
+			//[2017:6:2]-[WEZASW] : SystemSetting占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙(占쏙옙占시듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙)
 			nLensCount = pHeaderInfo->GetMagnificInfoCount();
 
 			for (int nLensIdx=0; nLensIdx<nLensCount; nLensIdx++)
@@ -1122,7 +1126,7 @@
 				const CMagnificInfo* pMagnificInfo = pHeaderInfo->GetMagnificInfo(nLensIdx);
 				if (pMagnificInfo==NULL) continue;
 
-				// 2017.12.21 smok. 두 개 이상의 gantry / header 시 AFM 배율 표시 이상.
+				// 2017.12.21 smok. 占쏙옙 占쏙옙 占싱삼옙占쏙옙 gantry / header 占쏙옙 AFM 占쏙옙占쏙옙 표占쏙옙 占싱삼옙.
 				//				strArrayOption[nHeaderIdx].Add(pMagnificInfo->m_strMagnificName);
 				strArrayOption[nGantryIdx].Add(pMagnificInfo->m_strMagnificName);
 			}
@@ -1153,7 +1157,7 @@
 		Item.mask = GVIF_TEXT;
 		Item.row = nRowIdx;
 		Item.col = nColIdx;
-		strTemp.Format(_T("Index"));//_T("인덱스"));
+		strTemp.Format(_T("Index"));//_T("占싸듸옙占쏙옙"));
 		Item.strText = strTemp;
 		m_ctrlGridAFMRecipeInfo.SetItem(&Item);
 		m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, 100);
@@ -1161,14 +1165,14 @@
 		nRowIdx++;
 		Item.row = nRowIdx;
 		Item.col = nColIdx;
-		strTemp.Format(_T("Recipe Index"));//_T("레시피 인덱스"));
+		strTemp.Format(_T("Recipe Index"));//_T("占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙"));
 		Item.strText = strTemp;
 		m_ctrlGridAFMRecipeInfo.SetItem(&Item);
 
 		nRowIdx++;
 		Item.row = nRowIdx;
 		Item.col = nColIdx;
-		strTemp.Format(_T("Magnific Index"));//_T("배율 인덱스"));
+		strTemp.Format(_T("Magnific Index"));//_T("占쏙옙占쏙옙 占싸듸옙占쏙옙"));
 		Item.strText = strTemp;
 		m_ctrlGridAFMRecipeInfo.SetItem(&Item);
 
@@ -1240,7 +1244,7 @@
 	pRcpRsReviewManager = pDlg->GetRsReviewManager();
 	if(pRcpRsReviewManager == NULL) return;
 
-	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리
+	// [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙
 	if(nType)
 	{
 		nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfoCount();
@@ -1356,7 +1360,7 @@
 
 		for (int nResultIdx=0; nResultIdx<m_nFilterCount; nResultIdx++)
 		{
-			//인덱스
+			//占싸듸옙占쏙옙
 			nColIdx = 0;
 			Item.mask = GVIF_TEXT;
 			Item.row = nRowIdx;
@@ -1368,7 +1372,7 @@
 			// optic
 			nColIdx++;
 			strArrayOption.RemoveAll();
-			for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++)
+			/*for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++)
 			{
 				switch(j)
 				{
@@ -1398,6 +1402,37 @@
 					break;
 				case RCP_PRIORITY_ORDER_SCR:
 					strTemp.Format(_T("SCRATCH"));
+					break;
+				}
+				strArrayOption.Add(strTemp);
+			}*/
+			for (j = 0; j < RCP_PRIORITY_DEFECTCODE_COUNT; j++)//20210608
+			{
+				switch (j)
+				{
+				case RCP_PRIORITY_DEFECT_CODE_ALL:
+					strTemp.Format(_T("ALL"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_TRDF:
+					strTemp.Format(_T("TRDF"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_BATR:
+					strTemp.Format(_T("BATR"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_DOBB:
+					strTemp.Format(_T("DOBB"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_DOBS:
+					strTemp.Format(_T("DOBS"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_DOWW:
+					strTemp.Format(_T("DOWW"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_DOWB:
+					strTemp.Format(_T("DOWB"));
+					break;
+				case RCP_PRIORITY_DEFECT_CODE_DOWS:
+					strTemp.Format(_T("DOWS"));
 					break;
 				}
 				strArrayOption.Add(strTemp);
@@ -1587,11 +1622,11 @@
 
 void CDlgReview::SizeOptionSetting(int nIndex)
 {
-	//리뷰 dlg 가져오기
+	//占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙
 	CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
 	if(pDlg == NULL) return;
 
-	//리뷰 매니져	
+	//占쏙옙占쏙옙 占신댐옙占쏙옙	
 	CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager();
 	if(pRcpRsReviewManager == NULL) return;
 
diff --git a/ReviewSystem/ReviewSystem/DlgDefectList.cpp b/ReviewSystem/ReviewSystem/DlgDefectList.cpp
index bd25f93..d89c98d 100644
--- a/ReviewSystem/ReviewSystem/DlgDefectList.cpp
+++ b/ReviewSystem/ReviewSystem/DlgDefectList.cpp
@@ -15,9 +15,9 @@
 int		Defect_width[DEFECTLISTCNT]		= {		  50,			  80,             80, 50,         50,        40,         40,         45,          45,         50,        50, 			  80,             80         };
 
 // [2017:6:7]-[WEZASW] : BOE�뼢
-#define B7_DEFECTLISTCNT		13
-TCHAR*	B7_Defect_Titlelist[B7_DEFECTLISTCNT]	= { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"),  _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)")};
-int		B7_Defect_width[B7_DEFECTLISTCNT]		= {		40,			  75,				 75,		75,			75,				50,			60,				45,			45,			40,			60,				80,				80     };
+#define B7_DEFECTLISTCNT		14
+TCHAR*	B7_Defect_Titlelist[B7_DEFECTLISTCNT]	= { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"),  _T("SType"),_T("DCode"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)")};
+int		B7_Defect_width[B7_DEFECTLISTCNT]		= {		40,			  75,				 75,		75,			50,				50,		  55,          60,		   45,			45,			40,			60,				80,				80     };
 
 
 
@@ -148,7 +148,7 @@
 
 	m_bAsending = !m_bAsending;
 
-	if(nCol==3 || nCol==4 || nCol==5 || nCol==10)
+	if(nCol==3 || nCol==4 || nCol==5 || nCol==6)//210608
 	{
 		vector< pair<CString,CDefectResult*> > vec;
 
@@ -162,14 +162,17 @@
 				vec.push_back(make_pair(pDefectResult->strDefectType, pDefectResult));				
 				break;
 			case 4:
-				vec.push_back(make_pair(pDefectResult->strMarkType, pDefectResult));				
+				vec.push_back(make_pair(pDefectResult->strJudgeType, pDefectResult));				
 				break;
 			case 5:
-				vec.push_back(make_pair(pDefectResult->strSizeType, pDefectResult));	
+				vec.push_back(make_pair(pDefectResult->strSizeType, pDefectResult));
 				break;
-			case 10:
-				vec.push_back(make_pair(pDefectResult->strDefectType1, pDefectResult));	
+			case 6:
+				vec.push_back(make_pair(pDefectResult->strDefectJudgeCode, pDefectResult));	
 				break;
+				/*case 11:
+					vec.push_back(make_pair(pDefectResult->strDefectType1, pDefectResult));
+					break;*/
 			default:
 				continue;
 			}
@@ -207,13 +210,13 @@
 			case 0: nValue = pDefectResult->nDefectIdx; break;			// _T("No")
 			case 1: nValue = pDefectResult->nUMOriginX; break;			// _T("RV_X(mm)")
 			case 2: nValue = pDefectResult->nUMOriginY; break;			// _T("RV_Y(mm)")
-			case 6: nValue = pDefectResult->nAOISizeLength; break;		// _T("DLength")
-			case 7: nValue = pDefectResult->nAOIArea; break;				// _T("Area")
-			case 8: nValue = pDefectResult->nAOIPeak; break;				// _T("Peak")
-			case 9: nValue = pDefectResult->nAOICameraIdx; break;		// _T("Cam")
-			case 10: nValue = pDefectResult->nAOIScanIdx; break;		// _T("Cam")
-			case 11: nValue = pDefectResult->dUMCenterOriginX; break;	// _T("AOI_X(mm)")
-			case 12: nValue = pDefectResult->dUMCenterOriginY; break;	// _T("AOI_Y(mm)")
+			case 7: nValue = pDefectResult->nAOISizeLength; break;		// _T("DLength")
+			case 8: nValue = pDefectResult->nAOIArea; break;				// _T("Area")
+			case 9: nValue = pDefectResult->nAOIPeak; break;				// _T("Peak")
+			case 10: nValue = pDefectResult->nAOICameraIdx; break;		// _T("Cam")
+			case 11: nValue = pDefectResult->nAOIScanIdx; break;		// _T("Cam")
+			case 12: nValue = pDefectResult->dUMCenterOriginX; break;	// _T("AOI_X(mm)")
+			case 13: nValue = pDefectResult->dUMCenterOriginY; break;	// _T("AOI_Y(mm)")
 			default: continue;
 			}
 
@@ -260,13 +263,14 @@
 	case 3: strItem = _T("DType"); break;
 	case 4: strItem = _T("Judge"); break;
 	case 5: strItem = _T("SType"); break;
-	case 6: strItem = _T("DLength"); break;
-	case 7: strItem = _T("Area"); break;
-	case 8: strItem = _T("Peak"); break;
-	case 9: strItem = _T("Cam"); break;
-	case 10: strItem = _T("ScanN"); break;
-	case 11: strItem = _T("AOI_X(mm)"); break;
-	case 12: strItem = _T("AOI_Y(mm)"); break;
+	case 6: strItem = _T("DCODE"); break;
+	case 7: strItem = _T("DLength"); break;
+	case 8: strItem = _T("Area"); break;
+	case 9: strItem = _T("Peak"); break;
+	case 10: strItem = _T("Cam"); break;
+	case 11: strItem = _T("ScanN"); break;
+	case 12: strItem = _T("AOI_X(mm)"); break;
+	case 13: strItem = _T("AOI_Y(mm)"); break;
 	default: break;
 	}
 }
@@ -346,39 +350,44 @@
 			strItem.Format(_T("%s"), pDefectResult->strSizeType);
 		}
 		break;
+	case 6:		//S_Type
+	{
+		strItem.Format(_T("%s"), pDefectResult->strDefectJudgeCode);//210608
+	}
+	break;
 
-	case 6:		//DLength
+	case 7:		//DLength
 		{
 			strItem.Format(_T("%d"), (int)pDefectResult->nAOISizeLength);
 		}
 		break;
-	case 7:		//Area
+	case 8:		//Area
 		{
 			strItem.Format(_T("%d"), (int)pDefectResult->nAOIArea);
 		}
 		break;
-	case 8:		//Peak
+	case 9:		//Peak
 		{
 			strItem.Format(_T("%d"), pDefectResult->nAOIPeak);
 		}
 		break;
-	case 9:		//Cam
+	case 10:		//Cam
 		{
 			strItem.Format(_T("%d"), pDefectResult->nAOICameraIdx);
 		}
 		break;
-	case 10:	//D_Type1
+	case 11:	//D_Type1
 		{
 		//	strItem.Format(_T("%s"), pDefectResult->strDefectType1);
 		strItem.Format(_T("%d"), pDefectResult->nAOIScanIdx);
 		}
 		break;
-	case 11:	//AOI_X(mm)
+	case 12:	//AOI_X(mm)
 		{
 			strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginX / 1000.);
 		}
 		break;
-	case 12:	//AOI_Y(mm)
+	case 13:	//AOI_Y(mm)
 		{
 			strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginY / 1000.);
 		}
diff --git a/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp b/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
index e11f372..1f165d9 100644
--- a/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
+++ b/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
@@ -13,12 +13,12 @@
 using namespace CHReviewResult;
 
 // SDC �뼢
-#define DEFECTLISTCNT		13
+#define DEFECTLISTCNT		14
 TCHAR*	Defect_HistoryTitlelist[DEFECTLISTCNT] = { _T("No"), _T("Mask_X(mm)"), _T("Mask_Y(mm)"), _T("Size"), _T("Peak"), _T("Cam"), _T("Scan"), _T("Type"), _T("Stack"), _T("Zone"), _T("Type"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") };
 int		Defect_Historywidth[DEFECTLISTCNT] = { 50,			  80,             80, 50,         50,        40,         40,         45,          45,         50,        50, 			  80,             80 };
 
 // [2017:6:7]-[WEZASW] : BOE�뼢
-#define B7_DEFECTLISTCNT		13
+#define B7_DEFECTLISTCNT		14
 TCHAR*	B7_Defect_HistoryTitlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"),  _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") };
 int		B7_Defect_Historywidth[B7_DEFECTLISTCNT] = { 40,			  75,				 75,		75,			75,				50,			60,				45,			45,			40,			60,				80,				80 };
 
diff --git a/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h b/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h
index f5460fe..d5e8440 100644
--- a/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h
+++ b/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h
@@ -24,6 +24,10 @@
 	RCP_PRIORITY_Judge_ALL = 0, RCP_PRIORITY_Judge_OK, RCP_PRIORITY_Judge_RP, RCP_PRIORITY_Judge_NG, RCP_PRIORITY_Judge_TR, RCP_PRIORITY_Judge_PR, RCP_PRIORITY_Judge_PT, RCP_PRIORITY_Judge_Review, RCP_PRIORITY_Judge_RC, RCP_PRIORITY_Judge_Size, RCP_PRIORITY_Judge_VI, RCP_PRIORITY_Judge_Rework, RCP_PRIORITY_Judge_Unknown, RCP_PRIORITY_GRADE_COUNT
 };
 
+enum RECIPE_PRIORITY_CPJT_DEFECTCODE_TYPE {
+	RCP_PRIORITY_DEFECT_CODE_ALL = 0, RCP_PRIORITY_DEFECT_CODE_TRDF, RCP_PRIORITY_DEFECT_CODE_BATR, RCP_PRIORITY_DEFECT_CODE_DOBB, RCP_PRIORITY_DEFECT_CODE_DOBS, RCP_PRIORITY_DEFECT_CODE_DOWW, RCP_PRIORITY_DEFECT_CODE_DOWB, RCP_PRIORITY_DEFECT_CODE_DOWS, RCP_PRIORITY_DEFECTCODE_COUNT
+};
+
 
 class AFX_EXT_CLASS CRcpPriorityInfo
 {
@@ -46,6 +50,7 @@
 	int			GetPriorityDefectMaxSize() const		{ return m_nDefectumMaxSize; }
 	BOOL		GetPriorityDefectSizeOption() const		{ return m_bUseSizeOption; }
 	int		    GetPriorityGradeData() const            { return m_nDefectGradeData; }
+	int			GetPriorityDefectCode() const			{ return m_nPriorityDefectCode; }//20210608 TRDF 占쏙옙占쏙옙占쏙옙
 
 	// setter
 	void		SetInfo(const CRcpPriorityInfo& rhs);
@@ -59,15 +64,16 @@
 	void		SetPriorityDefectMaxSize(int nSize)		{ m_nDefectumMaxSize = nSize; }
 	void		SetPriorityDefectSizeOption(bool bUse)	{ m_bUseSizeOption = bUse; }
 	void		SetPriorityGradeData(int nData) {m_nDefectGradeData = nData; }
-
+	void		SetPriorityDefectCode(int nData) {m_nPriorityDefectCode = nData;} //20210608
 protected:
-	int		m_nPriorityOpticData;					// 우선순위 optic 데이터
-	int		m_nPriorityGrayData;					// 우선순위 gray 데이터
-	int		m_nPriorityStackData;					// 우선순위 stack 데이터
-	int		m_nPriorityModelData;					// 우선순위 Midek 데이터
+	int		m_nPriorityOpticData;					// 占쎌선占쏙옙占쏙옙 optic 占쏙옙占쏙옙占쏙옙
+	int		m_nPriorityGrayData;					// 占쎌선占쏙옙占쏙옙 gray 占쏙옙占쏙옙占쏙옙
+	int		m_nPriorityStackData;					// 占쎌선占쏙옙占쏙옙 stack 占쏙옙占쏙옙占쏙옙
+	int		m_nPriorityModelData;					// 占쎌선占쏙옙占쏙옙 Midek 占쏙옙占쏙옙占쏙옙
 	int		m_nPriorityDefectType;
 	int		m_nPriorityDefectTypeNum;
 	int		m_nDefectGradeData;
+	int		m_nPriorityDefectCode;				   // 占쎌선占쏙옙占쏙옙 占싯삼옙 DefectCode 占쏙옙占쏙옙占쏙옙//20210608
 
 	BOOL	m_bUseSizeOption;
 	int		m_nDefectumMinSize;
diff --git a/ReviewSystem/include/CHReviewResult/DefectResult.h b/ReviewSystem/include/CHReviewResult/DefectResult.h
index 83ec84b..b17a00f 100644
--- a/ReviewSystem/include/CHReviewResult/DefectResult.h
+++ b/ReviewSystem/include/CHReviewResult/DefectResult.h
@@ -3,7 +3,7 @@
 namespace CHReviewResult
 {
 	enum ResultFileType			{ RESULT_FILE_TD = 0, RESULT_FILE_CD, RESULT_FILE_SD, RESULT_FILE_TYPE_COUNT };
-	enum DefectType				{ DEFECT_TYPE_NONE = 0, DEFECT_TYPE_D, DEFECT_TYPE_B, DEFECT_TYPE_BD, DEFECT_TYPE_PD, DEFECT_TYPE_PB, DEFECT_TYPE_PBD, DEFECT_TYPE_MNT, DEFECT_TYPE_EC, DEFECT_TYPE_MURA, DEFECT_TYPE_VLINE, DEFECT_TYPE_HLINE, DEFECT_TYPE_SPOT, DEFECT_TYPE_DENT, DEFECT_TYPE_PROTRUDE };// 20171003 smok. MURA 세부 결과
+	enum DefectType				{ DEFECT_TYPE_NONE = 0, DEFECT_TYPE_D, DEFECT_TYPE_B, DEFECT_TYPE_BD, DEFECT_TYPE_PD, DEFECT_TYPE_PB, DEFECT_TYPE_PBD, DEFECT_TYPE_MNT, DEFECT_TYPE_EC, DEFECT_TYPE_MURA, DEFECT_TYPE_VLINE, DEFECT_TYPE_HLINE, DEFECT_TYPE_SPOT, DEFECT_TYPE_DENT, DEFECT_TYPE_PROTRUDE };// 20171003 smok. MURA 占쏙옙占쏙옙 占쏙옙占�
 	// [2018/01/29 15:16:23 by jylee] related PANDA
 	enum PANDADefectType		{ DEFECT_TYPE_NORMAL = 0, DEFECT_TYPE_COMMON, DEFECT_TYPE_MASK };
 	enum DefectGrayType			{ DEFECT_GRAY_NONE = 0, DEFECT_GRAY_BLACK, DEFECT_GRAY_WHITE };
@@ -24,9 +24,9 @@
 	enum DefectPositionType		{ DEFECT_POSITION_NONE = -1, DEFECT_POSITION_FRONT, DEFECT_POSITION_BACK };
 	enum DefectZoneType			{ DEFECT_ZONE_NONE = 0, DEFECT_ZONE_DA, DEFECT_ZONE_GA, DEFECT_ZONE_GH, DEFECT_ZONE_AA };
 
-	enum SERVER_DefectType		{ DefectType_TBlack = 0, DefectType_TWhite, DefectType_RBlack, DefectType_RWhite, DefectType_Unknown }; //검사기
-	enum SERVER_DefectLocation	{ DefectLoc_Pattern = 0, DefectLoc_Crack, DefectLoc_BM, DefectLoc_ASG, DefectLoc_PAD, DefectLoc_C2C, DefectLoc_Align }; //검사기
-	enum SERVER_DefectSubType	{ DefectSubType_Normal = 0, DefectSubType_Edge, DefectSubType_MC, DefectSubType_Mask, DefectSubType_Common, DefectSubType_NoDefect, DefectSubType_Align }; //검사기
+	enum SERVER_DefectType		{ DefectType_TBlack = 0, DefectType_TWhite, DefectType_RBlack, DefectType_RWhite, DefectType_Unknown }; //占싯삼옙占�
+	enum SERVER_DefectLocation	{ DefectLoc_Pattern = 0, DefectLoc_Crack, DefectLoc_BM, DefectLoc_ASG, DefectLoc_PAD, DefectLoc_C2C, DefectLoc_Align }; //占싯삼옙占�
+	enum SERVER_DefectSubType	{ DefectSubType_Normal = 0, DefectSubType_Edge, DefectSubType_MC, DefectSubType_Mask, DefectSubType_Common, DefectSubType_NoDefect, DefectSubType_Align }; //占싯삼옙占�
 
 	enum SERVER_DefectPosition	{ DefectPos_Front = 0, DefectPos_Back };
 
@@ -158,15 +158,15 @@
 	void Reset();
 
 public:
-	//02.14 CHM RTMS용도
+	//02.14 CHM RTMS占쎈도
 	CString		strLotID;
 	CString     strGlassID;
 	CString     strOperID; //
 
-	CString     ProcessID; // operID 동일 
+	CString     ProcessID; // operID 占쏙옙占쏙옙 
 	int			nPanelID;	   // test
-	int         nDefectidx1; //검사 디펙 인덱스 
-	int         nDefectidx2; //Raw 메신저 인덱스
+	int         nDefectidx1; //占싯삼옙 占쏙옙占쏙옙 占싸듸옙占쏙옙 
+	int         nDefectidx2; //Raw 占쌨쏙옙占쏙옙 占싸듸옙占쏙옙
 	int         nUpdateTime;
 	
 	
@@ -179,37 +179,38 @@
 	BOOL		bRework;
 	BOOL		bReworkSelected;
 
-	// [2017:5:12]-[WEZASW] : DFS Result File Format 변경
+	// [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙
 	// defect raw data
-	int			nTotalDefectCount;				// Mura Defect Filter용 Total Defect(Vector) Index
+	int			nTotalDefectCount;				// Mura Defect Filter占쏙옙 Total Defect(Vector) Index
 
 	int			nDefectIdx;						// Defect No. 
 	CString		strDefectCode;					// Defect Code
 	int			nDefectCode;					// Defect Code Number
-	CString		strDefectCode2;
+	int			nDefectJudgeCode;				// TRDF 占쏙옙占쏙옙 占싯삼옙 Defect Code CPJT 占쏙옙 占쏙옙...占쏠갈몌옙占쏙옙 DefectJudge占쏙옙 占쌕몌옙 Defect Code 占쏙옙占쌕몌옙 tlqkf 
+	CString		strDefectJudgeCode;				// TRDF 占쏙옙占쏙옙 占싯삼옙 Defect Code CPJT 占쏙옙 //20210608
 	CString		strDefectName;					// Defect Name
 	CString		strCPResult;
 
 	CString		strDefectType;					// PARTICLE/CRACK/DENT / PROTRUSION/TFE_ABNORMAL
 	int			nDefectType;					
 
-	int			nUMOriginX;						// LTPS글라스 센터 기준 좌표 X
-	int			nUMOriginY;						// LTPS글라스 센터 기준 좌표 Y
+	int			nUMOriginX;						// LTPS占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표 X
+	int			nUMOriginY;						// LTPS占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표 Y
 
-	double		nUMTransX;						// Stage 상의 글라스 Left Bottom 컷팅면 기준 상대좌표 X
-	double		nUMTransY;						// Stage 상의 글라스 Left Bottom 컷팅면 기준 상대좌표 Y
+	double		nUMTransX;						// Stage 占쏙옙占쏙옙 占쌜띰옙 Left Bottom 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占실� X
+	double		nUMTransY;						// Stage 占쏙옙占쏙옙 占쌜띰옙 Left Bottom 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占실� Y
 
-	int		nUMCellX;//셀 중심 x좌표
-	int		nUMCellY;//셀 중심 Y좌표
+	int		nUMCellX;//占쏙옙 占쌩쏙옙 x占쏙옙표
+	int		nUMCellY;//占쏙옙 占쌩쏙옙 Y占쏙옙표
 
 	CString		strMarkType;					// POINT/LINE/RECT/CIRCLE/TRIANGLE/ARC
 	int			nMarkType;					
 
-	double		dUMCenterOriginX;				// Glass Center 기준 좌표 X
-	double		dUMCenterOriginY;				// Glass Center 기준 좌표 X
+	double		dUMCenterOriginX;				// Glass Center 占쏙옙占쏙옙 占쏙옙표 X
+	double		dUMCenterOriginY;				// Glass Center 占쏙옙占쏙옙 占쏙옙표 X
 
 	int			nSrcMax;//Gray max
-	int			nRefMax;//비교대상 Gray max
+	int			nRefMax;//占쏟교댐옙占� Gray max
 
 	CString		strCellID;						// Defected Panel ID
 	CString		strEquipID;
@@ -217,32 +218,32 @@
 	CString		strSizeType;					// S/M/L/EX_L/UL_L
 	int			nSizeType;
 
-	double		nAOISizeW;						// Defect’s X axis size (um)
-	double		nAOISizeH;						// Defect’s Y axis size (um)
-	double		nAOISizeLength;					// Defect’s Diagonal Length (um)  
+	double		nAOISizeW;						// Defect占쏙옙s X axis size (um)
+	double		nAOISizeH;						// Defect占쏙옙s Y axis size (um)
+	double		nAOISizeLength;					// Defect占쏙옙s Diagonal Length (um)  
 	double		nAOIArea;						// 
 	CString		strAOIArea;
 
 	int			nAOIPeak;						// 
 
-	int			nDefectWBType;					// 백결함 흑결함 분류 (1,3,5가 백결함)
+	int			nDefectWBType;					// 占쏙옙占쏙옙占� 占쏙옙占쏙옙占� 占싻뤄옙 (1,3,5占쏙옙 占쏙옙占쏙옙占�)
 
 	CString		strDefectType1;					
 	int			nDefectType1;	
 
-	CString		strDefectType2;					// Back(B) / TOP(T)????  => Lami AOI 상/하 Camera에 대한 분류 목적
+	CString		strDefectType2;					// Back(B) / TOP(T)????  => Lami AOI 占쏙옙/占쏙옙 Camera占쏙옙 占쏙옙占쏙옙 占싻뤄옙 占쏙옙占쏙옙
 	int			nDefectType2;	
 
 	CString		strUploadImgFileName;			// Review Image File Name
 	CString		strUploadImgFileName2;			// image name 2
 
-	int			nDefectGroup;					// [2018/06/04 11:13:54 by jylee] related Group Defect 분류
+	int			nDefectGroup;					// [2018/06/04 11:13:54 by jylee] related Group Defect 占싻뤄옙
 
 	int			nMultiModel;
 
 	int			nReview_Processing;
 
-	// [2017:4:10]-[WEZASW] : 고객사 요청에 의한 bmp 파일 추가 저장. (임시사용)
+	// [2017:4:10]-[WEZASW] : 占쏙옙占쏙옙占� 占쏙옙청占쏙옙 占쏙옙占쏙옙 bmp 占쏙옙占쏙옙 占쌩곤옙 占쏙옙占쏙옙. (占쌈시삼옙占�)
 	CString		strOrignalImgFileName;
 
 	// [2017/08/03 14:10:50 by jylee] related Sharp
@@ -308,15 +309,15 @@
 	int			nSortSection;
 
 	// not used FIC
-	int			nZonePercent;			// (13) ZONE_Percent       //사용안함.                   or MNT Data 0
-	int			nBF_Width;				// (14) bf_width_um        //디펙 width  (세로) BF Size  or MNT Data 1
-	int			nBF_Length;				// (15) bf_length_um       //디펙 Length (가로) BF Size  or MNT Data 2
-	int			nBF_Min;				// (16) bf_min             //BF_DEFECT의 GRAY MIN        or MNT Data 3
-	int			nBF_Avg;				// (17) bf_avg             //BF_DEFECT의 GRAY AVG        or MNT Data 0
+	int			nZonePercent;			// (13) ZONE_Percent       //占쏙옙占쏙옙占쏙옙.                   or MNT Data 0
+	int			nBF_Width;				// (14) bf_width_um        //占쏙옙占쏙옙 width  (占쏙옙占쏙옙) BF Size  or MNT Data 1
+	int			nBF_Length;				// (15) bf_length_um       //占쏙옙占쏙옙 Length (占쏙옙占쏙옙) BF Size  or MNT Data 2
+	int			nBF_Min;				// (16) bf_min             //BF_DEFECT占쏙옙 GRAY MIN        or MNT Data 3
+	int			nBF_Avg;				// (17) bf_avg             //BF_DEFECT占쏙옙 GRAY AVG        or MNT Data 0
 	int			nBF_AvgDiff;			// (18) bf_avg_diff
 
-	int			nDF_Width;				// (19) df_width_um        //디펙 width  (세로) DF Size
-	int			nDF_Length;				// (20) df_lengt_um        //디펙 Length (가로) DF Size
+	int			nDF_Width;				// (19) df_width_um        //占쏙옙占쏙옙 width  (占쏙옙占쏙옙) DF Size
+	int			nDF_Length;				// (20) df_lengt_um        //占쏙옙占쏙옙 Length (占쏙옙占쏙옙) DF Size
 
 	int			nBefore_SizeWidth;		
 	int			nBefore_SizeHeight;		
diff --git a/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h b/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h
index 026ba9f..d803357 100644
--- a/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h
+++ b/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h
@@ -7,7 +7,7 @@
 enum GlassOriginDir 	{ GlassOrigin_LeftTop=0, GlassOrigin_RightTop, GlassOrigin_LeftBottom, GlassOrigin_RightBottom, GlassOrigin_Count };
 enum CSOTDfectCode      {CSOT_PARTICLE=1,COST_CRACK,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH};
 enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown };
-enum JudgeCode { TRDF = 0, BATR, DOBB, DOBS, DOWW, DOWB, DOWS };
+enum JudgeCode { CODE_DEFAULT= 0,TRDF , BATR, DOBB, DOBS, DOWW, DOWB, DOWS };
 
 #define LAYER_GT_50			_T("0114")
 #define LAYER_GT_58			_T("0214")
@@ -37,171 +37,171 @@
 
 //
 //enum eCSOTRawGlassIndex{		// 30
-//	eCSOTRaw_Glass_Name = 0,			// 계층번호						// AA - 30 고정
-//	eCSOTRaw_Glass_PanelNum,			// 검사 Panel 수량				// 9999 - 매
+//	eCSOTRaw_Glass_Name = 0,			// 占쏙옙占쏙옙占쏙옙호						// AA - 30 占쏙옙占쏙옙
+//	eCSOTRaw_Glass_PanelNum,			// 占싯삼옙 Panel 占쏙옙占쏙옙				// 9999 - 占쏙옙
 //	eCSOTRaw_Glass_RecipeID,			// Recipe ID					// AAAA
-//	eCSOTRaw_Glass_ProcessTime,		// Processing Time				// 9999 - 초 : 반입시작 ~ 반출완료 시간
-//	eCSOTRaw_Glass_GlassID,			// 기판ID (VCR)					// AAAAAAAAAAAA
+//	eCSOTRaw_Glass_ProcessTime,		// Processing Time				// 9999 - 占쏙옙 : 占쏙옙占쌉쏙옙占쏙옙 ~ 占쏙옙占쏙옙狗占� 占시곤옙
+//	eCSOTRaw_Glass_GlassID,			// 占쏙옙占쏙옙ID (VCR)					// AAAAAAAAAAAA
 //
-//	eCSOTRaw_Glass_ReadResult,			// VCR 읽기 결과				// A
+//	eCSOTRaw_Glass_ReadResult,			// VCR 占싻깍옙 占쏙옙占�				// A
 //	eCSOTRaw_Glass_CPFlag,				// CP Instruction Flag			// A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing
-//	eCSOTRaw_Glass_ElectroNum,			// 정전기 Monitor 측정 수량		// 9 - 회
-//	eCSOTRaw_Glass_CCDNum,				// CCD Monitor 수량				// 99 - 회
-//	eCSOTRaw_Glass_ReviewNum,			// Review 수량					// 999 - 회
+//	eCSOTRaw_Glass_ElectroNum,			// 占쏙옙占쏙옙占쏙옙 Monitor 占쏙옙占쏙옙 占쏙옙占쏙옙		// 9 - 회
+//	eCSOTRaw_Glass_CCDNum,				// CCD Monitor 占쏙옙占쏙옙				// 99 - 회
+//	eCSOTRaw_Glass_ReviewNum,			// Review 占쏙옙占쏙옙					// 999 - 회
 //
-//	eCSOTRaw_Glass_Alignment,			// Alignment 유무				// 9 - 실시 : 1, 미실시 : 0
-//	// [2018/07/05 08:38:46 by jylee] related Format 변경
-//	eCSOTRaw_Glass_Spare1,				// 스페어 1
-//	eCSOTRaw_Glass_Spare2				// 스페어 2
+//	eCSOTRaw_Glass_Alignment,			// Alignment 占쏙옙占쏙옙				// 9 - 占실쏙옙 : 1, 占싱실쏙옙 : 0
+//	// [2018/07/05 08:38:46 by jylee] related Format 占쏙옙占쏙옙
+//	eCSOTRaw_Glass_Spare1,				// 占쏙옙占쏙옙占� 1
+//	eCSOTRaw_Glass_Spare2				// 占쏙옙占쏙옙占� 2
 //
 //
 //};
 /*
 enum eCSOTRawGlassIndex{		// 30
-	eCSOTRaw_Glass_Name = 0,			// 1. 계층번호						// AA - 30 고정
-	eCSOTRaw_Glass_PanelNum,			// 2. 검사 Panel 수량				// 9999 - 매
+	eCSOTRaw_Glass_Name = 0,			// 1. 占쏙옙占쏙옙占쏙옙호						// AA - 30 占쏙옙占쏙옙
+	eCSOTRaw_Glass_PanelNum,			// 2. 占싯삼옙 Panel 占쏙옙占쏙옙				// 9999 - 占쏙옙
 	eCSOTRaw_Glass_RecipeID,			// 3. Recipe ID						// AAAA
-	eCSOTRaw_Glass_ProcessTime,		// 4. Processing Time				// 9999 - 초 : 반입시작 ~ 반출완료 시간
-	eCSOTRaw_Glass_GlassID,			// 5. 기판ID (VCR)					// AAAAAAAAAAAA
+	eCSOTRaw_Glass_ProcessTime,		// 4. Processing Time				// 9999 - 占쏙옙 : 占쏙옙占쌉쏙옙占쏙옙 ~ 占쏙옙占쏙옙狗占� 占시곤옙
+	eCSOTRaw_Glass_GlassID,			// 5. 占쏙옙占쏙옙ID (VCR)					// AAAAAAAAAAAA
 
-	eCSOTRaw_Glass_ReadResult,			// 6. VCR 읽기 결과					// A
+	eCSOTRaw_Glass_ReadResult,			// 6. VCR 占싻깍옙 占쏙옙占�					// A
 	eCSOTRaw_Glass_CPFlag,				// 7. CP Instruction Flag			// A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing
-	eCSOTRaw_Glass_ElectroNum,			// 8. 정전기 Monitor 측정 수량		// 9 - 회
-	eCSOTRaw_Glass_CCDNum,				// 9. CCD Monitor 수량				// 99 - 회
-	eCSOTRaw_Glass_ReviewNum,			// 10. Review 수량					// 999 - 회
+	eCSOTRaw_Glass_ElectroNum,			// 8. 占쏙옙占쏙옙占쏙옙 Monitor 占쏙옙占쏙옙 占쏙옙占쏙옙		// 9 - 회
+	eCSOTRaw_Glass_CCDNum,				// 9. CCD Monitor 占쏙옙占쏙옙				// 99 - 회
+	eCSOTRaw_Glass_ReviewNum,			// 10. Review 占쏙옙占쏙옙					// 999 - 회
 
-	eCSOTRaw_Glass_Alignment,			// 11. Alignment 유무				// 9 - 실시 : 1, 미실시 : 0
-	eCSOTRaw_Glass_TotalDefect,		// 12. 결함총수						// 99999
-	eCSOTRaw_Glass_REVDefect,			// 13. 리뷰 결함수					// 99999
-	eCSOTRaw_Glass_FIXDefect,			// 14. 고정 리뷰 결함수				// 99999
-	eCSOTRaw_Glass_MaskDefect,			// 15. MASK 결함수					// 99999
+	eCSOTRaw_Glass_Alignment,			// 11. Alignment 占쏙옙占쏙옙				// 9 - 占실쏙옙 : 1, 占싱실쏙옙 : 0
+	eCSOTRaw_Glass_TotalDefect,		// 12. 占쏙옙占쏙옙占싼쇽옙						// 99999
+	eCSOTRaw_Glass_REVDefect,			// 13. 占쏙옙占쏙옙 占쏙옙占쌉쇽옙					// 99999
+	eCSOTRaw_Glass_FIXDefect,			// 14. 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쌉쇽옙				// 99999
+	eCSOTRaw_Glass_MaskDefect,			// 15. MASK 占쏙옙占쌉쇽옙					// 99999
 
-	eCSOTRaw_Glass_CommonDefect,		// 16. 공통 결함수					// 99999
-	eCSOTRaw_Glass_Spare1,				// 17. 스페어 1
-	eCSOTRaw_Glass_Spare2				// 18. 스페어 2
+	eCSOTRaw_Glass_CommonDefect,		// 16. 占쏙옙占쏙옙 占쏙옙占쌉쇽옙					// 99999
+	eCSOTRaw_Glass_Spare1,				// 17. 占쏙옙占쏙옙占� 1
+	eCSOTRaw_Glass_Spare2				// 18. 占쏙옙占쏙옙占� 2
 
 };
 */
 //enum eCSOTRawPanelIndex{		// 41
-//	eCSOTRaw_Panel_Name = 0,			// 1. 계층번호				// AA - 41 고정
-//	eCSOTRaw_Panel_CellNum,			// 2. Cell 번호			// AAAA
-//	eCSOTRaw_Panel_Judge,				// 3. Panel 판정 결과		// A
-//	eCSOTRaw_Panel_Reason,				// 4. 판정이유				// AAAAA
-//	eCSOTRaw_Panel_CPFlag,				// 5. CP Flag				// AAA	- 0 : 요구 무, 1: 실시, 8: 미실시, 9:Data무
+//	eCSOTRaw_Panel_Name = 0,			// 1. 占쏙옙占쏙옙占쏙옙호				// AA - 41 占쏙옙占쏙옙
+//	eCSOTRaw_Panel_CellNum,			// 2. Cell 占쏙옙호			// AAAA
+//	eCSOTRaw_Panel_Judge,				// 3. Panel 占쏙옙占쏙옙 占쏙옙占�		// A
+//	eCSOTRaw_Panel_Reason,				// 4. 占쏙옙占쏙옙占쏙옙占쏙옙				// AAAAA
+//	eCSOTRaw_Panel_CPFlag,				// 5. CP Flag				// AAA	- 0 : 占썰구 占쏙옙, 1: 占실쏙옙, 8: 占싱실쏙옙, 9:Data占쏙옙
 //
-//	eCSOTRaw_Panel_FrontCPDefectNum,	// 6. CP 전 총결함수		// 9999 - 개
-//	eCSOTRaw_Panel_RearCPDefectNum,	// 7. CP 후 총결함수		// 9999 - 개
-//	eCSOTRaw_Panel_Spare1,				// 8. 스페어 1
-//	eCSOTRaw_Panel_Spare2				// 9. 스페어 2
+//	eCSOTRaw_Panel_FrontCPDefectNum,	// 6. CP 占쏙옙 占싼곤옙占쌉쇽옙		// 9999 - 占쏙옙
+//	eCSOTRaw_Panel_RearCPDefectNum,	// 7. CP 占쏙옙 占싼곤옙占쌉쇽옙		// 9999 - 占쏙옙
+//	eCSOTRaw_Panel_Spare1,				// 8. 占쏙옙占쏙옙占� 1
+//	eCSOTRaw_Panel_Spare2				// 9. 占쏙옙占쏙옙占� 2
 //};
 
 
 //enum eCSOTRawDefectIndex{		// 50
-//	eCSOTRaw_Defect_Name = 0,			// 계층번호				// 50 고정
-//	eCSOTRaw_Defect_Code,				// 결함코드				// AAAAA
-//	eCSOTRaw_Defect_CenterOriX,		// 결함좌표X 1			// +-9999.999 mm 기판 센터 기점으로 좌표
-//	eCSOTRaw_Defect_CenterOriY,		// 결함좌표Y 1			// +-9999.999 mm 
-//	eCSOTRaw_Defect_Area,				// 결함 Size(면적)		// 999.99 um - 추출 결함면적
+//	eCSOTRaw_Defect_Name = 0,			// 占쏙옙占쏙옙占쏙옙호				// 50 占쏙옙占쏙옙
+//	eCSOTRaw_Defect_Code,				// 占쏙옙占쏙옙占쌘듸옙				// AAAAA
+//	eCSOTRaw_Defect_CenterOriX,		// 占쏙옙占쏙옙占쏙옙표X 1			// +-9999.999 mm 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙표
+//	eCSOTRaw_Defect_CenterOriY,		// 占쏙옙占쏙옙占쏙옙표Y 1			// +-9999.999 mm 
+//	eCSOTRaw_Defect_Area,				// 占쏙옙占쏙옙 Size(占쏙옙占쏙옙)		// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쌉몌옙占쏙옙
 //
-//	eCSOTRaw_Defect_SizeType,			// 결함 Size 종류		// A - S/M/L/O
-//	eCSOTRaw_Defect_DefectType,		// 결함 Type			// A - N: Normal, C: Common, M: Mask
-//	eCSOTRaw_Defect_Zone,				// 결함 위치			// A - Zone
-//	eCSOTRaw_Defect_Size,				// 결함 Size (CCD수)	// 99999 um2 - Camera Pixel Size
-//	eCSOTRaw_Defect_SizeX,				// 결함Size DX			// 999.99 um - 추출 결함 X축 길이
+//	eCSOTRaw_Defect_SizeType,			// 占쏙옙占쏙옙 Size 占쏙옙占쏙옙		// A - S/M/L/O
+//	eCSOTRaw_Defect_DefectType,		// 占쏙옙占쏙옙 Type			// A - N: Normal, C: Common, M: Mask
+//	eCSOTRaw_Defect_Zone,				// 占쏙옙占쏙옙 占쏙옙치			// A - Zone
+//	eCSOTRaw_Defect_Size,				// 占쏙옙占쏙옙 Size (CCD占쏙옙)	// 99999 um2 - Camera Pixel Size
+//	eCSOTRaw_Defect_SizeX,				// 占쏙옙占쏙옙Size DX			// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 X占쏙옙 占쏙옙占쏙옙
 //
-//	eCSOTRaw_Defect_SizeY,				// 결함Size DY			// 999.99 um - 추출 결함 Y축 길이
-//	eCSOTRaw_Defect_X,					// 결함좌표 X 2			// 9999.999 mm - QMS Calculation 
-//	eCSOTRaw_Defect_Y,					// 결함좌표 Y 2			// 9999.999 mm
-//	eCSOTRaw_Defect_PixelX,			// 결함 Pixel 좌표 X	// 99999
-//	eCSOTRaw_Defect_PixelY,			// 결함 Pixel 좌표 Y	// 99999
+//	eCSOTRaw_Defect_SizeY,				// 占쏙옙占쏙옙Size DY			// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 Y占쏙옙 占쏙옙占쏙옙
+//	eCSOTRaw_Defect_X,					// 占쏙옙占쏙옙占쏙옙표 X 2			// 9999.999 mm - QMS Calculation 
+//	eCSOTRaw_Defect_Y,					// 占쏙옙占쏙옙占쏙옙표 Y 2			// 9999.999 mm
+//	eCSOTRaw_Defect_PixelX,			// 占쏙옙占쏙옙 Pixel 占쏙옙표 X	// 99999
+//	eCSOTRaw_Defect_PixelY,			// 占쏙옙占쏙옙 Pixel 占쏙옙표 Y	// 99999
 //
-//	eCSOTRaw_Defect_CPResult,			// CP 결과				// AAA - 0: CP 일치 무, 1: CP일치, 8: 미실시
-//	eCSOTRaw_Defect_Flag,				// 수정대상 Flag		// AAAAA - 0 : 수정대상 외, 1: 수정후보
-//	eCSOTRaw_Defect_ImageName,			// 이미지 번호			// AAAAA.A999.AAA -  Rule : " 설비ID " + " . " + " B " ( Before ) + " 連番 " + ?張子 " .AAA "
-//	eCSOTRaw_Defect_ImageSizeX,		// 이미지 Size X		// 9999.99 um
-//	eCSOTRaw_Defect_ImageSizeY,		// 이미지 Size Y		// 9999.99 um
+//	eCSOTRaw_Defect_CPResult,			// CP 占쏙옙占�				// AAA - 0: CP 占쏙옙치 占쏙옙, 1: CP占쏙옙치, 8: 占싱실쏙옙
+//	eCSOTRaw_Defect_Flag,				// 占쏙옙占쏙옙占쏙옙占� Flag		// AAAAA - 0 : 占쏙옙占쏙옙占쏙옙占� 占쏙옙, 1: 占쏙옙占쏙옙占식븝옙
+//	eCSOTRaw_Defect_ImageName,			// 占싱뱄옙占쏙옙 占쏙옙호			// AAAAA.A999.AAA -  Rule : " 占쏙옙占쏙옙ID " + " . " + " B " ( Before ) + " 連占쏙옙 " + ?占쏙옙占� " .AAA "
+//	eCSOTRaw_Defect_ImageSizeX,		// 占싱뱄옙占쏙옙 Size X		// 9999.99 um
+//	eCSOTRaw_Defect_ImageSizeY,		// 占싱뱄옙占쏙옙 Size Y		// 9999.99 um
 //
-//	// [2018/07/05 08:42:57 by jylee] related Format 변경
-//	eCSOTRaw_Defect_Spare1				// 스페어 1
+//	// [2018/07/05 08:42:57 by jylee] related Format 占쏙옙占쏙옙
+//	eCSOTRaw_Defect_Spare1				// 占쏙옙占쏙옙占� 1
 //};
 
 /*
 enum eCSOTRawDefectIndex{		// 50
-	eCSOTRaw_Defect_Name = 0,			// 1. 계층번호				// 50 고정
-	eCSOTRaw_Defect_Code,				// 2. 결함코드				// AAAAA
-	eCSOTRaw_Defect_CenterOriX,		// 3. 결함좌표X 1			// +-9999.999 mm 기판 센터 기점으로 좌표
-	eCSOTRaw_Defect_CenterOriY,		// 4. 결함좌표Y 1			// +-9999.999 mm 
-	eCSOTRaw_Defect_Area,				// 5. 결함 Size(면적)		// 999.99 um - 추출 결함면적
+	eCSOTRaw_Defect_Name = 0,			// 1. 占쏙옙占쏙옙占쏙옙호				// 50 占쏙옙占쏙옙
+	eCSOTRaw_Defect_Code,				// 2. 占쏙옙占쏙옙占쌘듸옙				// AAAAA
+	eCSOTRaw_Defect_CenterOriX,		// 3. 占쏙옙占쏙옙占쏙옙표X 1			// +-9999.999 mm 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙표
+	eCSOTRaw_Defect_CenterOriY,		// 4. 占쏙옙占쏙옙占쏙옙표Y 1			// +-9999.999 mm 
+	eCSOTRaw_Defect_Area,				// 5. 占쏙옙占쏙옙 Size(占쏙옙占쏙옙)		// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쌉몌옙占쏙옙
 
-	eCSOTRaw_Defect_SizeType,			// 6. 결함 Size 종류		// A - S/M/L/O
-	eCSOTRaw_Defect_DefectType,		// 7. 결함 Type			// A - N: Normal, C: Common, M: Mask
-	eCSOTRaw_Defect_Zone,				// 8. 결함 위치			// A - Zone
-	eCSOTRaw_Defect_Size,				// 9. 결함 Size (CCD수)	// 99999 um2 - Camera Pixel Size
-	eCSOTRaw_Defect_SizeX,				// 10. 결함Size DX			// 999.99 um - 추출 결함 X축 길이
+	eCSOTRaw_Defect_SizeType,			// 6. 占쏙옙占쏙옙 Size 占쏙옙占쏙옙		// A - S/M/L/O
+	eCSOTRaw_Defect_DefectType,		// 7. 占쏙옙占쏙옙 Type			// A - N: Normal, C: Common, M: Mask
+	eCSOTRaw_Defect_Zone,				// 8. 占쏙옙占쏙옙 占쏙옙치			// A - Zone
+	eCSOTRaw_Defect_Size,				// 9. 占쏙옙占쏙옙 Size (CCD占쏙옙)	// 99999 um2 - Camera Pixel Size
+	eCSOTRaw_Defect_SizeX,				// 10. 占쏙옙占쏙옙Size DX			// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 X占쏙옙 占쏙옙占쏙옙
 
-	eCSOTRaw_Defect_SizeY,				// 11. 결함Size DY			// 999.99 um - 추출 결함 Y축 길이
-	eCSOTRaw_Defect_X,					// 12. 결함좌표 X 2			// 9999.999 mm - QMS Calculation 
-	eCSOTRaw_Defect_Y,					// 13. 결함좌표 Y 2			// 9999.999 mm
-	eCSOTRaw_Defect_PixelX,			// 14. 결함 Pixel 좌표 X	// 99999
-	eCSOTRaw_Defect_PixelY,			// 15. 결함 Pixel 좌표 Y	// 99999
+	eCSOTRaw_Defect_SizeY,				// 11. 占쏙옙占쏙옙Size DY			// 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 Y占쏙옙 占쏙옙占쏙옙
+	eCSOTRaw_Defect_X,					// 12. 占쏙옙占쏙옙占쏙옙표 X 2			// 9999.999 mm - QMS Calculation 
+	eCSOTRaw_Defect_Y,					// 13. 占쏙옙占쏙옙占쏙옙표 Y 2			// 9999.999 mm
+	eCSOTRaw_Defect_PixelX,			// 14. 占쏙옙占쏙옙 Pixel 占쏙옙표 X	// 99999
+	eCSOTRaw_Defect_PixelY,			// 15. 占쏙옙占쏙옙 Pixel 占쏙옙표 Y	// 99999
 
-	eCSOTRaw_Defect_CPResult,			// 16. CP 결과				// AAA - 0: CP 일치 무, 1: CP일치, 8: 미실시
-	eCSOTRaw_Defect_Flag,				// 17. 수정대상 Flag		// AAAAA - 0 : 수정대상 외, 1: 수정후보
-	eCSOTRaw_Defect_ImageName,			// 18. 이미지 번호			// AAAAA.A999.AAA -  Rule : " 설비ID " + " . " + " B " ( Before ) + " 連番 " + ?張子 " .AAA "
-	eCSOTRaw_Defect_ImageSizeX,		// 19. 이미지 Size X		// 9999.99 um
-	eCSOTRaw_Defect_ImageSizeY,		// 20. 이미지 Size Y		// 9999.99 um
+	eCSOTRaw_Defect_CPResult,			// 16. CP 占쏙옙占�				// AAA - 0: CP 占쏙옙치 占쏙옙, 1: CP占쏙옙치, 8: 占싱실쏙옙
+	eCSOTRaw_Defect_Flag,				// 17. 占쏙옙占쏙옙占쏙옙占� Flag		// AAAAA - 0 : 占쏙옙占쏙옙占쏙옙占� 占쏙옙, 1: 占쏙옙占쏙옙占식븝옙
+	eCSOTRaw_Defect_ImageName,			// 18. 占싱뱄옙占쏙옙 占쏙옙호			// AAAAA.A999.AAA -  Rule : " 占쏙옙占쏙옙ID " + " . " + " B " ( Before ) + " 連占쏙옙 " + ?占쏙옙占� " .AAA "
+	eCSOTRaw_Defect_ImageSizeX,		// 19. 占싱뱄옙占쏙옙 Size X		// 9999.99 um
+	eCSOTRaw_Defect_ImageSizeY,		// 20. 占싱뱄옙占쏙옙 Size Y		// 9999.99 um
 
-	// [2018/07/05 08:42:57 by jylee] related Format 변경
-	eCSOTRaw_Defect_CCDValue,			// 21. CCD 수치				// 99999
-	eCSOTRaw_Defect_CCDNum,			// 22. 결함검출 카메라 번호 // 99
-	eCSOTRaw_Defect_SliceNum,			// 23. 결함 몇번째 스캔 검출// 99
-	eCSOTRaw_Defect_REVNum,			// 24. 결함 리뷰한 카메라	// 99
-	eCSOTRaw_Defect_DefectPosGray,		// 25. 결함위치 휘도차		// 999
+	// [2018/07/05 08:42:57 by jylee] related Format 占쏙옙占쏙옙
+	eCSOTRaw_Defect_CCDValue,			// 21. CCD 占쏙옙치				// 99999
+	eCSOTRaw_Defect_CCDNum,			// 22. 占쏙옙占쌉곤옙占쏙옙 카占쌨띰옙 占쏙옙호 // 99
+	eCSOTRaw_Defect_SliceNum,			// 23. 占쏙옙占쏙옙 占쏙옙占승� 占쏙옙캔 占쏙옙占쏙옙// 99
+	eCSOTRaw_Defect_REVNum,			// 24. 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 카占쌨띰옙	// 99
+	eCSOTRaw_Defect_DefectPosGray,		// 25. 占쏙옙占쏙옙占쏙옙치 占쌍듸옙占쏙옙		// 999
 
-	eCSOTRaw_Defect_NormalPosGray,		// 26. 정상위치 휘도차		// 999
-	eCSOTRaw_Defect_Spare1,			// 27. 스페어 1
-	eCSOTRaw_Defect_Spare2				// 28. 스페어 2
+	eCSOTRaw_Defect_NormalPosGray,		// 26. 占쏙옙占쏙옙占쏙옙치 占쌍듸옙占쏙옙		// 999
+	eCSOTRaw_Defect_Spare1,			// 27. 占쏙옙占쏙옙占� 1
+	eCSOTRaw_Defect_Spare2				// 28. 占쏙옙占쏙옙占� 2
 };
 */
 
 //enum eCSOTRawElectroIndex{		// 51
-//	eCSOTRaw_Electro_Name = 0,			// 계층번호				// 51 고정
-//	eCSOTRaw_Electro_Value,			// 측정치				// +-9999.99
-//	eCSOTRaw_Electro_Spare1			// 스페어1
+//	eCSOTRaw_Electro_Name = 0,			// 占쏙옙占쏙옙占쏙옙호				// 51 占쏙옙占쏙옙
+//	eCSOTRaw_Electro_Value,			// 占쏙옙占쏙옙치				// +-9999.99
+//	eCSOTRaw_Electro_Spare1			// 占쏙옙占쏙옙占�1
 //};
 
 //enum eCSOTRawCCDIndex{			// 52
-//	eCSOTRaw_CCD_Name = 0,				// 계층번호				// 52 고정
-//	eCSOTRaw_CCD_CamNum,				// CCD Camera 번호		// AA 
-//	eCSOTRaw_CCD_AvgGrayScale,			// 평균 Gray-Scale		// 999
-//	eCSOTRaw_CCD_Spare1				// 스페어1
+//	eCSOTRaw_CCD_Name = 0,				// 占쏙옙占쏙옙占쏙옙호				// 52 占쏙옙占쏙옙
+//	eCSOTRaw_CCD_CamNum,				// CCD Camera 占쏙옙호		// AA 
+//	eCSOTRaw_CCD_AvgGrayScale,			// 占쏙옙占� Gray-Scale		// 999
+//	eCSOTRaw_CCD_Spare1				// 占쏙옙占쏙옙占�1
 //};
 
 enum eCSOTRawReviewIndex{		// 53
-	eCSOTRaw_Review_Name = 0,			// 계층번호				// 53 고정
-	eCSOTRaw_Review_PosX,				// 결함위치 X			// +-9999.999 mm - 기판 중심 
-	eCSOTRaw_Review_PosY,				// 결함위치 Y			// +-9999.999 mm
-	eCSOTRaw_Review_ImageName,			// 이미지명				// AAAAA.A999.AAA
-	eCSOTRaw_Review_SizeX,				// 이미지 Size X		// 9999.99 um
-	eCSOTRaw_Review_SizeY,				// 이미지 Size Y		// 9999.99 um
-	eCSOTRaw_Review_Spare1				// 스페어1
+	eCSOTRaw_Review_Name = 0,			// 占쏙옙占쏙옙占쏙옙호				// 53 占쏙옙占쏙옙
+	eCSOTRaw_Review_PosX,				// 占쏙옙占쏙옙占쏙옙치 X			// +-9999.999 mm - 占쏙옙占쏙옙 占쌩쏙옙 
+	eCSOTRaw_Review_PosY,				// 占쏙옙占쏙옙占쏙옙치 Y			// +-9999.999 mm
+	eCSOTRaw_Review_ImageName,			// 占싱뱄옙占쏙옙占쏙옙				// AAAAA.A999.AAA
+	eCSOTRaw_Review_SizeX,				// 占싱뱄옙占쏙옙 Size X		// 9999.99 um
+	eCSOTRaw_Review_SizeY,				// 占싱뱄옙占쏙옙 Size Y		// 9999.99 um
+	eCSOTRaw_Review_Spare1				// 占쏙옙占쏙옙占�1
 };
 
 //enum eCSOTRawAlignmentIndex{	// 55
-//	eCSOTRaw_Alignment_Name = 0,		// 계층번호				// 55 고정
-//	eCSOTRaw_Alignment_Result,			// Alignment 결과		// 99999 - G: OK, N: NG, S:미판정 
-//	eCSOTRaw_Alignment_Rotation,		// Alignment Rotation	// +-9.999999 - 기판 회전 각도
-//	eCSOTRaw_Alignment_A1ShiftX,		// A1 Shift수치 X		// +-9.999999
-//	eCSOTRaw_Alignment_A1ShiftY,		// A1 Shift수치 Y		// +-9.999999
+//	eCSOTRaw_Alignment_Name = 0,		// 占쏙옙占쏙옙占쏙옙호				// 55 占쏙옙占쏙옙
+//	eCSOTRaw_Alignment_Result,			// Alignment 占쏙옙占�		// 99999 - G: OK, N: NG, S:占쏙옙占쏙옙占쏙옙 
+//	eCSOTRaw_Alignment_Rotation,		// Alignment Rotation	// +-9.999999 - 占쏙옙占쏙옙 회占쏙옙 占쏙옙占쏙옙
+//	eCSOTRaw_Alignment_A1ShiftX,		// A1 Shift占쏙옙치 X		// +-9.999999
+//	eCSOTRaw_Alignment_A1ShiftY,		// A1 Shift占쏙옙치 Y		// +-9.999999
 //
-//	eCSOTRaw_Alignment_A2ShiftX,		// A2 Shift수치 X		// +-9.999999
-//	eCSOTRaw_Alignment_A2ShiftY,		// A2 Shift수치 Y		// +-9.999999
-//	eCSOTRaw_Alignment_A3ShiftX,		// A3 Shift수치 X		// +-9.999999
-//	eCSOTRaw_Alignment_A3ShiftY,		// A3 Shift수치 Y		// +-9.999999
-//	eCSOTRaw_Alignment_A4ShiftX,		// A4 Shift수치 X		// +-9.999999
+//	eCSOTRaw_Alignment_A2ShiftX,		// A2 Shift占쏙옙치 X		// +-9.999999
+//	eCSOTRaw_Alignment_A2ShiftY,		// A2 Shift占쏙옙치 Y		// +-9.999999
+//	eCSOTRaw_Alignment_A3ShiftX,		// A3 Shift占쏙옙치 X		// +-9.999999
+//	eCSOTRaw_Alignment_A3ShiftY,		// A3 Shift占쏙옙치 Y		// +-9.999999
+//	eCSOTRaw_Alignment_A4ShiftX,		// A4 Shift占쏙옙치 X		// +-9.999999
 //
-//	eCSOTRaw_Alignment_A4ShiftY,		// A4 Shift수치 Y		// +-9.999999
-//	eCSOTRaw_Alignment_Spare1			// 스페어1
+//	eCSOTRaw_Alignment_A4ShiftY,		// A4 Shift占쏙옙치 Y		// +-9.999999
+//	eCSOTRaw_Alignment_Spare1			// 占쏙옙占쏙옙占�1
 //};
 
 enum eCSOTRTMSRawData{	
@@ -220,7 +220,7 @@
 
 
 
-	// 공유메모리 사용시 쓸함수 CMARK=================================================================================
+	// 占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쌉쇽옙 CMARK=================================================================================
 	// Memory -> GlassResult
 	virtual void MemoryParsingFileToGlassResult(CGlassResult* pGlassResult, CDitGlassRawClient* pDitRawClient);
 	virtual int MemoryParsingReviewResultDataToFile(CGlassResult* pGlassResult,  CDitGlassRawClient* pRawMemoryMgr) ;
@@ -273,5 +273,6 @@
 	int GetCSOTDefectCode(CString strDfectType);
 	CString GetGradeType(int nJudgementType);//DefectJudgement
 	int GetCodeType(CString strValue);
+	
 
 };
\ No newline at end of file

--
Gitblit v1.9.3