// K_SmsTask.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "K_SmsTask.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CK_SmsTask dialog

#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_SmsLogSee.h"
#include "DLG_HZB_Export.h"
#include "DLG_Corp_Oper_Open.h"
#include "DLG_BBS_Send.h"
#include "SmsManagerDoc.h"
#include "UserView.h"
#include "DLG_CheckupSee.h"
#include "DLG_SmsTask_Modify.h"

CK_SmsTask::CK_SmsTask(CWnd* pParent /*=NULL*/)
	: CDialog(CK_SmsTask::IDD, pParent)
{
	//{{AFX_DATA_INIT(CK_SmsTask)
	m_lCorp = -1;
	m_tBegin = COleDateTime::GetCurrentTime();
	m_tEnd = COleDateTime::GetCurrentTime();
	m_lTop = -1;
	m_lStatus = -1;
	//}}AFX_DATA_INIT
	m_bInit = false;
	m_bRefresh = false;
//	m_bProcess = false;
	m_lQueryCorpID = 0;
	m_lCheckCount=0;  //ÐèÒªÉóºËµÄÊýÁ¿
}


void CK_SmsTask::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CK_SmsTask)
	DDX_Control(pDX, IDC_LIST_CORPID, m_E_CorpID);
	DDX_Control(pDX, IDC_LIST_S1, m_S_S1);
	DDX_Control(pDX, IDC_LIST_CORP, m_L_Corp);
	DDX_Control(pDX, IDC_LIST_LIST, m_wndList);
	DDX_CBIndex(pDX, IDC_LIST_CORP, m_lCorp);
	DDX_DateTimeCtrl(pDX, IDC_LIST_TBEGIN, m_tBegin);
	DDX_DateTimeCtrl(pDX, IDC_LIST_TEND, m_tEnd);
	DDX_CBIndex(pDX, IDC_LIST_TOP, m_lTop);
	DDX_CBIndex(pDX, IDC_LIST_STATUS, m_lStatus);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CK_SmsTask, CDialog)
	//{{AFX_MSG_MAP(CK_SmsTask)
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_LIST_QUERY, OnListQuery)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_LIST, OnDblclkListList)
	ON_BN_CLICKED(IDC_LIST_QUERY2, OnListQuery2)
	ON_NOTIFY(NM_RCLICK, IDC_LIST_LIST, OnRclickListList)
	//}}AFX_MSG_MAP
	ON_COMMAND(MENU_LIST_SEE      , On_User_See )
	ON_COMMAND(MENU_LIST_ADDBACK  , On_User_AddBack )
	ON_COMMAND(MENU_LIST_SENDBBS  , On_User_SendBBS )
	ON_COMMAND(MENU_LIST_CORPLIST , On_User_CorpList )
	ON_COMMAND(MENU_LIST_SMSLIST  , On_User_SmsList)
	
	ON_COMMAND(MENU_LIST_CORPOFF  , On_User_CorpOFF )
	ON_COMMAND(MENU_LIST_EXPORT   , On_User_Export )
	ON_COMMAND(MENU_LIST_COPY     , On_User_Copy )


	ON_COMMAND( MENU_SMSTASK_PASS , On_Task_Pass )
	ON_COMMAND( MENU_SMSTASK_NOPASS , On_Task_NoPass )
	ON_COMMAND( MENU_SMSTASK_STOP , On_Task_Stop )
	ON_COMMAND( MENU_SMSTASK_RESEND , On_Task_ReSend )
	
	ON_WM_TIMER()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CK_SmsTask message handlers

BOOL CK_SmsTask::ReShow(BOOL bRefresh)
{
	ShowWindow( SW_SHOW );
	if ( bRefresh || !m_bRefresh )
	{
		RefreshInfo();
	}
	return true;
}

BOOL CK_SmsTask::ReHide()
{
	ShowWindow( SW_HIDE );
	return true;
}

BOOL CK_SmsTask::RefreshInfo()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return false;
	}
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST,false) )
	{
		GetDlgItem(IDC_LIST_TBEGIN)->EnableWindow(false);
	}
	m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);

	OnListQuery(); //²éѯÉóºËÖеÄÊý¾Ý

	return true;
}

