SDC C-Project CF Review 프로그램
Ongoing60 #3662 CF AOI Review 전설비 알람 발생 조치
- Review History File Mapping 해제
- Review Inner History 다운 현상 예외처리 추가
- Review End 시 Review 다운 현상 예외처리 추가
4개 파일 변경됨
380 ■■■■■ 파일 변경됨
ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp 140 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp 37 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/DlgReviewHistoryTool.cpp 78 ●●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp 125 ●●●● 패치 | 보기 | raw | blame | 히스토리
ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp
@@ -15,6 +15,9 @@
CDitGlassRawServer::~CDitGlassRawServer(void)
{
    delete m_pGlassRawData;
    delete m_pGlassRawInfo;
    if (m_hMapBasicInfo!=NULL)
    {
        ::UnmapViewOfFile(m_hMapBasicInfo);
@@ -91,37 +94,40 @@
BOOL CDitGlassRawServer::CreateGlassRawInfo()
{
    if(m_hMapBasicInfo == NULL)
    {
        BOOL bCreateMem = TRUE;
        m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE
            , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO);
        if (::GetLastError() == ERROR_ALREADY_EXISTS)
        {
            m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO);
            bCreateMem = FALSE;
        }
        if (m_hMapBasicInfo)
        {
            m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo));
        }
        if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL)
        {
            if (m_hMapBasicInfo!=NULL)
            {
                ::UnmapViewOfFile(m_hMapBasicInfo);
                m_pGlassRawInfo = NULL;
            }
            m_pGlassRawInfo = NULL;
            return FALSE;
        }
//     if(m_hMapBasicInfo == NULL)
//     {
//         BOOL bCreateMem = TRUE;
//
//         m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE
//             , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO);
//
//         if (::GetLastError() == ERROR_ALREADY_EXISTS)
//         {
//             m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO);
//             bCreateMem = FALSE;
//         }
//
//         if (m_hMapBasicInfo)
//         {
//             m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo));
//         }
//
//         if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL)
//         {
//             if (m_hMapBasicInfo!=NULL)
//             {
//                 ::UnmapViewOfFile(m_hMapBasicInfo);
//                 m_pGlassRawInfo = NULL;
//             }
//             m_pGlassRawInfo = NULL;
//             return FALSE;
//         }
        //0으로 초기화
        if(bCreateMem && m_pGlassRawInfo)
        //if(bCreateMem && m_pGlassRawInfo)
        //_grmDitGlassRawInfo SemiServer;
    m_pGlassRawInfo = new _grmDitGlassRawInfo;
        if (m_pGlassRawInfo)
        {
            ZeroMemory(m_pGlassRawInfo,sizeof(_grmDitGlassRawInfo));
            
@@ -135,7 +141,7 @@
            int bytealign = m_pGlassRawInfo->m_nSizeOfGlassData%4;
        }
        
    }
    //}
    
@@ -144,41 +150,47 @@
BOOL CDitGlassRawServer::CreateGlassRawData()
{
    int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize);
    if(m_hMapGlassData == NULL)
    {
        BOOL bCreateMem = TRUE;
        m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE
            , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA);
        if (::GetLastError() == ERROR_ALREADY_EXISTS)
        {
            m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA);
            bCreateMem = FALSE;
        }
        if (m_hMapGlassData)
        {
            m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize);
        }
        if(m_hMapGlassData == NULL || m_pGlassRawData == NULL)
        {
            if (m_hMapGlassData != NULL)
            {
                ::UnmapViewOfFile(m_hMapGlassData);
                m_pGlassRawData = NULL;
            }
            m_pGlassRawData = NULL;
            return FALSE;
        }
        //0으로 초기화
        if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize);
    }
     int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize);
