SmsManager/CheckupMmsDlg.cpp

732 lines
21 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// CheckupMmsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "CheckupMmsDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckupMmsDlg dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_CheckupSee.h"
#include "SmsManagerDoc.h"
#include "UserView.h"
#include "DLG_Corp_Oper_Open.h"
#include "DLG_CheckUp_Mms_See.h"
CCheckupMmsDlg::CCheckupMmsDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCheckupMmsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckupMmsDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_bProcess = false;
m_pMmsBuf = NULL;
m_lMmsSize= 0;
m_lMmsShowType = 0;
}
void CCheckupMmsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckupMmsDlg)
DDX_Control(pDX, IDC_CHECKUP_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCheckupMmsDlg, CDialog)
//{{AFX_MSG_MAP(CCheckupMmsDlg)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_CHECKUP_LIST, OnDblclkCheckupList)
ON_NOTIFY(NM_RCLICK, IDC_CHECKUP_LIST, OnRclickCheckupList)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_CHECKUP_SEE , On_User_See )
ON_COMMAND( MENU_CHECKUP_PASS , On_User_Pass )
ON_COMMAND( MENU_CHECKUP_NOPASS , On_User_NoPass )
ON_COMMAND( MENU_CHECKUP_CORPPASS , On_User_CorpPass )
ON_COMMAND( MENU_CHECKUP_CORPNOPASS , On_User_CorpNoPass )
ON_COMMAND( MENU_CHECKUP_CORPLIST , On_User_CorpList )
ON_COMMAND( MENU_CHECKUP_CORPOFF , On_User_CorpOFF )
ON_COMMAND( MENU_CHECKUP_REFRESH , On_User_Refresh )
ON_COMMAND(MENU_CHECKUP_SPDX_REFRESH, On_User_SPDX_Refresh)
ON_COMMAND(MENU_CHECKUP_SPDX_PASS, On_User_SPDX_Pass)
ON_COMMAND(MENU_CHECKUP_SPDX_NOPASS, On_User_SPDX_NoPass)
ON_COMMAND(MENU_CHECKUP_SPDX_RESEND, On_User_SPDX_Resend)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckupMmsDlg message handlers
BOOL CCheckupMmsDlg::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CCheckupMmsDlg::RefreshInfo()
{
return RefreshInfo2(0); //ˢ<>²<EFBFBD><C2B2><EFBFBD>
}
BOOL CCheckupMmsDlg::RefreshInfo2(long lMmsType)
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return false;
}
this->Close(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_wndList.DeleteAllItems(); //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼
REQ_CheckupMms_See2 * pSee = new REQ_CheckupMms_See2; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pSee , 0 , sizeof(REQ_CheckupMms_See2));
pSee->lMmsType = lMmsType;
pSee->lCorpID = -1;
pSee->lStatus = -1;
pSee->lTopSel = -1;
m_pMainFrame->SendFrame(SMSFUNC_CHECKUPMMS_SEE2,(BYTE*)pSee,sizeof(REQ_CheckupMms_See2));
m_bProcess = true;
m_Process.SetProcessTitle(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵥..."));
m_Process.DoModal();
m_bProcess = false;
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_lMmsShowType = lMmsType; //<2F><>¼<EFBFBD><C2BC>ǰˢ<C7B0><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;
}
BOOL CCheckupMmsDlg::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CCheckupMmsDlg::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
//ȡҪ<C8A1><D2AA><EFBFBD>˵Ķ<CBB5><C4B6><EFBFBD>
if (pHead->lFuncType == SMSFUNC_CHECKUPMMS_SEE2)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
ANS_CheckupMms_See2 * pSee = (ANS_CheckupMms_See2 *)pFrame;
ANS_CheckupMms_SeeData2 * pData = (ANS_CheckupMms_SeeData2 *)(pFrame + sizeof(ANS_CheckupMms_See2));
m_lMmsShowType = pSee->lMmsType; //<2F><>¼<EFBFBD><C2BC>ǰˢ<C7B0><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndList.DeleteAllColumns();
if (pSee->lMmsType == 0 ) //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><>ҵID,80; <20>ύʱ<E1BDBB><CAB1>,160;<3B><><EFBFBD>Ŵ<EFBFBD>С,100; <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>,250;"));
else
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><>ҵID,80; <20>ύʱ<E1BDBB><CAB1>,160;<3B><><EFBFBD>Ŵ<EFBFBD>С,100; <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>,250; ״̬,100; <20><>ƵID,200;<3B><EFBFBD><E1BDBB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,160; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,160;<3B>ƶ<EFBFBD>״̬,100;<3B>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,160;<3B>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,160;<3B><>ͨ״̬,100;<3B><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,160;<3B><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,160;<3B><><EFBFBD><EFBFBD>״̬,100;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,160;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,160;"));
TCHAR Buf[512];
long lCount = m_wndList.GetItemCount();
for (int i = 0; i < pSee->lCount; i++)
{
ANS_CheckupMms_SeeData2 * pNewData = new ANS_CheckupMms_SeeData2;
*pNewData = *pData;
POSITION pos = m_Checkup.AddTail(pNewData);
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><>ҵID,80; <20>ύʱ<E1BDBB><CAB1>,150;<3B><><EFBFBD>Ŵ<EFBFBD>С,60; <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>,200;"));
_stprintf(Buf, _T("%d"), lCount + i + 1);
m_wndList.InsertItem(lCount + i, Buf, 0);
m_wndList.SetItemData(lCount + i, (DWORD_PTR)pos); //<2F><>Pos
int iTemp = 1;
m_wndList.SetItemText(lCount + i, iTemp++, _itot(pData->lCorpID, Buf, 10));
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->tSubTime.wYear, pData->tSubTime.wMonth, pData->tSubTime.wDay, pData->tSubTime.wHour, pData->tSubTime.wMinute);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
_stprintf(Buf, _T("%.2fk"), (float)pData->lmmSize / 1024.0f);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
m_wndList.SetItemText(lCount + i, iTemp++, pData->szTitle);
if (pSee->lMmsType == 1) //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
{
m_wndList.SetItemText(lCount + i, iTemp++, GetStatus(pData->Audit_Status));
m_wndList.SetItemText(lCount + i, iTemp++, pData->Audit_SubmitID);
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->Audit_SubTime.wYear, pData->Audit_SubTime.wMonth, pData->Audit_SubTime.wDay, pData->Audit_SubTime.wHour, pData->Audit_SubTime.wMinute);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
m_wndList.SetItemText(lCount + i, iTemp++, pData->Audit_Opinion);
m_wndList.SetItemText(lCount + i, iTemp++, GetStatus(pData->Audit_Cmcc_Status));
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->Audit_Cmcc_Time.wYear, pData->Audit_Cmcc_Time.wMonth, pData->Audit_Cmcc_Time.wDay, pData->Audit_Cmcc_Time.wHour, pData->Audit_Cmcc_Time.wMinute);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
m_wndList.SetItemText(lCount + i, iTemp++, pData->Audit_Cmcc_Opinion);
m_wndList.SetItemText(lCount + i, iTemp++, GetStatus(pData->Audit_Unicom_Status));
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->Audit_Unicom_Time.wYear, pData->Audit_Unicom_Time.wMonth, pData->Audit_Unicom_Time.wDay, pData->Audit_Unicom_Time.wHour, pData->Audit_Unicom_Time.wMinute);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
m_wndList.SetItemText(lCount + i, iTemp++, pData->Audit_Unicom_Opinion);
m_wndList.SetItemText(lCount + i, iTemp++, GetStatus(pData->Audit_Telcom_Status));
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->Audit_Telcom_Time.wYear, pData->Audit_Telcom_Time.wMonth, pData->Audit_Telcom_Time.wDay, pData->Audit_Telcom_Time.wHour, pData->Audit_Telcom_Time.wMinute);
m_wndList.SetItemText(lCount + i, iTemp++, Buf);
m_wndList.SetItemText(lCount + i, iTemp++, pData->Audit_Telcom_Opinion);
}
pData++;
}
if (m_bProcess) //<2F>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
m_Process.SetProcess(pSee->lPageAll, pSee->lPageCount);
}
return true;
}
//<2F><><EFBFBD>˶<EFBFBD><CBB6>ţ<EFBFBD><C5A3><EFBFBD><E0B5B1>ɾ<EFBFBD><C9BE>
if (pHead->lFuncType == SMSFUNC_CHECKUPMMS)
{
ANS_CheckupMms * pDel = (ANS_CheckupMms *)pFrame;
ANS_CheckupMmsData * pDelData = (ANS_CheckupMmsData *)(pFrame+sizeof(ANS_CheckupMms));
POSITION pos,pos2;
ANS_CheckupMms_SeeData2 * pCheckupData;
if (pDel->Audit_Operation <= 0 && pDel->Audit_Type <= 0)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
if (pDel->bAll)
{
RefreshInfo(); //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
}
else
{
m_wndList.ShowWindow(SW_HIDE); //<2F>ӿ<EFBFBD><D3BF>ٶ<EFBFBD>
for (int i = pDel->lCount - 1; i >= 0; i--)
{
if (pDelData[i].lFileID) //<2F><><EFBFBD>˳ɹ<CBB3>
{
pos = (POSITION)m_wndList.GetItemData(pDelData[i].lItem);
pos2 = pos;
pCheckupData = m_Checkup.GetNext(pos);
if (pCheckupData->lFileID == pDelData[i].lFileID) //ID<49><44>ͬ<EFBFBD>IJſ<C4B2>ɾ<EFBFBD><C9BE>
{
delete pCheckupData; //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_Checkup.RemoveAt(pos2); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
m_wndList.DeleteItem(pDelData[i].lItem); //<2F><>ListCtrl<72><6C>ɾ<EFBFBD><C9BE>
}
}
}
m_wndList.ShowWindow(SW_SHOW); //<2F>ӿ<EFBFBD><D3BF>ٶ<EFBFBD>
}
}
else
{
//<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
RefreshInfo2(m_lMmsShowType); //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
}
return true;
}
//ȡ<><C8A1><EFBFBD><EFBFBD>
if (pHead->lFuncType == SMSFUNC_MMS_GETFILE2)
{
ANS_REQ_Mms_GetFile2 * pGet = (ANS_REQ_Mms_GetFile2 *)pFrame;
BYTE * pData = (BYTE *)(pFrame+sizeof(ANS_REQ_Mms_GetFile2));
if ( pGet->lStatus <=0 )
{
CString str;
str.Format(_T("ȡ<EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%d") , pGet->lStatus );
MessageBox(str , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
if ( m_bProcess ) //<2F>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
m_Process.SetProcess( 1 , 1 );
}
if (m_pMmsBuf )
{
delete m_pMmsBuf;
m_pMmsBuf = NULL;
m_lMmsSize= 0;
}
}
else
{
if ( pGet->lDownSize == pGet->lSize ) //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
{
if (m_pMmsBuf )
{
delete m_pMmsBuf;
m_pMmsBuf = NULL;
m_lMmsSize= 0;
}
m_lMmsSize = pGet->lAllSize;
m_pMmsBuf = new BYTE[m_lMmsSize];
memset(m_pMmsBuf , 0 , m_lMmsSize );
}
memcpy(m_pMmsBuf+(pGet->lDownSize-pGet->lSize) ,pData, pGet->lSize );
if ( m_bProcess ) //<2F>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
m_Process.SetProcess( pGet->lAllSize , pGet->lDownSize );
}
if ( pGet->lAllSize == pGet->lDownSize &&
m_pMmsBuf && m_lMmsSize>0 )
{
DLG_CheckUp_Mms_See dlg(this);
dlg.SetParam(*pGet , m_pMmsBuf , m_lMmsSize,this->m_pMainFrame );
dlg.DoModal();
}
}
return true;
}
return false;
}
BOOL CCheckupMmsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
long l= sizeof(Socket_Head);
long l2 = sizeof(REQ_Login);
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CHECKUP) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><>ҵID,80; <20>ύʱ<E1BDBB><CAB1>,150;<3B><><EFBFBD>Ŵ<EFBFBD>С,80; <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>,200;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCheckupMmsDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
void CCheckupMmsDlg::Close()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Checkup.IsEmpty())
{
ANS_CheckupMms_SeeData2 * pData = m_Checkup.GetHead();
m_Checkup.RemoveHead();
delete pData;
}
if (m_pMmsBuf )
{
delete m_pMmsBuf;
m_pMmsBuf = NULL;
m_lMmsSize= 0;
}
}
void CCheckupMmsDlg::OnDblclkCheckupList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CCheckupMmsDlg::OnRclickCheckupList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CCheckupMmsDlg::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
bLock = isLockItem( lItem , false ); //ȡ<><C8A1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ANS_CheckupMms_SeeData2 * pData = NULL;
if (lItem >= 0)
{
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
pData = m_Checkup.GetNext(pos);
}
if (m_lMmsShowType == 0) //<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
{
//<2F>޸<EFBFBD>
if (lItem >= 0 && !bLock)
{
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SEE, _T(" <20><> <20><> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_PASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_NOPASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPNOPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
if (m_pMainFrame->GetUserPurview(PURVIEW_LIST, false) && !m_pMainFrame->m_bSOS) //<2F>в<EFBFBD>ѯ<EFBFBD><EFBFBD>IJ<EFBFBD><C4B2>д<EFBFBD>Ȩ<EFBFBD><C8A8>
{
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>"));
}
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ "));
}
else
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_SEE, _T(" <20><> <20><> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_PASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_NOPASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPNOPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>"));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ "));
}
menu.AppendMenu(MF_SEPARATOR);
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING, MENU_CHECKUP_REFRESH, _T(" ˢ<><CBA2>_<EFBFBD><5F><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SPDX_REFRESH, _T(" ˢ<><CBA2>_<EFBFBD><5F>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
}
if (m_lMmsShowType == 1) //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
{
//<2F>޸<EFBFBD>
if (lItem >= 0 && !bLock)
{
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SEE, _T(" <20><> <20><> "));
menu.AppendMenu(MF_SEPARATOR);
if (pData && pData->Audit_Status!=12 )
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SPDX_PASS, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
if (pData && pData->Audit_Status != 13)
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SPDX_NOPASS, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SPDX_RESEND, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
if (m_pMainFrame->GetUserPurview(PURVIEW_LIST, false) && !m_pMainFrame->m_bSOS) //<2F>в<EFBFBD>ѯ<EFBFBD><EFBFBD>IJ<EFBFBD><C4B2>д<EFBFBD>Ȩ<EFBFBD><C8A8>
{
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>"));
}
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ "));
}
else
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_SEE, _T(" <20><> <20><> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_SPDX_PASS, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_SPDX_NOPASS, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_SPDX_RESEND, _T(" ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>"));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ "));
}
menu.AppendMenu(MF_SEPARATOR);
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING, MENU_CHECKUP_REFRESH, _T(" ˢ<><CBA2>_<EFBFBD><5F><EFBFBD><EFBFBD> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SPDX_REFRESH, _T(" ˢ<><CBA2>_<EFBFBD><5F>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD> "));
}
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
void CCheckupMmsDlg::On_User_See()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_CheckupMms_SeeData2 * pData = m_Checkup.GetNext( pos );
if (pData)
{
if (m_pMmsBuf )
{
delete m_pMmsBuf;
m_pMmsBuf = NULL;
m_lMmsSize= 0;
}
REQ_Mms_GetFile * pGet = new REQ_Mms_GetFile;
memset(pGet , 0 , sizeof(REQ_Mms_GetFile));
pGet->lCorpID = pData->lCorpID;
pGet->lUserID = pData->lUserID;
pGet->lFileID = pData->lFileID;
m_pMainFrame->SendFrame(SMSFUNC_MMS_GETFILE2 , (BYTE*)pGet , sizeof(REQ_Mms_GetFile) );
m_bProcess = true;
m_Process.SetProcessTitle(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."));
m_Process.DoModal();
m_bProcess = false;
if ( m_pMmsBuf && m_lMmsSize>0 )
{
int i=0;
}
}
}
void CCheckupMmsDlg::On_User_Pass()
{
SmsCheckup( true ,false);
}
void CCheckupMmsDlg::On_User_NoPass()
{
SmsCheckup( false,false );
}
void CCheckupMmsDlg::On_User_CorpPass()
{
SmsCheckup( true,true );
}
void CCheckupMmsDlg::On_User_CorpNoPass()
{
SmsCheckup( false,true );
}
void CCheckupMmsDlg::On_User_CorpList()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_CheckupMms_SeeData2 * pData = m_Checkup.GetNext( pos );
if (!pData)
return ;
this->m_pMainFrame->ShowFuncDlg( FUNC_LIST );
this->m_pMainFrame->m_pUserView->m_dlgList.m_lQueryCorpID = pData->lCorpID;
this->m_pMainFrame->m_pUserView->m_dlgList.OnListQuery();
}
void CCheckupMmsDlg::On_User_CorpOFF()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_CheckupMms_SeeData2 * pData = m_Checkup.GetNext( pos );
if (!pData)
return ;
ANS_Corp_SeeData data={0};
data.lCorpID = pData->lCorpID;
DLG_Corp_Oper_Open dlg(this);
dlg.SetParam(&data,false,this->m_pMainFrame->m_Setup.szUser);
if ( dlg.DoModal() == IDOK )
{
REQ_CorpOFF * pCorp = new REQ_CorpOFF;memset(pCorp,0,sizeof(REQ_CorpOFF));
pCorp->lCorpID = pData->lCorpID;
pCorp->lStatus = 0; //0Ϊ<30><CEAA><EFBFBD>ã<EFBFBD><31><CEAA><EFBFBD><EFBFBD>
_tcscpy(pCorp->szOper , dlg.m_strOperName );
_tcscpy(pCorp->szBZ , dlg.m_strBZ );
m_pMainFrame->SendFrame(SMSFUNC_CORPOFF,(BYTE*)pCorp,sizeof(REQ_CorpOFF));
}
}
void CCheckupMmsDlg::On_User_Refresh()
{
RefreshInfo();
}
long CCheckupMmsDlg::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CCheckupMmsDlg::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 1 );
else
m_wndList.SetIconIndex( lItem , 0 );
}
BOOL CCheckupMmsDlg::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
if ( b && bShowWarning )
{
MessageBox( _T("<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONINFORMATION );
}
return b;
}
void CCheckupMmsDlg::SmsCheckup(BOOL bPass,BOOL bAll, long Audit_Operation, long Audit_Type)
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_CheckupMms)+sizeof(ANS_CheckupMmsData)*lCount;
BYTE * pCheckupSend = new BYTE[lSize];memset(pCheckupSend,0,lSize);
BOOL bGetFirst=false;
REQ_CheckupMms * pCheckup = (REQ_CheckupMms *)pCheckupSend; //ͷ
ANS_CheckupMmsData * pCheckupData = (ANS_CheckupMmsData *)(pCheckupSend+sizeof(REQ_CheckupMms));
pCheckup->lCount = lCount;
pCheckup->bAll = bAll;
if (Audit_Operation > 0 && Audit_Type > 0)
{
pCheckup->Audit_Operation = Audit_Operation;
pCheckup->Audit_Type = Audit_Type;
}
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
ANS_CheckupMms_SeeData2 * pSeeData;
COleDateTime tMaxDelayTime = COleDateTime::GetCurrentTime(); //ȡ<>ʱ<EEB3A4><CAB1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
CString strMaxDelayMsg;
long lMaxDelayCorpID = 0;
long lMaxDelayUserID = 0;
POSITION pos2;
while(pos)
{
pCheckupData->bPass = bPass;
pCheckupData->lItem = m_wndList.GetNextSelectedItem(pos);
pos2 = (POSITION)m_wndList.GetItemData(pCheckupData->lItem);
pSeeData = m_Checkup.GetNext(pos2); //ȡ<><C8A1><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD>pos
pCheckupData->lFileID = pSeeData->lFileID;
if (Audit_Operation > 0 && Audit_Type > 0)
pCheckupData->Audit_ID = pSeeData->Audit_ID;
if (COleDateTime(pSeeData->tSubTime) < tMaxDelayTime) //ȡ<>ʱ<EEB3A4><CAB1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
{
tMaxDelayTime = pSeeData->tSubTime;
strMaxDelayMsg = pSeeData->szTitle;
lMaxDelayCorpID = pSeeData->lCorpID;
lMaxDelayUserID = pSeeData->lUserID;
}
if ( !bGetFirst )
{
bGetFirst = true;
pCheckup->bPass = bPass;
pCheckup->lCorpID = pSeeData->lCorpID;
_tcscpy(pCheckup->szTitle , pSeeData->szTitle );
if ( bAll )
{
pCheckup->bAll = true;
break;
}
}
pCheckupData ++;
}
if (strMaxDelayMsg.GetLength() > 0)
{
_tcscpy(pCheckup->szTitle, strMaxDelayMsg);
pCheckup->lCorpID = lMaxDelayCorpID;
}
tMaxDelayTime.GetAsSystemTime(pCheckup->tMaxDelayTime);
m_pMainFrame->SendFrame( SMSFUNC_CHECKUPMMS , pCheckupSend , lSize );
}
void CCheckupMmsDlg::On_User_SPDX_Refresh()
{
RefreshInfo2(1); //ˢ<><CBA2><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
}
void CCheckupMmsDlg::On_User_SPDX_Pass()
{
SmsCheckup(false, false, 1, 1); //1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>1-<2D><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3>
}
void CCheckupMmsDlg::On_User_SPDX_NoPass()
{
SmsCheckup(false, false,1,2); //1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>2-<2D><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
}
void CCheckupMmsDlg::On_User_SPDX_Resend()
{
SmsCheckup(false, false, 1, 3); //1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>1-<2D><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CString CCheckupMmsDlg::GetStatus(long lStatus)
{
CString str;
switch (lStatus)
{
case 0:
str = _T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
case 10:
str = _T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
case 11:
str = _T("<EFBFBD>ύʧ<EFBFBD><EFBFBD>");
break;
case 12:
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>");
break;
case 13:
str = _T("<EFBFBD>ܾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
default:
str = _T("δ֪״̬");
break;
}
return str;
}