BOOL CK_SmsTask::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
	CString str;
	//È¡Çåµ¥
	if (pHead->lFuncType == SMSFUNC_PLTASKSMS_SEE)
	{
		ANS_PLTaskSms_See * pList = (ANS_PLTaskSms_See *)pFrame;
		ANS_PLTaskSms_SeeData * pData = (ANS_PLTaskSms_SeeData *)(pFrame+sizeof(ANS_PLTaskSms_See));
		//CString strTemp;
		//strTemp.Format( _T("²éѯÆóÒµ (%d/%d)") , pList->lPageCount,pList->lPageAll );
		//m_S_S1.SetWindowText( strTemp );
		//Ìí¼Óµ½List
		long lCount = m_wndList.GetItemCount();
		TCHAR szBuf[512]={0};
		CString str;
		CString strTemp;
		m_lCheckCount = 0;
		for ( int i = 0 ; i< pList->lCount;i++)
		{
			ANS_PLTaskSms_SeeData * pNewData = new ANS_PLTaskSms_SeeData;
			*pNewData = *pData;
			POSITION pos = m_ListData.AddTail(pNewData);

			//m_wndList.SetHeadings(_T("ÐòºÅ,40; Àà ÐÍ,80;״̬,50;ÆóÒµID,60;·¢ËÍÈË,70; ·¢ËͺÅÂë,120; ½ÓÊÕÈË,70; ½ÓÊÕºÅÂë,120;  Ìύʱ¼ä,150;  ·¢ËÍʱ¼ä,150;  ½ÓÊÕʱ¼ä,150;     ¶ÌÐÅÄÚÈÝ,1000;    ÐÅÏ¢ID,120;"));
			m_wndList.InsertItem( lCount+i,_itot(lCount+i+1,szBuf,10),0);

			long lIcon;
			switch(pNewData->lStatus)
			{
			case 0:
			default:
				 strTemp = _T("ÕýÔÚÉÏ´«");
				 break;
			case 1:
				strTemp = _T("´ý·¢ËÍ");
				lIcon = 0;
				break;
			case 2:
				strTemp = _T("ÉóºËÖÐ");
				lIcon = 0;
				m_lCheckCount++;
				break;
			case 3:
				strTemp = _T("ÉóºËʧ°Ü");
				lIcon = 2;
				break;
			case 4:
				strTemp = _T("ÕýÔÚ·¢ËÍ");
				lIcon = 1;
				break;
			case 5:
				strTemp = _T("Óà¶î²»×ã");
				lIcon = 2;
				break;
			case 6:
				strTemp = _T("Ç¿ÖÆÍ£Ö¹");
				lIcon = 2;
				break;
			case 7:
				strTemp = _T("·¢ËÍÍê³É");
				lIcon = 3;
				break;
			case 8:
				strTemp = _T("Óû§ÉóºË");
				lIcon = 0;
				break;
			case 9:
				strTemp = _T("Óû§ÉóºË2");  //´ËģʽÏÂÓû§ÉóºËÁ˺ó£¬ÔÙÐèÒª¹ÜÀíÔ±Éó
				lIcon = 0;
				break;
			case 10:
				strTemp = _T("Óû§ÉóºËʧ°Ü");
				lIcon = 2;
				break;
			}

			long lTemp=1;
			////0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É
			m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
			str.Format( _T("%d-%s[%s]") , pNewData->lCorpID,pNewData->szCorpName,pNewData->szCreateUser);
			m_wndList.SetItemText(lCount+i,lTemp++,str);
			strTemp.Format(_T("%d") , pNewData->lMobileCount);
			m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
			strTemp.Format(_T("%d") , pNewData->lYFMobileCount);
			m_wndList.SetItemText(lCount+i,lTemp++,strTemp);

			m_wndList.SetItemText(lCount+i,lTemp++,pNewData->szMsg);

			strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pNewData->tCreateTime.wYear,pNewData->tCreateTime.wMonth,pNewData->tCreateTime.wDay,pNewData->tCreateTime.wHour,pNewData->tCreateTime.wMinute);
			m_wndList.SetItemText(lCount+i,lTemp++,strTemp);

			COleDateTime t(pNewData->tTimer);
			if ( t.GetStatus() == COleDateTime::valid )
			{
				strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pNewData->tTimer.wYear,pNewData->tTimer.wMonth,pNewData->tTimer.wDay,pNewData->tTimer.wHour,pNewData->tTimer.wMinute);
			}
			else
			{
				strTemp =_T(" ");
			}
			m_wndList.SetItemText(lCount+i,lTemp++,strTemp);

			m_wndList.SetItemText(lCount + i, lTemp++, pNewData->szAuditResult);

			m_wndList.SetItemData(lCount+i,(DWORD)(pos) );

			pData++;
		}

		//ÐèÒªÌáÐÑ
		if (this->m_pMainFrame->m_Setup.Warning_Enable && m_pMainFrame->m_Setup.Warning_Timer > 0)
		{
			if (!m_pMainFrame->m_Setup.Warning_OnlyContent)
			{
				/*
				KillTimer(1);

				m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Close();  //Ë¢ÐÂÁË£¬Í£Ö¹±¨¾¯

#ifdef _DEBUG
				SetTimer(1, 8 * 1000, NULL);
#else
				SetTimer(1, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL);
#endif
				*/
			}
			else
			{
				KillTimer(11);  //Ë¢ÐÂÁË£¬²»Óó¬Ê±¼ì²â
				if (m_lCheckCount > 0)  //ÓÐÊý¾Ý£¬ÐèÒªÌáÐÑ
				{
					m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Checkup(_T("ÓÐÅúÁ¿ÐèÉóºË"));
				}
				else
				{
					//±¾´ÎÎÞÊý¾Ý£¬Í¬Ê±ÐèÅжÏÅúÁ¿ÉóºËÊÇ·ñÓÐÊý¾Ý£¬Èç¹ûÅúÁ¿ÉóºËҲûÊý¾Ý£¬¾Í²»ÓÃÔÙÌáÐÑÁË
					if (m_pMainFrame->m_pUserView->m_dlgCheckup.m_wndList.GetItemCount() <= 0 &&
						m_pMainFrame->m_pUserView->m_dlgTemplate.m_lCheckCount <= 0 &&
						m_pMainFrame->m_pUserView->m_dlgSignName.m_lCheckCount <= 0)
					{
						KillTimer(2);  //¹Øµôͼ±êÉÁ¶¯
						m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Close();  //ÎÞÊý¾ÝÁË£¬Í£Ö¹±¨¾¯
					}

#ifdef _DEBUG
					SetTimer(10, 8 * 1000, NULL);
#else
					SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL);  //Ï´Î×Ô¶¯Ë¢ÐÂʱ¼ä
#endif

				}


			}

		}

		return true;
	}

	if ( pHead->lFuncType == SMSFUNC_PLTASKSMS_MODIFY)  //ÐÞ¸ÄÓû§
	{
		ANS_PLTaskSms_Modify     * pSee     = (ANS_PLTaskSms_Modify *)pFrame;

		if ( pSee->bOK )
		{
			ANS_PLTaskSms_SeeData * pSeeData = NULL;
			if ( m_wndList.GetItemData(pSee->lItem) >0 )
			{
				pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(pSee->lItem));
			}
			if ( pSeeData && pSeeData->lPLTaskSmsID == pSee->lPLTaskSmsID )
			{
				pSeeData->lStatus = pSee->lStatus;
				CString strTemp;
				long lIcon;
				switch(pSee->lStatus)
				{
				case 0:
				default:
					strTemp = _T("ÕýÔÚÉÏ´«");
					break;
				case 1:
					strTemp = _T("´ý·¢ËÍ");
					lIcon = 0;
					break;
				case 2:
					strTemp = _T("ÉóºËÖÐ");
					lIcon = 0;
					break;
				case 3:
					strTemp = _T("ÉóºËʧ°Ü");
					lIcon = 2;
					break;
				case 4:
					strTemp = _T("ÕýÔÚ·¢ËÍ");
					lIcon = 1;
					break;
				case 5:
					strTemp = _T("Óà¶î²»×ã");
					lIcon = 2;
					break;
				case 6:
					strTemp = _T("Ç¿ÖÆÍ£Ö¹");
					lIcon = 2;
					break;
				case 7:
					strTemp = _T("·¢ËÍÍê³É");
					lIcon = 3;
					break;
				}

				m_wndList.SetItemText(pSee->lItem , 1 , strTemp );

			}
		}
		else
		{
			str.Format( _T("ÐÞ¸ÄÈÎÎñ״̬ʧ°Ü£º%s") , pSee->szErrMsg );
			MessageBox(str , _T("´íÎó") , MB_ICONWARNING );
		}
		return true;
	}


	if (pHead->lFuncType == SMSFUNC_PLTASKSMS_PLMODIFY)  //ÐÞ¸ÄÓû§
	{
		ANS_PLTaskSms_PLModify* pSee = (ANS_PLTaskSms_PLModify*)pFrame;
		REQ_PLTaskSms_PLModifyData * pData = (REQ_PLTaskSms_PLModifyData*)(pFrame + sizeof(ANS_PLTaskSms_PLModify));

		if (pSee->bOK)
		{
			for (int i = 0; i < pSee->lCount; i++)
			{
				if (pData[i].lCorpID > 0 && pData[i].lPLTaskSmsID > 0)
				{
					ANS_PLTaskSms_SeeData* pSeeData = NULL;
					if (m_wndList.GetItemData(pData[i].lItem) > 0)
					{
						pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(pData[i].lItem));
					}
					if (pSeeData && pSeeData->lPLTaskSmsID == pData[i].lPLTaskSmsID && pData[i].bOK)
					{
						pSeeData->lStatus = pData[i].lStatus;
						CString strTemp;
						long lIcon;
						switch (pSeeData->lStatus)
						{
						case 0:
						default:
							strTemp = _T("ÕýÔÚÉÏ´«");
							break;
						case 1:
							strTemp = _T("´ý·¢ËÍ");
							lIcon = 0;
							break;
						case 2:
							strTemp = _T("ÉóºËÖÐ");
							lIcon = 0;
							break;
						case 3:
							strTemp = _T("ÉóºËʧ°Ü");
							lIcon = 2;
							break;
						case 4:
							strTemp = _T("ÕýÔÚ·¢ËÍ");
							lIcon = 1;
							break;
						case 5:
							strTemp = _T("Óà¶î²»×ã");
							lIcon = 2;
							break;
						case 6:
							strTemp = _T("Ç¿ÖÆÍ£Ö¹");
							lIcon = 2;
							break;
						case 7:
							strTemp = _T("·¢ËÍÍê³É");
							lIcon = 3;
							break;
						}

						m_wndList.SetItemText(pData[i].lItem, 1, strTemp);

					}
				}
			}
		}
		else
		{
			str.Format(_T("ÐÞ¸ÄÈÎÎñ״̬ʧ°Ü£º%s"), pSee->szErrMsg);
			MessageBox(str, _T("´íÎó"), MB_ICONWARNING);
		}
		return true;
	}



	return false;
}

BOOL CK_SmsTask::ProcessSocket(Socket_Head *pHead)
{
	CString strTemp;
	//È¡¹ýÂËÐÅÏ¢
	if (pHead->lFuncType == SMSFUNC_CORP_NAME)
	{
		m_bRefresh = true;  //ÒѾ­Ë¢Ð¹ý
		ANS_Corp_Name     * pCorp = (ANS_Corp_Name *)pHead->pFrame;
		ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name));
		m_L_Corp.ResetContent();  //ɾ³ýÔ­ÒÑÓÐµÄÆóÒµ
		m_L_Corp.AddString( _T("ËùÓÐÆóÒµ") );
		this->Close_Corp();              //¹Ø±ÕÔ­¶ÓÁÐ
		for ( int i=0;i<pCorp->lCount;i++ )
		{
			ANS_Corp_NameData * pNewData = new ANS_Corp_NameData;
			*pNewData = *pData;
			POSITION pos = m_Corp.AddTail(pNewData);
			strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
			long lItem = m_L_Corp.AddString( strTemp );
			m_L_Corp.SetItemData( lItem , (DWORD)pos);
			pData ++;
		}
		m_L_Corp.SetCurSel(0);
		return true;
	}
	return false;
}

BOOL CK_SmsTask::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//È¡µÃ¹²ÓòÎÊý
	//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
	this->GetParent()->GetParentFrame();
	m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
	m_pSocket    = &m_pMainFrame->m_Socket;


	//³õʼ»¯List
	m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LIST) );
	m_wndList.SubClassWindow2();
	m_wndList.SetHeadings(_T("ÐòºÅ,40;״̬,80;Ìá½»Óû§,300; ºÅÂëÊý,60;ÒÑ·¢ºÅÂë,65;¶ÌÐÅÄÚÈÝ,450;Ìύʱ¼ä,150;¶¨Ê±Ê±¼ä,130;ÉóºËÀíÓÉ,150;"));
	m_wndList.SetGridLines(true);
//	m_wndList.SetImageList(&m_Image,LVSIL_SMALL);

	m_bInit = true;

	/*
	//ĬÈÏÈ¡ÉÏÔµÄÄÚÈÝ
	SYSTEMTIME t; ::GetLocalTime(&t);
	t.wDay = 1;//´Ó1ºÅÆð
	t.wMonth = t.wMonth-1;
	if ( t.wMonth <=0 )
	{
		t.wMonth = 12;
		t.wYear  = t.wYear-1;
	}
	m_tBegin.SetDate( t.wYear,t.wMonth,t.wDay );  //Æðʼ
	if ( t.wMonth == 1 ||
		 t.wMonth == 3 ||
		 t.wMonth == 5 ||
		 t.wMonth == 7 ||
		 t.wMonth == 8 ||
		 t.wMonth == 10 ||
		 t.wMonth == 12 )
	{
		 t.wDay = 31;
	}
	else
		if (t.wMonth == 2 )
			t.wDay = 28;
		else
			t.wDay = 30;
	m_tEnd.SetDate( t.wYear,t.wMonth,t.wDay );//½áÊø
	*/

	COleDateTime t=COleDateTime::GetCurrentTime();
	COleDateTime t2=t-COleDateTimeSpan(3,0,0,0);  //ĬÈϲé3ÌìÄÚÊý¾Ý
	m_tBegin = t2; //¿ªÊ¼
	m_tEnd   = t; //½áÊø

	m_lStatus=3;
	m_lTop = 1;        //ĬÈÏÏÔʾǰ200Ìõ¶ÌÐÅ

	UpdateData(false);

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CK_SmsTask::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	
	if ( m_bInit )
	{
		CRect rect;
		m_S_S1.GetWindowRect(&rect);
		m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
	}	
}

void CK_SmsTask::Close()
{
	Close_Corp();
	Close_ListData();
}

void CK_SmsTask::OnListQuery() 
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	UpdateData(true);


	if ( m_tEnd < m_tBegin )
	{
		MessageBox( _T("²éѯ½áÊøÈÕÆÚ²»ÄÜСÓÚÆðʼÈÕÆÚ£¬Çë¸ÄÕý!") , _T("´íÎó") , MB_ICONWARNING );
		return ;
	}
	REQ_PLTaskSms_See * pSee = new REQ_PLTaskSms_See;
	memset(pSee , 0 , sizeof(REQ_PLTaskSms_See));

	if ( m_lQueryCorpID )
	{
		pSee->lCorpID = m_lQueryCorpID;
		pSee->lStatus = -1;        //²éѯËùÓеļǼ
		m_lQueryCorpID = 0;
	}
	else
	{
		
		if ( m_lCorp <= 0 )  //Ñ¡ÁËËùÓÐÆóÒµ
		{
			pSee->lCorpID = -1;
		}
		else
		{
			POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
			POSITION pos2 = pos;
			ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
			if (pData)
			{
				pSee->lCorpID = pData->lCorpID;
			}
			else
			{
				return;
			}
		}
	}

	m_tBegin.GetAsSystemTime( pSee->tBegin );
	m_tEnd.GetAsSystemTime( pSee->tEnd );

	switch ( m_lTop )
	{
	case 1:
		pSee->lTop = 200;
		break;
	case 2:
		pSee->lTop = 500;
		break;
	case 3:
		pSee->lTop = 1000;
		break;
	case 4:
		pSee->lTop = 2000;
		break;
	case 5:
		pSee->lTop = 5000;
		break;
	case 0:
	default:
		pSee->lTop = -1;
		break;
	}
	pSee->lStatus =  m_lStatus-1;  //²éѯ״̬¡£

	this->Close_ListData();              //¹Ø±ÕÔ­¶ÓÁÐ
	m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
	m_wndList.DeleteAllItems();  //ÏÈɾ³ýËùÓмǼ
	m_pMainFrame->SendFrame(SMSFUNC_PLTASKSMS_SEE,(BYTE*)pSee,sizeof(REQ_PLTaskSms_See));
	m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
	return ;	
}

void CK_SmsTask::OnDblclkListList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;

	On_User_See();
}

void CK_SmsTask::OnListQuery2() 
{
	CString strTemp;
	CString strFind;
	m_E_CorpID.GetWindowText(strFind);
	if ( strFind.GetLength()<=0 )
		return ;
	long lSel   = m_L_Corp.GetCurSel();
	long lCount = m_L_Corp.GetCount();
	for ( int i=lSel+1 ; i<lCount ; i++ )
	{
		m_L_Corp.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_Corp.SetCurSel(i);
			return ;
		}
	}
	for ( i=0 ; i<lSel ; i++ )
	{
		m_L_Corp.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_Corp.SetCurSel(i);
			return ;
		}
	}

}

void CK_SmsTask::OnRclickListList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;

	ShowRMenu();
}

void CK_SmsTask::ShowRMenu()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	if (m_lQueryCorpID == -100)
		return;

	CMenu menu;
	menu.CreatePopupMenu();
	BOOL bLock = false;
	long lItem = this->GetCurrentSelected();
	//Ìí¼Ó
	if ( lItem>=0 )
	{
		//menu.AppendMenu(MF_STRING     , MENU_LIST_SEE    , _T(" ²é ¿´ ") );
		menu.AppendMenu(MF_STRING     , MENU_LIST_CORPLIST, _T(" ²éѯ´ËÆóÒµÇåµ¥ ") );
		menu.AppendMenu(MF_STRING     , MENU_LIST_SMSLIST, _T(" ²éѯÎļþÓëÄÚÈÝ "));
		menu.AppendMenu(MF_SEPARATOR );
		menu.AppendMenu(MF_STRING     , MENU_LIST_CORPOFF , _T(" ½ûÓÃ´ËÆóÒµ ") );
		menu.AppendMenu(MF_SEPARATOR );
		//menu.AppendMenu(MF_STRING     , MENU_LIST_ADDBACK, _T(" Ìí¼Óµ½ºÚÃûµ¥ ") );
		//menu.AppendMenu(MF_SEPARATOR );
		//menu.AppendMenu(MF_STRING     , MENU_LIST_SENDBBS, _T(" ·¢ËͺÚÃûµ¥ÆÁ±Î֪ͨ ") );

		ANS_PLTaskSms_SeeData * pSeeData = NULL;
		if ( m_wndList.GetItemData(lItem) >0 )
		{
			pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
		}
		if ( pSeeData )
		{
			//0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É
			switch(pSeeData->lStatus)
			{
			case 1:  //´ý·¢ËÍ
			case 2:  //ÉóºËÖÐ
			case 4:  //ÕýÔÚ·¢ËÍ
			case 5:  //Óà¶î²»×ã
			case 8:  //Óû§ÉóºË
			case 9:  //Óû§ÉóºË2
				if (pSeeData->lStatus==2)  //ÉóºËÖÐ
				{
					menu.AppendMenu(MF_STRING     , MENU_SMSTASK_PASS , _T(" Ñ¡ÖеÄÉóºËͨ¹ý ") );
					menu.AppendMenu(MF_STRING     , MENU_SMSTASK_NOPASS , _T(" Ñ¡ÖеÄÉóºËʧ°Ü ") );
					menu.AppendMenu(MF_SEPARATOR );
				}
				menu.AppendMenu(MF_STRING     , MENU_SMSTASK_STOP , _T(" Ç¿ÖÆÍ£Ö¹ÈÎÎñ ") );
				 break;
			}
			if ( m_pMainFrame->GetUserPurview(PURVIEW_FILT,false) )
			{
				switch(pSeeData->lStatus)
				{
				case 5:  //Óà¶î²»×ã
				case 6:  //Ç¿ÖÆÍ£Ö¹
				case 7:  //ÒÑ·¢ËÍÍê³É
					{
						BOOL bReSend=true;
						if ( pSeeData->lStatus==7 || pSeeData->lStatus==6 ) //·¢ËÍÍê³ÉµÄ£¬Èç¹ûÒÑ·¢ÊýÁ¿Ð¡ÓÚÈÎÎñÊýÁ¿£¬ÔÊÐíÖØÆôÈÎÎñ
						{
							if ( pSeeData->lYFMobileCount >= pSeeData->lMobileCount )
							{
								bReSend = false;
							}
						}
						if ( bReSend )
						{
							menu.AppendMenu(MF_STRING     , MENU_SMSTASK_RESEND , _T(" ÖØÆôÈÎÎñ ") );
						}
					}
					break;
				}
			}
		}
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED     , MENU_LIST_SEE    , _T(" ²é ¿´ ") );
		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED     , MENU_LIST_CORPLIST, _T(" ²éѯ´ËÆóÒµÇåµ¥ ") );
		menu.AppendMenu(MF_SEPARATOR );
		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED     , MENU_LIST_CORPOFF , _T(" ½ûÓÃ´ËÆóÒµ ") );
		menu.AppendMenu(MF_SEPARATOR );
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED     , MENU_LIST_ADDBACK, _T(" Ìí¼Óµ½ºÚÃûµ¥ ") );
		//menu.AppendMenu(MF_SEPARATOR );
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED     , MENU_LIST_SENDBBS, _T(" ·¢ËͺÚÃûµ¥ÆÁ±Î֪ͨ ") );
	}
	menu.AppendMenu(MF_SEPARATOR );
	menu.AppendMenu(MF_STRING     , MENU_LIST_COPY    , _T(" ¸´ ÖÆ ") );
	//ÏÔʾ²Ëµ¥
	POINT pt ;
	::GetCursorPos( &pt );
	//this->ClientToScreen( &pt);
	menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
	menu.DestroyMenu();
}

long CK_SmsTask::GetCurrentSelected()
{
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	if ( pos )
	{
		return m_wndList.GetNextSelectedItem(pos);
	}
	return -1;
}


void CK_SmsTask::On_Task_Pass()
{
	SmsCheckup(true);
/*
	long lRet = MessageBox( _T("ȷʵҪ½«´ËÈÎÎñÉóºË³É¹¦£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
	if ( lRet != IDYES )
		return ;

	long lItem  = this->GetCurrentSelected();
	if ( lItem<0 )
		return ;

	ANS_PLTaskSms_SeeData * pSeeData = NULL;
	if ( m_wndList.GetItemData(lItem) >0 )
	{
		pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
	}
	if ( !pSeeData )
		return ;


	REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;

	memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );

	pModify->lCorpID = pSeeData->lCorpID;
	pModify->lUserID = pSeeData->lUserID;
	pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
	pModify->lItem   = lItem;
	pModify->lOldStatus = pSeeData->lStatus;
	pModify->lStatus    = 1;  //Æô¶¯ÈÎÎñ,ÉóºË³É¹¦£¬Ï൱ÓÚÆô¶¯ÈÎÎñ
	pModify->tMaxDelayTime = pSeeData->tCreateTime;  //´´½¨Ê±¼ä
	_tcscpy(pModify->szMsg, pSeeData->szMsg);
	pModify->lNotifyMobiles = pSeeData->lNotifyMobiles;  //ÊÇ·ñÐèҪ֪ͨÊÖ»ú

	m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
	*/
}
void CK_SmsTask::On_Task_NoPass()
{
	SmsCheckup(false);
/*

	long lItem = this->GetCurrentSelected();
	if (lItem < 0)
		return;

	ANS_PLTaskSms_SeeData * pSeeData = NULL;
	if (m_wndList.GetItemData(lItem) > 0)
	{
		pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
	}
	if (!pSeeData)
		return;

	CString strReason;
	if (pSeeData->lNotifyMobiles)  //ÓÐ֪ͨºÅÂëµÄ£¬ÐèҪдʧ°ÜÔ­Òò
	{
		DLG_SmsTask_Modify dlg(this);
		dlg.SetParam(pSeeData);
		if (dlg.DoModal() != IDOK)
			return;

		strReason = dlg.m_strReason;
	}
	else
	{
		long lRet = MessageBox(_T("ȷʵҪ½«´ËÈÎÎñÉóºËʧ°Ü£¿"), _T("ÌáÎÊ"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
		if (lRet != IDYES)
			return;
	}






	REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;

	memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );

	pModify->lCorpID = pSeeData->lCorpID;
	pModify->lUserID = pSeeData->lUserID;
	pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
	pModify->lItem   = lItem;
	pModify->lOldStatus = pSeeData->lStatus;
	pModify->lStatus    = 3;  //ÉóºËʧ°Ü
	pModify->tMaxDelayTime = pSeeData->tCreateTime;  //´´½¨Ê±¼ä
	_tcscpy(pModify->szMsg, pSeeData->szMsg);
	pModify->lNotifyMobiles = pSeeData->lNotifyMobiles;  //ÊÇ·ñÐèҪ֪ͨÊÖ»ú
	_tcscpy(pModify->szReason, strReason);  //ÉóºËʧ°ÜÔ­Òò
	m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
	*/
}