//
//     if(m_hMapGlassData == NULL)
//     {
//         BOOL bCreateMem = TRUE;
//
//         m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE
//             , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA);
//
//         if (::GetLastError() == ERROR_ALREADY_EXISTS)
//         {
//             m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA);
//             bCreateMem = FALSE;
//         }
//
//         if (m_hMapGlassData)
//         {
//             m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize);
//         }
//
//         if(m_hMapGlassData == NULL || m_pGlassRawData == NULL)
//         {
//             if (m_hMapGlassData != NULL)
//             {
//                 ::UnmapViewOfFile(m_hMapGlassData);
//                 m_pGlassRawData = NULL;
//             }
//             m_pGlassRawData = NULL;
//             return FALSE;
//         }
//
//         //0으로 초기화
//         if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize);
//     }
    
     //0으로 초기화
    m_pGlassRawData = new char[nGlassRawSharedSize];
     if(m_pGlassRawData)
        ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize);
    m_pGlassData  = (_grmGlassData*)&m_pGlassRawData[m_pGlassRawInfo->m_nGlassDataPoint];
    m_pBlockData  = (_grmBlockData*)&m_pGlassRawData[m_pGlassRawInfo->m_nBlockDataPoint];
    m_pCellData   = (_grmCellData*)&m_pGlassRawData[m_pGlassRawInfo->m_nCellDataPoint];
ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp
@@ -575,23 +575,34 @@
void CDlgDeffectHistroy::OnDblclkListHistoryDefect(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    int nPos = m_ctrlListDefectHistory.GetSelectionMark();
    if (nPos >= 0)
    /*< LYW 20211005 - #3662 ADD Start >*/
    try
    {
        CString strText;
        strText = m_ctrlListDefectHistory.GetItemText(nPos, 0);
        int nDefectIdx = _ttoi(strText);
        if (nDefectIdx < 0)
            return;
        LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
        //History tool 에 인덱스 번호 넘기기
        m_pDDL2P->UpdateSelectDefectInfoMap2(nDefectIdx);
        int nPos = m_ctrlListDefectHistory.GetSelectionMark();
        if (nPos >= 0)
        {
            CString strText;
            strText = m_ctrlListDefectHistory.GetItemText(nPos, 0);
            int nDefectIdx = _ttoi(strText);
            if (nDefectIdx < 0)
                return;
            //History tool 에 인덱스 번호 넘기기
            m_pDDL2P->UpdateSelectDefectInfoMap2(nDefectIdx);
        }
        *pResult = 0;
    }
    catch (...)
    {
        return;
    }
    /*< LYW 20211005 - #3662 ADD End >*/
    *pResult = 0;
}
void CDlgDeffectHistroy::OnSize(UINT nType, int cx, int cy)
ReviewSystem/ReviewSystem/DlgReviewHistoryTool.cpp
@@ -674,33 +674,44 @@
void CDlgReviewHistoryTool::OnDblclkList1()
{
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    CString strSelect, strGlassID, strStepID, strStepTime;
    int nTemp, nTemp2;
    int nidx = 0;
    /*< LYW 20211005 - #3662 ADD Start >*/
    try
    {
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
        CString strSelect, strGlassID, strStepID, strStepTime;
        int nTemp, nTemp2;
        int nidx = 0;
    nidx = m_ctrlHistoryList.GetCurSel();
        nidx = m_ctrlHistoryList.GetCurSel();
    SetSelectIndex(nidx);
    bool bSelect = false;
        SetSelectIndex(nidx);
        bool bSelect = false;
    CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0);
        CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0);
    pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex());
    SetHistoryTemp(GetSelectIndex());
    const SDefectFilter *pDefectFilter = m_pDDL2P->ISP2P_GetDefectFilter(); //taek 210213
        pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex());
        SetHistoryTemp(GetSelectIndex());
        const SDefectFilter *pDefectFilter = m_pDDL2P->ISP2P_GetDefectFilter(); //taek 210213
    if(pHistoryResult == NULL) return;
    if(pDefectFilter == NULL) return;
        if (pHistoryResult == NULL) return;
        if (pDefectFilter == NULL) return;
    //디펙 맵 표현 및 그리드 표현
    m_pDlgDefectHistory->UpdateProcessStatus(pHistoryResult); //그리드 표현
    m_pDlgDefectHistoryMap->UpdateDefectFilter(pDefectFilter);
    m_pDlgDefectHistoryMap->UpdateProcessStatus(pHistoryResult); //디펙 맵 표현
    UpdateProcess(pHistoryResult);
    SetDefectImage(GetReviewName(), m_pHistoryTemp);
    GetHistoryList(); //한번 갱신 해주고 처리하자
    m_bHistory = true;
        //디펙 맵 표현 및 그리드 표현
        m_pDlgDefectHistory->UpdateProcessStatus(pHistoryResult); //그리드 표현
        m_pDlgDefectHistoryMap->UpdateDefectFilter(pDefectFilter);
        m_pDlgDefectHistoryMap->UpdateProcessStatus(pHistoryResult); //디펙 맵 표현
        UpdateProcess(pHistoryResult);
        SetDefectImage(GetReviewName(), m_pHistoryTemp);
        GetHistoryList(); //한번 갱신 해주고 처리하자
        m_bHistory = true;
    }
    catch (...)
    {
        return;
    }
    /*< LYW 20211005 - #3662 ADD End >*/
}
@@ -828,15 +839,24 @@
void CDlgReviewHistoryTool::OnBnClickedUseDefect()
{
    /*< LYW 20211005 - #3662 ADD Start >*/
    try
    {
    // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
    BOOL bCheck = ((CButton*)GetDlgItem(IDC_USE_DEFECT))->GetCheck();
//     CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0);
//     pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex());
    SetHistoryTemp(GetSelectIndex());
    SetAllDefect(bCheck);
    m_pDlgDefectHistoryMap->SetHistoryDefect(bCheck);
    m_pDlgDefectHistoryMap->UpdateProcessStatus(m_pHistoryTemp); //디펙 맵 표현
    m_pDlgDefectHistory->UpdateProcessStatus(m_pHistoryTemp);
        BOOL bCheck = ((CButton*)GetDlgItem(IDC_USE_DEFECT))->GetCheck();
        //     CGlassResult* pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(0);
        //     pHistoryResult = m_pDDL2P->ISP2P_GetHistoryResult(GetSelectIndex());
        SetHistoryTemp(GetSelectIndex());
        SetAllDefect(bCheck);
        m_pDlgDefectHistoryMap->SetHistoryDefect(bCheck);
        m_pDlgDefectHistoryMap->UpdateProcessStatus(m_pHistoryTemp); //디펙 맵 표현
        m_pDlgDefectHistory->UpdateProcessStatus(m_pHistoryTemp);
    }
    catch (...)
    {
        return;
    }
    /*< LYW 20211005 - #3662 ADD End >*/
}
ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -3400,67 +3400,76 @@
void CSequenceProcessor_CPJT::UpdateHistoryResultFromTransferData(CGlassResult *pHistoryResult, CGlassResult* pGlassResult)
{
    if (pHistoryResult == NULL || pGlassResult == NULL) return;
    try
    {
        if (pHistoryResult == NULL || pGlassResult == NULL) return;
    CTime time = CTime::GetCurrentTime();
        CTime time = CTime::GetCurrentTime();
    CString strTime = _T("");
    strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
        CString strTime = _T("");
        strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
    // update transfer data to glass result
    pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX;
    pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY;
    pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX;
    pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY;
    pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1;
    pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2;
    pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir;
    pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate;
    pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult;
    pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir;
    pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile;
    pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult;
    pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName;
    pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID;
    pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode;
    pHistoryResult->m_strMode = pGlassResult->m_strMode;
    pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType;
    pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType;
    pHistoryResult->m_strProdID = pGlassResult->m_strProdID;
    pHistoryResult->m_strOperID = pGlassResult->m_strOperID;
    pHistoryResult->m_strLotID = pGlassResult->m_strLotID;
    pHistoryResult->m_strPPID = pGlassResult->m_strPPID;
    pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC;
    pHistoryResult->m_strJobType = pGlassResult->m_strJobType;
    pHistoryResult->m_strJobID = pGlassResult->m_strJobID;
    pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum;
    pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum;
    pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode;
    pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode;
    pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode;
    pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType;
    pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag;
    pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag;
    pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag;
    pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize;
    pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness;
    pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle;
    pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip;
    pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType;
    pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount;
    pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData;
    pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID;
    pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag;
    pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue;
    pHistoryResult->m_strReserved = pGlassResult->m_strReserved;
    pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark
    pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126
    pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID;
    pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID;
    pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName;
    pHistoryResult->m_strUnLoadingTime = strTime;
    pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult;
    pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult;
        // update transfer data to glass result
        pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX;
        pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY;
        pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX;
        pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY;
        pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1;
        pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2;
        pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir;
        pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate;
        pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult;
        pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir;
        pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile;
        pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult;
        pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName;
        pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID;
        pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode;
        pHistoryResult->m_strMode = pGlassResult->m_strMode;
        pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType;
        pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType;
        pHistoryResult->m_strProdID = pGlassResult->m_strProdID;
        pHistoryResult->m_strOperID = pGlassResult->m_strOperID;
        pHistoryResult->m_strLotID = pGlassResult->m_strLotID;
        pHistoryResult->m_strPPID = pGlassResult->m_strPPID;
        pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC;
        pHistoryResult->m_strJobType = pGlassResult->m_strJobType;
        pHistoryResult->m_strJobID = pGlassResult->m_strJobID;
        pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum;
        pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum;
        pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode;
        pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode;
        pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode;
        pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType;
        pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag;
        pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag;
        pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag;
        pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize;
        pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness;
        pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle;
        pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip;
        pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType;
        pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount;
        pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData;
        pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID;
        pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag;
        pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue;
        pHistoryResult->m_strReserved = pGlassResult->m_strReserved;
        pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark
        pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126
        pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID;
        pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID;
        pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName;
        pHistoryResult->m_strUnLoadingTime = strTime;
        pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult;
        pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult;
    }
    catch (...)
    {
        m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Review End] UpdateHistoryResultFromTransferData Error"));
        return;
    }
}
void CSequenceProcessor_CPJT::CreateResultDirectory(const CString& strGlassID, const CString& strDate)