/* 接收到开启评价命令 */ void CCallThread::OnEvaReq(CallerCmd& callerCmd) { SLZData data; if(m_rCalledQueData.GetCalledQueData(callerCmd.GetWindowId(),data)) { data.SetIsOpenEva(TRUE);//开启评价 m_rCalledQueData.ModifyCalledQueData(data); callerCmd.SetSuccess(TRUE); } }
/* 转移队列/窗口 */ void CCallThread::OnExChange(CallerCmd& callerCmd) { SLZData data; if(m_logicVariables.ExchangeQue) { BOOL flag = FALSE; CString queID = callerCmd.GetCarriedData();//获取转移的队列 if(queID.IsEmpty())return; CQueueInfo queinfo; for(int i=0;i<m_map_que.GetCount();i++) { if(m_map_que[i].GetQueManNum()==queID)//找到QUEID { flag = TRUE; queinfo = m_map_que[i]; break; } } //获取对应窗口正在呼叫的数据 if(flag) { if(m_rCalledQueData.GetCalledQueData(callerCmd.GetWindowId(),data)) { data.SetIsOpenEva(FALSE);data.SetIsFinshEva(FALSE); m_rCalledQueData.DeleteCalledQueData(data);//删除正在呼叫队列的数据 data.SetBussinessType(queinfo.GetQueID()); //设置队列名称 data.SetBussName(GetQueNumFromID(queinfo.GetQueID())); data.SetWindowId(0);//不设置指定窗口,返回初始状态 m_rInlineQueData.AddHeadData(data);//添加到排队队列最前 callerCmd.SetSuccess(TRUE); } } } if(m_logicVariables.ExchangeWindow)//转移窗口 { CString winID = callerCmd.GetCarriedData();//获取转移的窗口 if(winID.IsEmpty())return; CCommonConvert convert; int i_winID = -1; convert.CStringToint(i_winID,winID); SLZWindow Window; BOOL flag = m_rInlineQueData.m_rWindowTable.QueryWindowBySerialID(i_winID,Window); if(flag)//找到了窗口 { if(m_rCalledQueData.GetCalledQueData(callerCmd.GetWindowId(),data)) { if(JudgeWindowHaveQue(Window.GetWindowId()))//判断窗口ID下是否有可处理队列 { data.SetIsOpenEva(FALSE);data.SetIsFinshEva(FALSE); m_rCalledQueData.DeleteCalledQueData(data);//删除正在呼叫队列的数据 data.SetWindowId(Window.GetWindowId()); m_rInlineQueData.AddHeadData(data);//添加到排队队列最前 callerCmd.SetSuccess(TRUE); } else { callerCmd.SetSuccess(FALSE); } } } ///////////////////////////////////// } /////////////////////////////////// }