void CK_SmsTask::SmsCheckup(BOOL bPass, BOOL bAllSelect)
{
	//bPass  ÊÇ·ñÉóºËͨ¹ý¡£
	//bAllSelect   ÊÇ·ñ²Ù×÷ËùÓÐÑ¡ÔñµÄ£¬·ñ-Ö»²Ù×÷Ñ¡ÔñµÄµÚÒ»Ìõ


	if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
	{
		return;
	}
	long lCount = m_wndList.GetSelectedCount();
	if (lCount <= 0)
		return;
	if (lCount > 9)
	{
		MessageBox(_T("ÿ´Î×î¶àÖ»¿ÉÒÔ²Ù×÷9Ìõ¼Ç¼£¬Çë¼õÉÙÑ¡Ôñ·¶Î§¡£"), _T("¾¯¸æ"), MB_ICONWARNING);
		return;
	}

	long lSize = sizeof(REQ_PLTaskSms_PLModify) + sizeof(REQ_PLTaskSms_PLModifyData) * lCount;
	BYTE* pCheckupSend = new BYTE[lSize]; memset(pCheckupSend, 0, lSize);
	BOOL bGetFirst = false;
	REQ_PLTaskSms_PLModify* pCheckup = (REQ_PLTaskSms_PLModify*)pCheckupSend;   //Í·
	REQ_PLTaskSms_PLModifyData* pCheckupData = (REQ_PLTaskSms_PLModifyData*)(pCheckupSend + sizeof(REQ_PLTaskSms_PLModify));
	pCheckup->lCount = lCount;
	pCheckup->lUserID = this->m_pMainFrame->m_lUserID;
	if (bPass)
		pCheckup->lStatus = 1;  //ÉóºËͨ¹ý
	else
		pCheckup->lStatus = 3;  //ÉóºËʧ°Ü
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	ANS_PLTaskSms_SeeData* pSeeData;
	COleDateTime tMaxDelayTime = COleDateTime::GetCurrentTime();  //È¡×ʱ¼äµÄ¶ÌÐÅ
	CString strMaxDelayMsg;
	long lMaxDelayCorpID = 0;
	long lMaxDelayUserID = 0;
	BOOL bNotifyMobiles = false;
	POSITION pos2;
	while (pos)
	{
		long lItem = m_wndList.GetNextSelectedItem(pos);
		pos2 = (POSITION)m_wndList.GetItemData(lItem);
		pSeeData = m_ListData.GetNext(pos2);  //È¡µÃÁбíÖеÄpos

		if (pSeeData && pSeeData->lStatus == 2)  //Ö»ÓÐ״̬Ϊ2µÄ²ÅÐèÒªÉóºË
		{
			pCheckupData->lCorpID = pSeeData->lCorpID;
			pCheckupData->lUserID = pSeeData->lUserID;
			pCheckupData->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
			pCheckupData->lStatus = bPass;
			pCheckupData->lItem = lItem;
			pCheckupData->lOldStatus = pSeeData->lStatus;
			pCheckupData->lStatus = pCheckup->lStatus;
			_tcscpy(pCheckupData->szMsg, pSeeData->szMsg);
			pCheckupData->lNotifyMobiles = pSeeData->lNotifyMobiles;  //ÊÇ·ñÐèҪ֪ͨÊÖ»ú
			if (pCheckupData->lNotifyMobiles)
				bNotifyMobiles = true;

			if (COleDateTime(pSeeData->tCreateTime) < tMaxDelayTime)  //È¡×ʱ¼äµÄ¶ÌÐÅ
			{
				tMaxDelayTime = pSeeData->tCreateTime;
				strMaxDelayMsg = pSeeData->szMsg;
				lMaxDelayCorpID = pSeeData->lCorpID;
				lMaxDelayUserID = pSeeData->lUserID;
			}
		}

		if (!bGetFirst)
		{
			bGetFirst = true;
			pCheckup->lCorpID = pSeeData->lCorpID;
		}

		if (!bAllSelect)  //Èç¹û²»ÊÇ´¦ÀíÈ«²¿Ñ¡ÔñµÄ£¬µÚÒ»ÌõºóÍ˳ö¡£
			break;

		pCheckupData++;
	}

	if (strMaxDelayMsg.GetLength() > 0)
	{
		_tcscpy(pCheckup->szDelayMsg, strMaxDelayMsg);
		pCheckup->lDelayCorpID = lMaxDelayCorpID;
		tMaxDelayTime.GetAsSystemTime(pCheckup->tMaxDelayTime);
	}

	if (bPass == false && bNotifyMobiles)
	{
		DLG_SmsTask_Modify dlg(this);
		dlg.SetParam(pSeeData,0,lCount);
		if (dlg.DoModal() != IDOK)
		{
			delete [] pCheckupSend;
			return;
		}

		_tcscpy(pCheckup->szReason, dlg.m_strReason);
	}
	else
	{
		CString strTip = _T("ȷʵҪ½«´ËÈÎÎñÉóºËʧ°Ü£¿");
		if (bPass)
		{
			strTip = _T("ȷʵҪ½«´ËÈÎÎñÉóºËͨ¹ý£¿");

		}
		if (lCount > 1)
			strTip.Append(_T("\r\n×¢Ò⣺ÄãÒÑÑ¡Ôñ¶àÌõ¼Ç¼£¬´ËΪÅúÁ¿²Ù×÷£¡"));

		long lRet = MessageBox(strTip, _T("ÌáÎÊ"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
		if (lRet != IDYES)
		{
			delete[] pCheckupSend;
			return;
		}
	}

	
	m_pMainFrame->SendFrame(SMSFUNC_PLTASKSMS_PLMODIFY, pCheckupSend, lSize);
}

void CK_SmsTask::On_Task_Stop()
{
//	long lRet = MessageBox( _T("È·ÊµÒªÇ¿ÖÆÍ£Ö¹´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
//	if ( lRet != IDYES )
//		return ;

	long lItem  = this->GetCurrentSelected();
	if ( lItem<0 )
		return ;

	ANS_PLTaskSms_SeeData * pSeeData = NULL;
	if ( m_wndList.GetItemData(lItem) >0 )
	{
		pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
	}
	if ( !pSeeData )
		return ;


	DLG_SmsTask_Modify dlg(this);
	dlg.SetParam(pSeeData,1); //Ç¿ÖÆÍ£Ö¹
	if (dlg.DoModal() != IDOK)
		return;

	CString strReason = dlg.m_strReason;

	REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;

	memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );

	pModify->lCorpID = pSeeData->lCorpID;
	pModify->lUserID = pSeeData->lUserID;
	pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
	pModify->lItem   = lItem;
	pModify->lOldStatus = pSeeData->lStatus;
	pModify->lStatus    = 6;  //Ç¿ÖÆÍ£Ö¹
	_tcscpy(pModify->szReason, strReason);//Í£Ö¹Ô­Òò

	m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
}
void CK_SmsTask::On_Task_ReSend()
{
//	long lRet = MessageBox( _T("È·ÊµÒªÖØÐÂÆô¶¯´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
//	if ( lRet != IDYES )
//		return ;

	long lItem  = this->GetCurrentSelected();
	if ( lItem<0 )
		return ;

	ANS_PLTaskSms_SeeData * pSeeData = NULL;
	if ( m_wndList.GetItemData(lItem) >0 )
	{
		pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
	}
	if ( !pSeeData )
		return ;


	DLG_SmsTask_Modify dlg(this);
	dlg.SetParam(pSeeData, 2); //ÖØÆôÈÎÎñ
	if (dlg.DoModal() != IDOK)
		return;
	CString strReason = dlg.m_strReason;

	REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;

	memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );

	pModify->lCorpID = pSeeData->lCorpID;
	pModify->lUserID = pSeeData->lUserID;
	pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
	pModify->lItem   = lItem;
	pModify->lOldStatus = pSeeData->lStatus;
	pModify->lStatus    = 1;  //ÖØÐÂÆô¶¯
	_tcscpy(pModify->szReason, strReason);//ÖØÆôÔ­Òò

	m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
}

