📄 dispensewait.cpp
字号:
// DispenseWait.cpp: implementation of the CDispenseWait class.
//
//////////////////////////////////////////////////////////////////////
#include "DispenseWait.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDispenseWait::CDispenseWait(XW_Connection &conn/*=DefaultConnect*/) : Connect(conn),
t_dispense_wait(conn),
t_dispense_waitlog(conn),
m_cNbrSeg(conn)
{
}
CDispenseWait::~CDispenseWait()
{
}
int CDispenseWait::GetDispenseWaitEx( vector<StruDispense> &vstDispense,int size , bool bIfCtrl )
{
int nCount = 0 ;
if ( bIfCtrl )
{
oTime.GetLocalTime() ;
int nHour = oTime.GetHour() ;
if ((nHour >= 9 && nHour < 12) ||
(nHour >= 14 && nHour < 21) )
{
nCount = GetDispenseWait( vstDispense,size ) ;
}
}
else
nCount = GetDispenseWait( vstDispense,size ) ;
return nCount ;
}
int CDispenseWait::GetDispenseWait( vector<StruDispense> &vstDispense,int size )
{
long j = 1 ;
char sSql[ 256 ] ;
int nCount = 0 ;
StruDispense stDispense ;
oTime.GetLocalTime() ;
string sTime = oTime.GetDate() ;
sTime += oTime.GetTime() ;
sprintf( sSql, " AT_TIME < '%s' OR AT_TIME IS NULL ORDER BY MSG_PRI " , sTime.c_str() ) ;
j = t_dispense_wait.Query( sSql ) ;
if ( j > 0 )
{//INFORMATION_ID=-1,-2
if( t_dispense_wait.INFORMATION_ID.Float() < 0.1 )
{
AssignDispenseValues( stDispense ) ;
vstDispense.push_back( stDispense ) ;
j = t_dispense_wait.Delete();
if ( j > 0 )
nCount ++ ;
else
nCount = -1 ;
}
}
if ( j > 0 && nCount == 0 )
{//INFORMATION_ID > 0
sprintf(sSql, " (AT_TIME < '%s' OR AT_TIME IS NULL) AND INFORMATION_ID = %.0f ",
sTime.c_str() , t_dispense_wait.INFORMATION_ID.Float() ) ;
j = t_dispense_wait.Query( sSql ) ;
while ( j > 0 && nCount < size )
{
AssignDispenseValues( stDispense ) ;
vstDispense.push_back( stDispense ) ;
j = t_dispense_wait.Delete();
if(j > 0)
{
nCount++;
j = t_dispense_wait.Next() ;
}
else
nCount = -1 ;
}//while
}//if
if( nCount > 0 )
Connect.Commit() ;
else
Connect.Rollback() ;
return nCount ;
}
void CDispenseWait::AssignDispenseValues( StruDispense &stDispense )
{
stDispense.dispense_id = t_dispense_wait.DISPENSE_ID.Float();
stDispense.information_id = t_dispense_wait.INFORMATION_ID.Float() ;
stDispense.try_times = t_dispense_wait.TRY_TIMES.Int() ;
strcpy( stDispense.inf_type_id , t_dispense_wait.INF_TYPE_ID.Char() ) ;
strcpy( stDispense.sp_code , t_dispense_wait.SP_CODE.Char() ) ;
strcpy( stDispense.acct_nbr, t_dispense_wait.ACCT_NBR.Char() ) ;
strcpy( stDispense.dest_nbr, t_dispense_wait.DEST_NBR.Char() ) ;
strcpy( stDispense.reply_type,t_dispense_wait.REPLY_TYPE.Char() ) ;
strcpy( stDispense.msg_content,t_dispense_wait.MSG_CONTENT.Char() ) ;
strcpy( stDispense.content_type,t_dispense_wait.CONTENT_TYPE.Char() ) ;
strcpy( stDispense.mo_time,t_dispense_wait.MO_TIME.Char() ) ;
strcpy( stDispense.done_time,t_dispense_wait.DONE_TIME.Char() ) ;
strcpy( stDispense.service_code,t_dispense_wait.SERVICE_CODE.Char() ) ;
strcpy( stDispense.fee_type,t_dispense_wait.FEE_TYPE.Char() ) ;
strcpy( stDispense.fee_code,t_dispense_wait.FEE_CODE.Char() ) ;
strcpy( stDispense.msg_pri,t_dispense_wait.MSG_PRI.Char() ) ;
strcpy( stDispense.valid_time,t_dispense_wait.VALID_TIME.Char() ) ;
strcpy( stDispense.at_time,t_dispense_wait.AT_TIME.Char() ) ;
strcpy( stDispense.region_code,t_dispense_wait.REGION_CODE.Char() ) ;
strcpy( stDispense.area_code,t_dispense_wait.AREA_CODE.Char() ) ;
if ( strlen(stDispense.area_code) == 0 )//get area_code
strcpy( stDispense.area_code,m_cNbrSeg.LookUp(stDispense.dest_nbr) ) ;
sprintf( stDispense.send_time,"%s%s",oTime.GetDate(),oTime.GetTime() ) ;
}
int CDispenseWait::InsertDispenseLog( vector<StruDispense> &vstDispense )
{
long j = 1 ;
for ( int i=0 ; i<vstDispense.size() && j > 0 ; i++ )
{
if ( 0 == strcmp( vstDispense[i].gateway_state,"60W" ) )
{//save to dispense_mobile_wait to send again
t_dispense_wait.Clear() ;
t_dispense_wait.DISPENSE_ID = vstDispense[i].dispense_id ;
t_dispense_wait.INFORMATION_ID = vstDispense[i].information_id ;
t_dispense_wait.INF_TYPE_ID = vstDispense[i].inf_type_id ;
t_dispense_wait.SP_CODE = vstDispense[i].sp_code ;
t_dispense_wait.ACCT_NBR = vstDispense[i].acct_nbr ;
t_dispense_wait.DEST_NBR = vstDispense[i].dest_nbr ;
t_dispense_wait.REPLY_TYPE = vstDispense[i].reply_type ;
t_dispense_wait.MSG_CONTENT = vstDispense[i].msg_content ;
t_dispense_wait.CONTENT_TYPE = vstDispense[i].content_type ;
t_dispense_wait.MO_TIME = vstDispense[i].mo_time ;
t_dispense_wait.DONE_TIME = vstDispense[i].done_time ;
t_dispense_wait.TRY_TIMES = vstDispense[i].try_times ;
t_dispense_wait.SERVICE_CODE = vstDispense[i].service_code ;
t_dispense_wait.FEE_TYPE = vstDispense[i].fee_type ;
t_dispense_wait.FEE_CODE = vstDispense[i].fee_code ;
t_dispense_wait.MSG_PRI = vstDispense[i].msg_pri ;
t_dispense_wait.VALID_TIME = vstDispense[i].valid_time ;
t_dispense_wait.AT_TIME = vstDispense[i].at_time ;
t_dispense_wait.REGION_CODE = vstDispense[i].region_code ;
t_dispense_wait.AREA_CODE = vstDispense[i].area_code ;
j = t_dispense_wait.Insert() ;
}
else
{//save to dispense_batchsend_cache
t_dispense_waitlog.Clear() ;
t_dispense_waitlog.DISPENSE_ID = vstDispense[i].dispense_id ;
t_dispense_waitlog.MSG_ID = vstDispense[i].msg_id ; //log
t_dispense_waitlog.INF_TYPE_ID = vstDispense[i].inf_type_id ;
t_dispense_waitlog.INFORMATION_ID = vstDispense[i].information_id ;
t_dispense_waitlog.SP_CODE = vstDispense[i].sp_code ;
t_dispense_waitlog.ACCT_NBR = vstDispense[i].acct_nbr ;
t_dispense_waitlog.DEST_NBR = vstDispense[i].dest_nbr ;
t_dispense_waitlog.REPLY_TYPE = vstDispense[i].reply_type ;
t_dispense_waitlog.MSG_CONTENT = vstDispense[i].msg_content ;
t_dispense_waitlog.CONTENT_TYPE = vstDispense[i].content_type ;
t_dispense_waitlog.MO_TIME = vstDispense[i].mo_time ;
t_dispense_waitlog.DONE_TIME = vstDispense[i].done_time ;
t_dispense_waitlog.SEND_TIME = vstDispense[i].send_time ; //log
//t_dispense_waitlog.REPLY_TIME = vstDispense[i].reply_time ; //log
t_dispense_waitlog.GATEWAY_STATE = vstDispense[i].gateway_state ; //log
t_dispense_waitlog.TRY_TIMES = vstDispense[i].try_times ; //log
//t_dispense_waitlog.STATE_REPORT = vstDispense[i].state_report ; //log
t_dispense_waitlog.SERVICE_CODE = vstDispense[i].service_code ;
t_dispense_waitlog.FEE_TYPE = vstDispense[i].fee_type ;
t_dispense_waitlog.FEE_CODE = vstDispense[i].fee_code ;
t_dispense_waitlog.MSG_PRI = vstDispense[i].msg_pri ;
t_dispense_waitlog.VALID_TIME = vstDispense[i].valid_time ;
t_dispense_waitlog.AT_TIME = vstDispense[i].at_time ;
t_dispense_waitlog.REGION_CODE = vstDispense[i].region_code ;
t_dispense_waitlog.AREA_CODE = vstDispense[i].area_code ;
j = t_dispense_waitlog.Insert() ;
}
}
if ( j > 0 )
Connect.Commit() ;
else
Connect.Rollback() ;
return int(j) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -