#include "StdAfx.h"
|
#include "MBUploadAsyncTask.h"
|
#include "event\NotifyCenter.h"
|
#include "MBTransExtendEvents.h"
|
#include "MBDocCoverMode.h"
|
|
CMBUploadAsyncTask::CMBUploadAsyncTask(void)
|
{
|
m_nPort = 0;
|
m_pTransMgr = NULL;
|
m_pOnlineEdDBMgr = NULL;
|
}
|
|
|
CMBUploadAsyncTask::~CMBUploadAsyncTask(void)
|
{
|
}
|
|
void CMBUploadAsyncTask::SetServerInfo( CString strServerIP,int nPort,CString strUserLogin,CString strUserName,CString strUserSession )
|
{
|
m_strServerIP = strServerIP;
|
m_nPort = nPort;
|
m_strUserLogin = strUserLogin;
|
m_strUserName = strUserName;
|
m_strUserSession = strUserSession;
|
}
|
|
void CMBUploadAsyncTask::SetTransMgr( CMBTransMgr *pTransMgr )
|
{
|
m_pTransMgr = pTransMgr;
|
}
|
|
void CMBUploadAsyncTask::SetOnlineEdDBMgr( CMBOnlineEdDBMgr *pOnlineEdDBMgr )
|
{
|
m_pOnlineEdDBMgr = pOnlineEdDBMgr;
|
}
|
|
//void CMBUploadAsyncTask::Sethwnd( HWND hWnd )
|
//{
|
// m_hWnd = hWnd;
|
//}
|
|
// ³õʼ»¯ÍøÅÌ·þÎñ
|
bool CMBUploadAsyncTask::InitNetDiskSvr( CMBNetDiskWebCMgr &threadNetDiskWebCMgr )
|
{
|
threadNetDiskWebCMgr.SetServerInfo( m_strServerIP,m_nPort);
|
threadNetDiskWebCMgr.SetUserInfo( m_strUserLogin,m_strUserName);
|
threadNetDiskWebCMgr.SetUserSessionID(m_strUserSession);
|
return true;
|
}
|
|
// ´´½¨Îĵµ
|
void CMBUploadAsyncTask::CreateDocTask(CMBUploadFileInfo *pUploadFileInfo)
|
{
|
CString strErrInfo;
|
CMBNetDiskWebCMgr threadNetDiskWebCMgr;
|
// Îĵµ¹ñÀàÐÍ
|
int nCabinetType = pUploadFileInfo->m_nCabinetType;
|
// ³õʼ»¯ÍøÅÌ·þÎñ
|
InitNetDiskSvr( threadNetDiskWebCMgr );
|
|
if( nCabinetType == CMBBaseCabinetObj::CABINET_UNIT || nCabinetType == CMBBaseCabinetObj::CABINET_DEPART ) // ²¿Î»»òÕßµ¥Î»Îĵµ¹ñ
|
{
|
DMSCreateDoc(threadNetDiskWebCMgr,pUploadFileInfo,strErrInfo);
|
}
|
else if( nCabinetType == CMBBaseCabinetObj::CABINET_PSN ) // ¸öÈËÎĵµ¹ñ
|
{
|
NDCreateDoc(threadNetDiskWebCMgr,pUploadFileInfo,strErrInfo);
|
}
|
}
|
|
// ±à¼Îĵµ
|
void CMBUploadAsyncTask::EditDocTask(CMBUploadFileInfo *pUploadFileInfo)
|
{
|
if( NULL == pUploadFileInfo )
|
return ;
|
|
CString strDocID,strVID,strStatus,strRetDocID;
|
int nMode = 0;
|
|
CString strErrInfo;
|
CMBNetDiskWebCMgr threadNetDiskWebCMgr;
|
// Îĵµ¹ñÀàÐÍ
|
int nCabinetType = pUploadFileInfo->m_nCabinetType;
|
// ³õʼ»¯ÍøÅÌ·þÎñ
|
InitNetDiskSvr( threadNetDiskWebCMgr );
|
|
CString strLocalPath = pUploadFileInfo->GetLocalPath();
|
CMBOnlineEdInfo *pOnlineEdInfo = m_pOnlineEdDBMgr->GetOnlineEdMgr()->GetOnlineEd2(strLocalPath);
|
if( NULL == pOnlineEdInfo )
|
return ;
|
|
strDocID = pOnlineEdInfo->m_strDocID;
|
|
if( nCabinetType == CMBBaseCabinetObj::CABINET_UNIT || nCabinetType == CMBBaseCabinetObj::CABINET_DEPART ) // ²¿Î»»òÕßµ¥Î»Îĵµ¹ñ
|
{
|
if(!DMSGetDocInfo( threadNetDiskWebCMgr,strDocID,strVID,strStatus,strErrInfo ))
|
return ;
|
if( strStatus == _T("·¢²¼") )
|
{
|
DMSUpVerDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,pOnlineEdInfo->m_strFileName,_T(""),pOnlineEdInfo->m_strSvrPath,strVID,strStatus,strRetDocID,strErrInfo);
|
// Ëø¶¨
|
if(!threadNetDiskWebCMgr.DMSLockDoc( strRetDocID,strErrInfo))
|
return ;
|
// дÈëÊý¾Ý¿â
|
m_pOnlineEdDBMgr->ReInsertOnlineEd( strDocID,strRetDocID,strErrInfo );
|
}else{
|
DMSCoverDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,pOnlineEdInfo->m_strFileName,_T(""),pOnlineEdInfo->m_strSvrPath,strErrInfo );
|
if( nMode == CMBOnlineEdInfo::UNLOCK || nMode == CMBOnlineEdInfo::SAVEUNLOCK )
|
{
|
//½â³ýËø¶¨
|
if(!threadNetDiskWebCMgr.DMSUnlockDoc( strDocID,strErrInfo))
|
return ;
|
}
|
}
|
}
|
else if( nCabinetType == CMBBaseCabinetObj::CABINET_PSN ) // ¸öÈËÎĵµ¹ñ
|
{
|
NDCoverDoc(threadNetDiskWebCMgr,pUploadFileInfo,pOnlineEdInfo->m_strDocID,pOnlineEdInfo->m_strFileName,_T(""),pOnlineEdInfo->m_strSvrPath,strErrInfo);
|
}
|
}
|
|
// ´´½¨Ä¿Â¼
|
void CMBUploadAsyncTask::CreateCatalogTask( CMBUploadFileInfo *pUploadFileInfo )
|
{
|
CString strErrInfo;
|
CMBNetDiskWebCMgr threadNetDiskWebCMgr;
|
// Îĵµ¹ñÀàÐÍ
|
int nCabinetType = pUploadFileInfo->m_nCabinetType;
|
// ³õʼ»¯ÍøÅÌ·þÎñ
|
InitNetDiskSvr( threadNetDiskWebCMgr );
|
|
if( nCabinetType == CMBBaseCabinetObj::CABINET_UNIT || nCabinetType == CMBBaseCabinetObj::CABINET_DEPART ) // ²¿Î»»òÕßµ¥Î»Îĵµ¹ñ
|
{
|
DMSCreateCatalog(threadNetDiskWebCMgr,pUploadFileInfo,strErrInfo);
|
}
|
else if( nCabinetType == CMBBaseCabinetObj::CABINET_PSN ) // ¸öÈËÎĵµ¹ñ
|
{
|
NDCreateCatalog(threadNetDiskWebCMgr,pUploadFileInfo,strErrInfo);
|
}
|
}
|
|
|
// µÃµ½ÎĵµÁбí
|
bool CMBUploadAsyncTask::DMSGetDocList2(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBSvrDiff *pSvrDiff,CString &strErrInfo)
|
{
|
CString strListXML;
|
if(!threadNetDiskWebCMgr.DMSGetDocList2(pSvrDiff->m_strCabinetID,pSvrDiff->m_strSvrPath,strListXML,strErrInfo))
|
return false;
|
|
if( strListXML.IsEmpty() )
|
return true;
|
|
if(!pSvrDiff->GetDiffMgr()->ParseXml(strListXML,strErrInfo))
|
return false;
|
|
return true;
|
}
|
|
// µÃµ½ÎĵµÁбí
|
bool CMBUploadAsyncTask::NDGetDocList2(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBSvrDiff *pSvrDiff,CString &strErrInfo)
|
{
|
CString strListXML;
|
if(!threadNetDiskWebCMgr.NDGetDocList2(pSvrDiff->m_strSvrPath,strListXML,strErrInfo))
|
return false;
|
|
if( strListXML.IsEmpty() )
|
return true;
|
|
if(!pSvrDiff->GetDiffMgr()->ParseXml(strListXML,strErrInfo))
|
return false;
|
|
return true;
|
}
|
|
// ´´½¨Í¨ÓÃĿ¼
|
bool CMBUploadAsyncTask::DMSCreateCatalog(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString &strErrInfo)
|
{
|
CString strCatalogID;
|
CString strCatalogPath;
|
// ´´½¨Ä¿Â¼Ê§°Ü
|
if(!threadNetDiskWebCMgr.DMSCreateCatalog(pUploadFileInfo->m_strCabinetID, _T(""),pUploadFileInfo->m_strServerPath, strCatalogID,strCatalogPath,strErrInfo))
|
{
|
return false;
|
}
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
// ÏòÖ÷½çÃæ·¢ËÍ´´½¨Ä¿Â¼µÄÏûÏ¢
|
NotifyUICreateCatalogEvent(pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogID,pUploadFileInfo->m_strServerPath,strCatalogPath,pUploadFileInfo->m_nCabinetType );
|
// Ôö¼Óʵʱ¼Ç¼
|
m_pTransMgr->GetHistoryTransMgr()->AddRealTimeHistoryFile(pUploadFileInfo);
|
// ÉèÖÃÀúÊ·Êý¾ÝÌõÊý
|
m_pTransMgr->IncrementHistoryRecordCount();
|
// ´Ó¶ÓÁÐÖÐɾ³ý
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue );
|
|
return true;
|
}
|
|
// ´´½¨¸öÈËĿ¼
|
bool CMBUploadAsyncTask::NDCreateCatalog(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString &strErrInfo)
|
{
|
CString strCatalogID;
|
CString strCatalogPath;
|
// ´´½¨Ä¿Â¼Ê§°Ü
|
if(!threadNetDiskWebCMgr.NDCreateCatalog(pUploadFileInfo->m_strCabinetID,pUploadFileInfo->m_strServerPath, strCatalogID,strCatalogPath,strErrInfo))
|
{
|
return false;
|
}
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
|
// ÏòÖ÷½çÃæ·¢ËÍ´´½¨Ä¿Â¼µÄÏûÏ¢
|
NotifyUICreateCatalogEvent( pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogID,pUploadFileInfo->m_strServerPath,strCatalogPath,pUploadFileInfo->m_nCabinetType );
|
// Ôö¼Óʵʱ¼Ç¼
|
m_pTransMgr->GetHistoryTransMgr()->AddRealTimeHistoryFile(pUploadFileInfo);
|
// ÉèÖÃÀúÊ·Êý¾ÝÌõÊý
|
m_pTransMgr->IncrementHistoryRecordCount();
|
// ´Ó¶ÓÁÐÖÐɾ³ý
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue );
|
return true;
|
}
|
|
// ´´½¨Í¨ÓÃÎĵµ
|
bool CMBUploadAsyncTask::DMSCreateDoc(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString &strErrInfo)
|
{
|
CString strCatalogID,strDocID,strDocName,strAttachIDList,strCatalogPath,
|
strFileType,strVID,strTip,strStatus,strRetDocID;
|
bool bIsPreArchive = false;
|
int nCoverMode = pUploadFileInfo->m_nCoverMode;
|
|
if( !pUploadFileInfo->m_strServerPath.IsEmpty() )
|
{
|
// ´´½¨Ä¿Â¼Ê§°Ü
|
if(!threadNetDiskWebCMgr.DMSCreateCatalog(pUploadFileInfo->m_strCabinetID, _T(""),pUploadFileInfo->m_strServerPath, strCatalogID,strCatalogPath,strErrInfo))
|
{
|
// ´íÎó´¦Àí
|
return false;
|
}
|
}
|
// ÅжÏÎļþ´æ²»´æÔÚ£¬²¢µÃµ½Ò»¸öÎļþÃû
|
strDocName = pUploadFileInfo->GetDocName();
|
|
///////////ÅжÏÎļþÊÇ·ñ´æÔÚ//////////////////////////
|
if(!threadNetDiskWebCMgr.DMSExistDoc( pUploadFileInfo->m_strCabinetID, strCatalogID,strDocName, strDocID,strErrInfo ))
|
{
|
// ´íÎó
|
return false;
|
}
|
/////////´æÔÚÎļþʱ
|
if( !strDocID.IsEmpty() )
|
{
|
if( CMBDocCoverMode::UPVER == nCoverMode )
|
{
|
if(!DMSGetDocInfo( threadNetDiskWebCMgr,strDocID,strVID,strStatus,strErrInfo ))
|
return false;
|
DMSUpVerDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strVID,strStatus,strRetDocID,strErrInfo);
|
}
|
else if( CMBDocCoverMode::NEW == nCoverMode )
|
{
|
DMSCreateDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
}
|
else if( CMBDocCoverMode::COVER == nCoverMode )
|
{
|
if(!DMSGetDocInfo( threadNetDiskWebCMgr,strDocID,strVID,strStatus,strErrInfo ))
|
return false;
|
if( strStatus == _T("·¢²¼") )
|
{
|
DMSUpVerDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strVID,strStatus,strRetDocID,strErrInfo);
|
}else{
|
DMSCoverDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,CStrFileUtils::GetFileName(pUploadFileInfo->GetDocName()),strCatalogID,strCatalogPath,strErrInfo );
|
}
|
}
|
else if( CMBDocCoverMode::SKIP == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
{
|
//m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
//// ÒÆ³ý
|
//pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
else if( CMBDocCoverMode::SELFDECIDE == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
{
|
//if(strCatalogPath.IsEmpty() )
|
// strTip.Format(_T("´æÔÚÏàͬµÄÎļþ'%s' "),strDocName);
|
//else
|
// strTip.Format(_T("Ŀ¼'%s'ÖдæÔÚÏàͬµÄÎļþ'%s' "),strCatalogPath,strDocName);
|
|
//GetCoverMode( strTip,nCoverMode );
|
//if( CMBDocCoverMode::NEW == nCoverMode )
|
//{
|
// DMSCreateNewVerDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
//}
|
//else if( CMBDocCoverMode::REPLACE == nCoverMode )
|
//{
|
// DMSRelaceVerDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo);
|
//}
|
//else if( CMBDocCoverMode::SKIP == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
//{
|
// m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
// // ÒÆ³ý
|
// pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
//}
|
}
|
return true;
|
}
|
// ²»´æÔÚÎļþʱ£¬´´½¨Ðµİ汾
|
DMSCreateDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
|
return true;
|
}
|
|
// ´´½¨¸öÈËÎĵµ
|
bool CMBUploadAsyncTask::NDCreateDoc(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString &strErrInfo)
|
{
|
CString strCatalogID;
|
CString strDocID,strDocName;
|
CString strCatalogPath;
|
CString strTip;
|
int nCoverMode = pUploadFileInfo->m_nCoverMode;
|
|
if( !pUploadFileInfo->m_strServerPath.IsEmpty() )
|
{
|
// ´´½¨Ä¿Â¼Ê§°Ü,Õâ¸öÎÊÌâÓÐÎÊÌâ
|
if(!threadNetDiskWebCMgr.NDCreateCatalog(pUploadFileInfo->m_strCabinetID,pUploadFileInfo->m_strServerPath, strCatalogID,strCatalogPath,strErrInfo))
|
{
|
// ´íÎó´¦Àí
|
return false;
|
}
|
}
|
// ÅжÏÎļþ´æ²»´æÔÚ£¬²¢µÃµ½Ò»¸öÎļþÃû
|
strDocName = pUploadFileInfo->GetDocName();
|
///////////ÅжÏÎļþÊÇ·ñ´æÔÚ//////////////////////////
|
if(!threadNetDiskWebCMgr.NDExistDoc(strCatalogID,strDocName, strDocID,strErrInfo ))
|
{
|
// ´íÎó
|
return false;
|
}
|
/////////´æÔÚÎļþʱ
|
if( !strDocID.IsEmpty() )
|
{
|
if( CMBDocCoverMode::COVER == nCoverMode ) // ¸²¸Ç
|
{
|
NDCoverDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo);
|
}
|
else if( CMBDocCoverMode::NEW == nCoverMode ) // ´´½¨Ð°汾
|
{
|
NDCreateDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
}
|
else if( CMBDocCoverMode::UPVER == nCoverMode )// ²»¿ÉÄܳöÏÖ
|
{
|
|
}
|
else if( CMBDocCoverMode::SKIP == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
{
|
//m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
//// ÒÆ³ý
|
//pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
else if( CMBDocCoverMode::SELFDECIDE == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
{
|
//if(strCatalogPath.IsEmpty() )
|
// strTip.Format(_T("´æÔÚÏàͬµÄÎļþ'%s' "),strDocName);
|
//else
|
// strTip.Format(_T("Ŀ¼'%s'ÖдæÔÚÏàͬµÄÎļþ'%s' "),strCatalogPath,strDocName);
|
|
//GetCoverMode( strTip,nCoverMode );
|
//if( CMBDocCoverMode::NEW == nCoverMode )
|
//{
|
// NDCreateNewVerDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
//}
|
//else if( CMBDocCoverMode::REPLACE == nCoverMode ) //
|
//{
|
// NDRelaceVerDoc(threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo);
|
//}
|
//else if( CMBDocCoverMode::SKIP == nCoverMode ) // ²»¿ÉÄܳöÏÖ
|
//{
|
// m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
// // ÒÆ³ý
|
// pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
//}
|
}
|
return true;
|
}
|
// ²»´æÔÚÎļþʱ£¬´´½¨Ðµİ汾
|
NDCreateDoc( threadNetDiskWebCMgr,pUploadFileInfo,strDocID,strDocName,strCatalogID,strCatalogPath,strErrInfo );
|
|
return true;
|
}
|
|
// ´´½¨ÎĵµµÄʼþ
|
bool CMBUploadAsyncTask::NotifyUICreateDocEvent( CString strUploadID,CString strCabinetID,CString strCatalogPath,
|
CString strCatalogID,CString strServerPath,CString strFileSvr,CString strFileID,__int64 nFileSize,CString strDocName,CString strFileName,CString strDocID,
|
CString strAttachIDList,bool bIsPreArchive,CString strFileTime,CString strMD5,CString strFileType,int nCabinetType )
|
{
|
EventCreateDoc *pEvt = new EventCreateDoc(NULL);
|
pEvt->m_strUploadID = strUploadID;
|
pEvt->m_strCabinetID = strCabinetID;
|
pEvt->m_strCatalogPath = strCatalogPath;
|
pEvt->m_strCatalogID = strCatalogID;
|
pEvt->m_strServerPath = strServerPath;
|
pEvt->m_strFileSvr = strFileSvr;
|
pEvt->m_strFileID = strFileID;
|
pEvt->m_nFileSize = nFileSize;
|
pEvt->m_strDocName = strFileName;
|
pEvt->m_strFileName = strFileName;
|
pEvt->m_strDocID = strDocID;
|
pEvt->m_strAttachIDList = strAttachIDList;
|
pEvt->m_bIsPreArchive = bIsPreArchive;
|
pEvt->m_strFileTime = strFileTime;
|
pEvt->m_strMD5 = strMD5;
|
pEvt->m_strFileType = strFileType;
|
pEvt->m_nCabinetType = nCabinetType;
|
SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
pEvt->Release();
|
return true;
|
}
|
|
// Éý°æ
|
bool CMBUploadAsyncTask::NotifyUIUpVerEvent( CString strUploadID,CString strCabinetID,CString strCatalogPath,
|
CString strCatalogID,CString strServerPath,CString strFileSvr,CString strFileID,__int64 nFileSize,CString strDocName,CString strFileName,CString strDocID,
|
CString strAttachIDList,bool bIsPreArchive,CString strFileTime,CString strMD5,CString strFileType,int nCabinetType,CString strOldDocID )
|
{
|
EventUpVerDoc *pEvt = new EventUpVerDoc(NULL);
|
pEvt->m_strUploadID = strUploadID;
|
pEvt->m_strCabinetID = strCabinetID;
|
pEvt->m_strCatalogPath = strCatalogPath;
|
pEvt->m_strCatalogID = strCatalogID;
|
pEvt->m_strServerPath = strServerPath;
|
pEvt->m_strFileSvr = strFileSvr;
|
pEvt->m_strFileID = strFileID;
|
pEvt->m_nFileSize = nFileSize;
|
pEvt->m_strDocName = strFileName;
|
pEvt->m_strFileName = strFileName;
|
pEvt->m_strDocID = strDocID;
|
pEvt->m_strAttachIDList = strAttachIDList;
|
pEvt->m_bIsPreArchive = bIsPreArchive;
|
pEvt->m_strFileTime = strFileTime;
|
pEvt->m_strMD5 = strMD5;
|
pEvt->m_strFileType = strFileType;
|
pEvt->m_nCabinetType = nCabinetType;
|
pEvt->m_strOldDocID = strOldDocID;
|
|
SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
pEvt->Release();
|
return true;
|
}
|
|
// ¸²¸Ç
|
bool CMBUploadAsyncTask::NotifyUICoverDocEvent( CString strUploadID,CString strCabinetID,CString strCatalogPath,
|
CString strCatalogID,CString strServerPath,CString strFileSvr,CString strFileID,__int64 nFileSize,CString strDocName,CString strFileName,CString strDocID,
|
CString strAttachIDList,bool bIsPreArchive,CString strFileTime,CString strMD5,CString strFileType,int nCabinetType )
|
{
|
EventCoverDoc *pEvt = new EventCoverDoc(NULL);
|
pEvt->m_strUploadID = strUploadID;
|
pEvt->m_strCabinetID = strCabinetID;
|
pEvt->m_strCatalogPath = strCatalogPath;
|
pEvt->m_strCatalogID = strCatalogID;
|
pEvt->m_strServerPath = strServerPath;
|
pEvt->m_strFileSvr = strFileSvr;
|
pEvt->m_strFileID = strFileID;
|
pEvt->m_nFileSize = nFileSize;
|
pEvt->m_strDocName = strFileName;
|
pEvt->m_strFileName = strFileName;
|
pEvt->m_strDocID = strDocID;
|
pEvt->m_strAttachIDList = strAttachIDList;
|
pEvt->m_bIsPreArchive = bIsPreArchive;
|
pEvt->m_strFileTime = strFileTime;
|
pEvt->m_strMD5 = strMD5;
|
pEvt->m_strFileType = strFileType;
|
pEvt->m_nCabinetType = nCabinetType;
|
|
SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
pEvt->Release();
|
return true;
|
}
|
|
// ´´½¨Ä¿Â¼µÄʼþ
|
bool CMBUploadAsyncTask::NotifyUICreateCatalogEvent(CString strUploadID, CString strCabinetID,CString strCatalogID,CString strSvrPath,CString strCatalogPath,int nCabinetType )
|
{
|
EventCreateCatalog *pEvt = new EventCreateCatalog(NULL);
|
pEvt->m_nCabinetType = nCabinetType;
|
pEvt->m_strUploadID = strUploadID;
|
pEvt->m_strCabinetID = strCabinetID;
|
pEvt->m_strCatalogID = strCatalogID;
|
pEvt->m_strServerPath = strSvrPath;
|
pEvt->m_strCatalogPath = strCatalogPath;
|
pEvt->m_nCabinetType = nCabinetType;
|
SNotifyCenter::getSingleton().FireEventAsync(pEvt);
|
pEvt->Release();
|
|
return true;
|
}
|
|
|
bool CMBUploadAsyncTask::DMSCreateDoc( CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString strDocID,CString strDocName,CString strCatalogID,CString strCatalogPath,CString &strErrInfo,bool bEvent )
|
{
|
CString strFileType,strAttachIDList;
|
bool bIsPreArchive = false;
|
// µÃµ½×îеÄÃû³Æ
|
while( !strDocID.IsEmpty() )
|
{
|
pUploadFileInfo->m_nFileNameIndex++;
|
strDocName = pUploadFileInfo->GetDocName();
|
if(!threadNetDiskWebCMgr.DMSExistDoc( pUploadFileInfo->m_strCabinetID,strCatalogID,strDocName, strDocID,strErrInfo ))
|
{
|
return false;
|
}
|
}
|
////////////////////////////
|
strFileType = pUploadFileInfo->GetFileType();
|
CString strFileName = CStrFileUtils::GetFileName(pUploadFileInfo->GetDocName()); // ÎļþÃû³Æ
|
CString strFileTime = CStrFileUtils::GetLocalDt();
|
pUploadFileInfo->m_strTAddTime = strFileTime;
|
|
CString strDefXml = threadNetDiskWebCMgr.GetCreateDocDefXml(pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,pUploadFileInfo->GetMD5(),_T(""),strFileTime,_T(""),strDocName,strFileName);
|
|
if(!threadNetDiskWebCMgr.DMSCreateDoc( pUploadFileInfo->m_strCabinetID,strCatalogID, strDefXml, strDocID,strAttachIDList,bIsPreArchive,strErrInfo ))
|
{
|
return false;
|
}
|
|
if(bEvent){
|
// ´´½¨Îĵµ£¬ÔÚ½çÃæÉÏ
|
NotifyUICreateDocEvent(pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogPath,
|
strCatalogID,pUploadFileInfo->m_strServerPath,pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,
|
strFileName,strFileName,strDocID,strAttachIDList,bIsPreArchive,strFileTime,pUploadFileInfo->GetMD5(),strFileType,pUploadFileInfo->m_nCabinetType );
|
// ÒÆ³ý
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
|
return true;
|
}
|
|
bool CMBUploadAsyncTask::NDCreateDoc( CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString strDocID,CString strDocName,CString strCatalogID,CString strCatalogPath,CString &strErrInfo,bool bEvent )
|
{
|
CString strFileType,strAttachIDList;
|
bool bIsPreArchive = false;
|
|
while( !strDocID.IsEmpty() )
|
{
|
pUploadFileInfo->m_nFileNameIndex++;
|
strDocName = pUploadFileInfo->GetDocName();
|
if(!threadNetDiskWebCMgr.NDExistDoc( strCatalogID,strDocName, strDocID,strErrInfo ))
|
{
|
return false;
|
}
|
}
|
//////////end ÅжÏÎļþÊÇ·ñ´æÔÚ////////////////////
|
strFileType = pUploadFileInfo->GetFileType();
|
CString strFileName = CStrFileUtils::GetFileName(pUploadFileInfo->GetDocName()); // ÎļþÃû³Æ
|
CString strFileTime = CStrFileUtils::GetLocalDt();
|
pUploadFileInfo->m_strTAddTime = strFileTime;
|
|
CString strDefXml = threadNetDiskWebCMgr.GetCreateDocDefXml(pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,pUploadFileInfo->GetMD5(),_T(""),strFileTime,_T(""),strDocName,strFileName);
|
|
if(!threadNetDiskWebCMgr.NDCreateDoc( strCatalogID, strDefXml, strDocID,strAttachIDList,strErrInfo ))
|
{
|
return false;
|
}
|
|
if( bEvent )
|
{
|
// ´´½¨Îĵµ
|
NotifyUICreateDocEvent(pUploadFileInfo->m_strID, pUploadFileInfo->m_strCabinetID,strCatalogPath,
|
strCatalogID,pUploadFileInfo->m_strServerPath,pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,
|
strFileName,strFileName,strDocID,strAttachIDList,bIsPreArchive,strFileTime,pUploadFileInfo->GetMD5(),strFileType,pUploadFileInfo->m_nCabinetType );
|
// ÒÆ³ý
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo);
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
|
return true;
|
}
|
|
bool CMBUploadAsyncTask::DMSUpVerDoc(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,
|
CString strDocID,CString strDocName,CString strCatalogID,CString strCatalogPath,CString strVID,
|
CString strStatus,CString &strRetDocID,CString &strErrInfo,bool bEvent)
|
{
|
CString strFileType,strAttachIDList;
|
|
bool bIsPreArchive = false;
|
strFileType = pUploadFileInfo->GetFileType();
|
CString strFileName = strDocName; // ÎļþÃû³Æ
|
CString strFileTime = CStrFileUtils::GetLocalDt();
|
pUploadFileInfo->m_strTAddTime = strFileTime;
|
|
CString strDefXml = threadNetDiskWebCMgr.GetCreateDocDefXml(pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,pUploadFileInfo->GetMD5(),_T(""),strFileTime,strVID,strDocName,strFileName);
|
|
if(!threadNetDiskWebCMgr.DMSCreateDoc( pUploadFileInfo->m_strCabinetID,strCatalogID, strDefXml, strRetDocID,strAttachIDList,bIsPreArchive,strErrInfo ))
|
{
|
return false;
|
}
|
|
if(bEvent)
|
{
|
// ÕâÊÇеÄÎĵµ
|
NotifyUIUpVerEvent(pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogPath,
|
strCatalogID,pUploadFileInfo->m_strServerPath,pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,
|
strFileName,strFileName,strRetDocID,strAttachIDList,bIsPreArchive,strFileTime,pUploadFileInfo->GetMD5(),strFileType,pUploadFileInfo->m_nCabinetType,strDocID );
|
// ÕâÊÇеÄÎĵµ
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo); // ÒÆµ½ÀúÊ·¼Ç¼
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
return true;
|
}
|
|
// ¸²¸Ç
|
bool CMBUploadAsyncTask::NDCoverDoc(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,
|
CString strDocID,CString strDocName,CString strCatalogID,CString strCatalogPath,CString &strErrInfo,bool bEvent)
|
{
|
CString strFileType,strAttachIDList;
|
bool bIsPreArchive = false;
|
|
strFileType = pUploadFileInfo->GetFileType();
|
CString strFileName = strDocName; // ÎļþÃû³Æ
|
CString strFileTime = CStrFileUtils::GetLocalDt();
|
pUploadFileInfo->m_strTAddTime = strFileTime;
|
|
|
CString strDefXml = threadNetDiskWebCMgr.GetNDUpdateDocDefXml(pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,pUploadFileInfo->GetMD5(),strFileTime,strFileName);
|
|
if(!threadNetDiskWebCMgr.NDUpdateDoc( strDocID,strDefXml,strErrInfo ))
|
{
|
return false;
|
}
|
|
if( bEvent ){
|
//////////////¸²¸Ç///////////
|
NotifyUICoverDocEvent(pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogPath,
|
strCatalogID,pUploadFileInfo->m_strServerPath,pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,
|
strFileName,strFileName,strDocID,strAttachIDList,bIsPreArchive,strFileTime,pUploadFileInfo->GetMD5(),strFileType,pUploadFileInfo->m_nCabinetType );
|
//////////////
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo); // ÒÆµ½ÀúÊ·¼Ç¼
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
return true;
|
}
|
|
// ¸²¸Ç
|
bool CMBUploadAsyncTask::DMSCoverDoc(CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CMBUploadFileInfo *pUploadFileInfo,CString strDocID,CString strDocName,CString strCatalogID,CString strCatalogPath,CString &strErrInfo,bool bEvent)
|
{
|
CString strFileType,strRetDocID,strAttachIDList;
|
bool bIsPreArchive = false;
|
|
strFileType = pUploadFileInfo->GetFileType();
|
CString strFileName = strDocName; // ÎļþÃû³Æ
|
CString strFileTime = CStrFileUtils::GetLocalDt();
|
pUploadFileInfo->m_strTAddTime = strFileTime;
|
|
|
CString strDefXml = threadNetDiskWebCMgr.GetDMSUpdateDocDefXml(pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,pUploadFileInfo->GetMD5(),strFileTime,strDocName,strFileName);
|
|
if(!threadNetDiskWebCMgr.DMSUpdateDoc( strDocID,strDefXml,strErrInfo ))
|
{
|
return false;
|
}
|
|
if( bEvent )
|
{
|
NotifyUICoverDocEvent(pUploadFileInfo->m_strID,pUploadFileInfo->m_strCabinetID,strCatalogPath,
|
strCatalogID,pUploadFileInfo->m_strServerPath,pUploadFileInfo->m_strFileSvr,pUploadFileInfo->m_strFileID,pUploadFileInfo->m_nFileSize,
|
strFileName,strFileName,strDocID,strAttachIDList,bIsPreArchive,strFileTime,pUploadFileInfo->GetMD5(),strFileType,pUploadFileInfo->m_nCabinetType );
|
|
//////////////
|
m_pTransMgr->AdjustUploadFileToHistory(pUploadFileInfo,strErrInfo); // ÒÆµ½ÀúÊ·¼Ç¼
|
pUploadFileInfo->SetStatus( CMBUploadFileInfo::Status_DeleteOnQueue ); // ´Ó¶ÓÁÐÖÐɾ³ý
|
}
|
return true;
|
}
|
|
bool CMBUploadAsyncTask::DMSGetDocInfo( CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CString strDocID,CString &strVID,CString &strStatus,CString &strErrInfo )
|
{
|
CString strInfoXml;
|
if(!threadNetDiskWebCMgr.DMSGetDocInfo(strDocID,strInfoXml,strErrInfo))
|
return false;
|
|
if( !ParseDocInfo( strInfoXml,strVID,strStatus ) )
|
return false;
|
|
return true;
|
}
|
|
bool CMBUploadAsyncTask::NDGetDocInfo( CMBNetDiskWebCMgr &threadNetDiskWebCMgr,CString strDocID,CString &strVID,CString &strStatus,CString &strErrInfo )
|
{
|
CString strInfoXml;
|
if(!threadNetDiskWebCMgr.NDGetDocInfo(strDocID,strInfoXml,strErrInfo))
|
return false;
|
|
if( !ParseDocInfo( strInfoXml,strVID,strStatus ) )
|
return false;
|
|
return true;
|
}
|
|
void CMBUploadAsyncTask::GetDocList2( CMBSvrDiff *pSvrDiff )
|
{
|
CString strErrInfo;
|
CMBNetDiskWebCMgr threadNetDiskWebCMgr;
|
// ³õʼ»¯ÍøÅÌ·þÎñ
|
InitNetDiskSvr( threadNetDiskWebCMgr );
|
// Îĵµ¹ñÀàÐÍ
|
int nCabinetType = pSvrDiff->m_nCabinetType;
|
if( nCabinetType == CMBBaseCabinetObj::CABINET_UNIT || nCabinetType == CMBBaseCabinetObj::CABINET_DEPART ) // ²¿Î»»òÕßµ¥Î»Îĵµ¹ñ
|
{
|
DMSGetDocList2(threadNetDiskWebCMgr,pSvrDiff,strErrInfo);
|
}
|
else if( nCabinetType == CMBBaseCabinetObj::CABINET_PSN ) // ¸öÈËÎĵµ¹ñ
|
{
|
NDGetDocList2(threadNetDiskWebCMgr,pSvrDiff,strErrInfo);
|
}
|
}
|
|
bool CMBUploadAsyncTask::ParseDocInfo( CString &strDocInfo,CString &strVID,CString &strStatus )
|
{
|
if( strDocInfo.IsEmpty() )
|
{
|
|
return true;
|
}
|
pugi::xml_document xmlDoc;
|
if (!xmlDoc.load(strDocInfo))
|
{
|
return false;
|
}
|
pugi::xml_node form = xmlDoc.child(_T("Doc"));
|
pugi::xml_node node = form;
|
//m_strCode = node.attribute(_T("Code")).value();
|
//m_strCanDownload = node.attribute(_T("CanDownload")).value();
|
//m_strName = node.child_value(_T("Name"));
|
strVID = node.attribute(_T("VID")).value();
|
strStatus = node.attribute(_T("Status")).value();
|
strStatus = strStatus.Trim();
|
//m_strVer = node.attribute(_T("Ver")).value();
|
//m_nSecretLvl = node.attribute(_T("SecretLvl")).as_int();
|
//m_strSecretName = node.attribute(_T("SecretName")).value();
|
//m_strCreatorName = node.attribute(_T("CreatorName")).value();
|
//m_strDTCreate = node.attribute(_T("DTCreate")).value();
|
//m_strModifier = node.attribute(_T("Modifier")).value();
|
//m_strModifierName = node.attribute(_T("ModifierName")).value();
|
//m_strDTModify = node.attribute(_T("DTModify")).value();
|
//m_strFileMD5 = node.attribute(_T("FileMD5")).value();
|
//m_strFileServer = node.attribute(_T("FileServer")).value();
|
//m_strFileID = node.attribute(_T("FileID")).value();
|
//m_strPdfFileID = node.attribute(_T("PdfFileID")).value();
|
//m_strSwfFileID = node.attribute(_T("SwfFileID")).value();
|
//m_strThumbFileID = node.attribute(_T("ThumbFileID")).value();
|
//m_strCanEdit = node.attribute(_T("CanEdit")).value();
|
//m_strVersion = node.attribute(_T("Version")).value();
|
//m_strPhase = node.attribute(_T("Phase")).value();
|
//m_strCanEdit = node.attribute(_T("CanEdit")).value();
|
//m_strCabinetID = node.attribute(_T("CabinetID")).value();
|
//m_strCabinetName = node.attribute(_T("CabinetName")).value();
|
//m_strCatalogID = node.attribute(_T("CatalogID")).value();
|
//m_strFileName = node.child_value(_T("FileName"));
|
//m_strCatalogPath = node.child_value(_T("CatalogPath"));
|
//m_strTags = node.child_value(_T("Tags"));
|
|
//m_strNote = node.child_value(_T("Note")); // ±¸×¢
|
//m_strDesc = node.child_value(_T("Desc")); // ÃèÊö
|
|
//m_nEvalValue = node.attribute(_T("EvalValue")).as_int(); // -- ×ÜÆÀ·Ö
|
//m_nEvalNum = node.attribute(_T("EvalNum")).as_int(); // -- ±»ÆÀ¼Û´ÎÊý
|
//m_nViewNum = node.attribute(_T("ViewNum")).as_int(); //-- ä¯ÀÀ´ÎÊý
|
//m_nDownloadNum = node.attribute(_T("DownloadNum")).as_int(); // -- ÏÂÔØ´ÎÊý
|
|
//m_strExpDate = node.attribute(_T("ExpDate")).value(); // ¨C ±£´æÆÚÏÞ£¬Îª¿Õ±íʾÓÀ¾Ã±£´æ
|
//m_strAuthor = node.attribute(_T("Author")).value(); // ¨C Îĵµ×÷ÕßÐÕÃû
|
//m_strAuthorDepart = node.attribute(_T("AuthorDepart")).value(); // ¨C Îĵµ×÷Õß²¿ÃÅ
|
|
return true;
|
}
|
|
//void CMBUploadAsyncTask::GetCoverMode( CString strTip,int &nCoverMode )
|
//{
|
// CMBDocCoverMode *pCoverMode = new CMBDocCoverMode();
|
// pCoverMode->m_strTip = strTip;
|
//
|
// SendMessage(m_hWnd,WM_DOCCOVERMODE2,(WPARAM)pCoverMode,NULL);
|
// nCoverMode = pCoverMode->m_nCoverMode;
|
// if( NULL != pCoverMode )
|
// {
|
// delete pCoverMode;
|
// pCoverMode = NULL;
|
// }
|
//}
|