void CK_SmsTask::On_User_See()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
	{
		return;
	}
	ANS_PLTaskSms_SeeData * pSeeData = NULL;
		long lItem = GetCurrentSelected();
		if (lItem < 0)
			return;

		if (m_wndList.GetItemData(lItem) > 0)
		{
			pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
		}
		if (!pSeeData)
			return;

	DLG_CheckupSee dlg(this);
	dlg.SetParam2(*pSeeData);
	dlg.DoModal();


}
void CK_SmsTask::On_User_AddBack()
{
/*
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_PLTaskSms_SeeData * pData = m_ListData.GetNext( pos );
	if (!pData)
		return ;


	CString strTemp;
	CString strMobile;
	CString strMobile2;
	CString strMsg;
	CString str;
	if ( pData->lSmsType == 4 )
	{
		strMobile = pData->szSendNum;
	}
	else
	{
		strMobile = pData->szRecvNum;
	}
	strMobile2 = strMobile;
#ifdef SMSMANAGER_KF
	if ( strMobile2.GetLength()>7 )
	{
		strMobile2.SetAt(4,'*');
		strMobile2.SetAt(5,'*');
		strMobile2.SetAt(6,'*');
	}
	pData->szSendNum[4]='*';pData->szSendNum[5]='*';pData->szSendNum[6]='*';
#endif
	strMsg = pData->szMsg;

	str.Format( _T("ÕæµÄÒªÌí¼ÓÒÔÏÂÄÚÈݵ½ºÚÃûµ¥:\r\nºÅÂë:%s\r\nÄÚÈÝ:%s\r\n"),strMobile2,strMsg );

	int iRet = MessageBox( str , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNO );
	if ( iRet !=IDYES )
		return ;

	REQ_Back_Add * pAdd = new REQ_Back_Add;
	memset(pAdd , 0 ,sizeof(REQ_Back_Add));
	pAdd->lCorpID = pData->lCorpID;
	pAdd->lUserID = -1;
	_tcscpy(pAdd->szMobile , strMobile );
	_stprintf( pAdd->szBZ , _T("ºǫ́Ìí¼Ó:%s") , strMsg );
	
	m_pMainFrame->SendFrame(SMSFUNC_BACK_ADD,(BYTE*)pAdd,sizeof(REQ_Back_Add));
*/
}
void CK_SmsTask::On_User_SendBBS()
{
/*
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_ListData * pData = m_ListData.GetNext( pos );
	if (!pData)
		return ;

	//ÏòÓû§·¢ËÍÏûÏ¢
	ANS_BBS_SeeData See={0};
	See.lBBSID = 0;
	See.lSCorpID = 0;  //¹ÜÀíÔ±·¢µÄ
	See.lSUserID = m_pMainFrame->m_lUserID;  //¹ÜÀíÔ±ID
	_tcscpy(See.szSCorpName,_T("¹ÜÀíÔ±"));
	_tcscpy(See.szSLoginName , m_pMainFrame->m_Setup.szUser );
	See.lRCorpID = pData->lCorpID;
	See.lRUserID = pData->lUserID;
	DLG_BBS_Send dlg(this);
	dlg.SetParam( See , 3 );
	if ( dlg.DoModal() == IDOK )
	{
		long lSize = sizeof(REQ_BBS_Send)+sizeof(ANS_BBS_SeeData);
		BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
		REQ_BBS_Send * pModify = (REQ_BBS_Send *)pModifyData;   //Í·
		ANS_BBS_SeeData * pSPData = (ANS_BBS_SeeData *)(pModifyData+sizeof(REQ_BBS_Send));
		*pSPData = dlg.GetParam();
		pModify->lItem  = lItem;
		pModify->lCount = 1;
		m_pMainFrame->SendFrame( SMSFUNC_BBS_SEND , pModifyData , lSize );
	}
	return ;
*/
}

void CK_SmsTask::On_User_Export()
{

	m_wndList.CopyToClipboard();
/*
	//m_wndList.SetHeadings(_T("ÐòºÅ,40; Àà ÐÍ,80;״̬,50;ÆóÒµID,60;·¢ËÍÈË,70; ·¢ËͺÅÂë,120; ½ÓÊÕÈË,70; ½ÓÊÕºÅÂë,120;  Ìύʱ¼ä,150;  ·¢ËÍʱ¼ä,150;  ½ÓÊÕʱ¼ä,150;  ¶¨Ê±Ê±¼ä,150;     ¶ÌÐÅÄÚÈÝ,1000;    ÐÅÏ¢ID,150;"));
	SortItem item[32]={0};
	_tcscpy(item[0].szItem,_T("Àà ÐÍ"));
	_tcscpy(item[1].szItem,_T("״̬"));
	_tcscpy(item[2].szItem,_T("ÆóÒµID"));
	_tcscpy(item[3].szItem,_T("·¢ËÍÈË"));
	_tcscpy(item[4].szItem,_T("·¢ËͺÅÂë"));
	_tcscpy(item[5].szItem,_T("½ÓÊÕÈË"));
	_tcscpy(item[6].szItem,_T("½ÓÊÕºÅÂë"));
	_tcscpy(item[7].szItem,_T("Ìύʱ¼ä"));
	_tcscpy(item[8].szItem,_T("·¢ËÍʱ¼ä"));
	_tcscpy(item[9].szItem,_T("½ÓÊÕʱ¼ä"));
	_tcscpy(item[10].szItem,_T("¶¨Ê±Ê±¼ä"));
	_tcscpy(item[11].szItem,_T("¶ÌÐÅÄÚÈÝ"));
	_tcscpy(item[12].szItem,_T("״̬±¨¸æ"));
	DLG_HZB_Export dlg(this);
	dlg.SetParam( &m_wndList );
	dlg.SetListItem(item,13,-2);
	dlg.DoModal();
*/
}
void CK_SmsTask::On_User_Copy()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	HGLOBAL hglbCopy;
	LPTSTR  lptstrCopy; 
    if (!OpenClipboard()) 
        return ;
    EmptyClipboard();

	CString str,strTemp;

	long lCol   = m_wndList.GetColumnCount();
	long lCount = m_wndList.GetSelectedItemCount();

	for ( int i=0 ; i<lCol ; i++ )
	{
		LVCOLUMN  lmn={0};
		TCHAR szBuf[256]={0};
		lmn.mask = LVCF_TEXT;
		lmn.pszText = szBuf;
		lmn.cchTextMax = sizeof(szBuf);
		m_wndList.GetColumn(i , &lmn);

		str += CString(lmn.pszText );
		str += CString(_T("\t"));

	}
	str += _T("\r\n");


	lItem = -1;
	for ( i=0 ; i<lCount ; i++ )
	{
		lItem = m_wndList.GetFirstSelectedItem(lItem);
		if ( lItem >=0 )
		{
			CString str1;
			for ( int j=0 ; j<lCol; j++ )
			{
				str1=m_wndList.GetItemText(lItem,j);
#ifdef SMSMANAGER_KF
				if ( j == 12 )
					str1 = _T("");
				
#endif
				str1.TrimLeft();str1.TrimRight();str1.Replace( _T("\t") , _T("") );str1.Replace( _T("\r") , _T("") );str1.Replace( _T("\n") , _T("") );
				strTemp.Format(_T("%s\t"),str1);
				str += strTemp;
			}
			str += _T("\r\n");

		}
	}

	hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (str.GetLength()+1)*sizeof(TCHAR));
	if (hglbCopy == NULL) 
	{ 
		CloseClipboard(); 
		return ; 
	} 
	lptstrCopy = (LPTSTR)GlobalLock(hglbCopy); 
	_tcscpy(lptstrCopy,str);
	GlobalUnlock(hglbCopy); 
