| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #include "StdAfx.h"
- #include "SItemAgenStateTimeDetail.h"
- #include <atltime.h>
- CSItemAgenStateTimeDetail::CSItemAgenStateTimeDetail(UINT AgentId):m_AgentID(AgentId),m_CurrState(AGENT_STATE_UNKNOWN)
- {
-
- }
- CSItemAgenStateTimeDetail::~CSItemAgenStateTimeDetail(void)
- {
- }
- void CSItemAgenStateTimeDetail::onSEvent(REP_EVENT EvtType, PARAM Param)
- {
- switch(EvtType)
- {
- case REP_EVENT_LOGIN:
- break;
- case REP_EVENT_LOGOUT:
- __OnAgentLogout();
- break;
- case REP_EVENT_STATE:
- __OnAgentState(Param);
- break;
- }
- }
- void CSItemAgenStateTimeDetail::__OnAgentLogin()
- {
-
- }
- void CSItemAgenStateTimeDetail::__OnAgentLogout()
- {
- __ProcStateEnd(m_CurrState);
- }
- void CSItemAgenStateTimeDetail::__OnAgentState( PARAM Param)
- {
- T_EvtStatus* pStatus = (T_EvtStatus*)Param;
- ASSERT(pStatus != NULL);
- if(pStatus == NULL)
- return;
- if(!pStatus->StartFlag) return;
-
- __ProcStateEnd(m_CurrState);
- switch(pStatus->State)
- {
- case AGENT_STATE_FREE:
- {
- __ProcStateStart(AGENT_STATE_FREE);
- }
- break;
- case AGENT_STATE_BUSY:
- {
- __ProcStateStart(AGENT_STATE_BUSY);
- }
- break;
- case AGENT_STATE_POST_PROCESSING:
- {
- __ProcStateStart(AGENT_STATE_POST_PROCESSING);
- }
- break;
- case AGENT_STATE_REPOSE:
- {
- __ProcStateStart(AGENT_STATE_REPOSE);
-
- }
- break;
- default:
- break;
- }
- m_CurrState = pStatus->State;
- }
- void CSItemAgenStateTimeDetail::__ProcStateStart(AGENT_STATE state)
- {
- CTime m_time;
- m_time=CTime::GetCurrentTime(); //获取当前时间日期
- m_StartTime=m_time.Format(_T("%Y-%m-%d %H:%M:%S"));
- CString strDate;
- strDate = m_time.Format("%Y%m%d");
- m_LoginDate = atoi(strDate);
- // 编写SQL语句
- m_Sql.Format(_T("INSERT INTO rep_agentState_Detail (AgentId,LoginDate,Type,TimeStart)VALUES\
- (%d, %d, %d, '%s')"),
- m_AgentID,
- m_LoginDate,
- state,
- m_StartTime
- );
- __execSQL();
- }
- void CSItemAgenStateTimeDetail::__ProcStateEnd(AGENT_STATE state)
- {
- CTime m_time;
- m_time=CTime::GetCurrentTime(); //获取当前时间日期
- m_EndTime=m_time.Format(_T("%Y-%m-%d %H:%M:%S"));
- // 编写SQL语句
- m_Sql.Format(_T("UPDATE rep_agentState_Detail SET TimeEnd = '%s' WHERE AgentId = %d AND LoginDate = %d AND TimeStart='%s'"),
- m_EndTime,
- m_AgentID,
- m_LoginDate,
- m_StartTime
- );
- __execSQL();
- }
|