#ifdef _UNICODE
	::SetClipboardData(CF_UNICODETEXT, hglbCopy);
#else
	::SetClipboardData(CF_TEXT, hglbCopy);
#endif

	CloseClipboard(); 

	return ;

}

void CK_SmsTask::Close_Corp()
{
	//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
	while (!m_Corp.IsEmpty())
	{
		ANS_Corp_NameData * pData = m_Corp.GetHead();
		m_Corp.RemoveHead();
		delete pData;
	}

}

void CK_SmsTask::Close_ListData()
{
	//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
	while (!m_ListData.IsEmpty())
	{
		ANS_PLTaskSms_SeeData * pData = m_ListData.GetHead();
		m_ListData.RemoveHead();
		delete pData;
	}

}



void CK_SmsTask::On_User_SmsList()
{
	/*
	if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
	{
		return;
	}
	*/

	long lItem = m_wndList.GetFirstSelectedItem();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_PLTaskSms_SeeData * pData = m_ListData.GetNext(pos);
	if (!pData)
		return;
	REQ_PLTaskSms_See * pSee = new REQ_PLTaskSms_See;
	memset(pSee, 0, sizeof(REQ_PLTaskSms_See));

	pSee->lCorpID = pData->lPLTaskSmsID;
	pSee->lStatus = -100;        //²éѯËùÓеļǼ
	m_lQueryCorpID = -100;

	switch (m_lTop)
	{
	case 1:
		pSee->lTop = 200;
		break;
	case 2:
		pSee->lTop = 500;
		break;
	case 3:
		pSee->lTop = 1000;
		break;
	case 4:
		pSee->lTop = 2000;
		break;
	case 5:
		pSee->lTop = 5000;
		break;
	case 0:
	default:
		pSee->lTop = -1;
		break;
	}
	this->Close_ListData();              //¹Ø±ÕÔ­¶ÓÁÐ
	m_wndList.ShowWindow(SW_HIDE); //ΪÁ˼ӿìÏÔʾËÙ¶È
	m_wndList.DeleteAllItems();  //ÏÈɾ³ýËùÓмǼ
	m_pMainFrame->SendFrame(SMSFUNC_PLTASKSMS_SEE, (BYTE*)pSee, sizeof(REQ_PLTaskSms_See));
	m_wndList.ShowWindow(SW_SHOW); //ΪÁ˼ӿìÏÔʾËÙ¶È

}

void CK_SmsTask::On_User_CorpList()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}

	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_PLTaskSms_SeeData * pData = m_ListData.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();
	/*
	m_lQueryCorpID = pData->lCorpID;
	OnListQuery();
	*/
}

void CK_SmsTask::On_User_CorpOFF()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}

	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_PLTaskSms_SeeData * pData = m_ListData.GetNext( pos );
	if (!pData)
		return ;

//	CString str;
//	str.Format( _T("ÊÇ·ñÒª½ûÓÃ´ËÆóÒµID:%d£¿\r\n½ûÓúó´ËÆóÒµ½«²»ÄܵǼ!"),pData->lCorpID );
//	if ( MessageBox(str , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2) != IDYES )
//		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Ϊ½ûÓã¬1ΪÆôÓÃ
		_tcscpy(pCorp->szBZ , dlg.m_strBZ );
		_tcscpy(pCorp->szOper , dlg.m_strOperName );

		m_pMainFrame->SendFrame(SMSFUNC_CORPOFF,(BYTE*)pCorp,sizeof(REQ_CorpOFF));
	}
}


void CK_SmsTask::OnTimer(UINT_PTR nIDEvent)
{
	CDialog::OnTimer(nIDEvent);

	if (nIDEvent == 10)  //Ë¢ÐÂÊý¾Ý
	{
		KillTimer(10);
#ifdef  _DEBUG
		SetTimer(11, 5000, NULL);  //40Ãëˢг¬Ê±
#else
		SetTimer(11, 40000, NULL);  //40Ãëˢг¬Ê±
#endif
		OnListQuery();

	}

	if (nIDEvent == 11)  //ˢг¬Ê±
	{
		KillTimer(nIDEvent);
		m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Checkup(_T("¶ÌÐÅˢг¬Ê±"));

#ifdef _DEBUG
		SetTimer(10, 8 * 1000, NULL);
#else
		SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000 /2, NULL);  //³¬Ê±ºóÔÙ´ÎË¢ÐÂ
#endif
	}

}