Exemple #1
0
 //暂停
 private void Pause()
 {
     lock (objLock)
     {
         LockAction.RunWindowLock(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new FCallStateModel();
                 stateModel.windowNo  = windowNo;
                 stateModel.workState = (int)WorkState.Defalt;
                 csBll.Insert(stateModel);
             }
             if (stateModel.workState != (int)WorkState.PauseService)
             {
                 string mess = windowNo + "号窗口暂停服务";
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Pause
                 });
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " : " + mess); }));
                 stateModel.pauseState = stateModel.workState;
                 stateModel.workState  = (int)WorkState.PauseService;
                 csBll.Update(stateModel);
                 WriterCallLog(0, mess);
             }
         });
     }
 }
Exemple #2
0
 private void btnGiveUpAll_Click(object sender, EventArgs e)
 {
     if (DialogResult.OK == MessageBox.Show("确定对当前窗口所有业务的排队票进行批量弃号?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
     {
         stateModel = csBll.GetModelByWindowNo(windowNo);
         if (stateModel != null)
         {
             stateModel.callId     = 0;
             stateModel.workState  = 0;
             stateModel.hangId     = 0;
             stateModel.pauseState = 0;
             stateModel.ticketNo   = "";
             csBll.Update(stateModel);
         }
         var tList = cBll.GiveUpAll(windowBusys);
         foreach (var t in tList)
         {
             string mess = "批量弃号:窗口[" + t.windowNumber + "]票号[" + t.ticketNumber + "]已完成弃号";
             this.client.SendMessage(new OperateMessage()
             {
                 WindowNo = t.windowNumber, Operate = Operate.Reset
             });
             this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " : " + mess); }));
             WriterCallLog(4, mess);
         }
     }
 }
Exemple #3
0
 //呼叫*顺呼
 private void CallNo()
 {
     lock (objLock)
     {
         action.lockWin(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new FCallStateModel();
                 stateModel.windowNo  = windowNo;
                 stateModel.workState = (int)WorkState.Defalt;
                 stateModel           = csBll.Insert(stateModel);
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + windowNo + "号窗口恢复服务"); }));
             }
             if (stateModel.workState == (int)WorkState.Defalt || stateModel.workState == (int)WorkState.Evaluate)
             {
                 try
                 {
                     var model = cBll.CallNo(windowBusys, windowBusyGreens, windowNo, userId);
                     if (model != null)
                     {
                         stateModel.callId = model.ID;
                         var callString    = "请" + model.ticketNumber + "号到 " + windowNo + "号窗口办理 ";
                         client.SendMessage(new CallMessage()
                         {
                             TicketNo = model.ticketNumber, WindowNo = windowNo, AreaNo = windowModel.AreaName.ToString(), IsLEDMessage = true, IsSoundMessage = true
                         });
                         client.SendMessage(new WeChatMessage()
                         {
                             ID = model.qId.ToString()
                         });
                         stateModel.workState   = (int)WorkState.Call;
                         stateModel.ticketNo    = model.ticketNumber;
                         stateModel.callId      = model.ID;
                         stateModel.reCallTimes = 0;
                         csBll.Update(stateModel);
                         this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + callString); }));
                         //SendTicket(adress, model.ticketNumber.Substring(model.ticketNumber.Length - 3, 3));
                         WriterCallLog(0, callString);
                     }
                 }
                 catch (Exception ex)
                 {
                     WriterLog("叫号异常:" + ex.Message);
                 }
             }
         });
     }
 }
Exemple #4
0
 //回呼
 private void CallBack()
 {
     lock (objLock)
     {
         action.lockWin(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 return;
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + windowNo + "号窗口恢复服务"); }));
             }
             if (stateModel.workState == (int)WorkState.Defalt || stateModel.workState == (int)WorkState.Evaluate)
             {
                 var model = cBll.GetModel(stateModel.hangId);
                 if (model == null)
                 {
                     return;
                 }
                 else
                 {
                     if (model.ticketTime.Date != DateTime.Now.Date)
                     {
                         stateModel.hangId = 0;
                         csBll.Update(stateModel);
                         return;
                     }
                 }
                 model.state = 0;
                 cBll.Update(model);
                 var callString = model.ticketNumber + "号回呼";
                 client.SendMessage(new CallMessage()
                 {
                     TicketNo = model.ticketNumber, WindowNo = windowNo, AreaNo = windowModel.AreaName.ToString(), IsLEDMessage = true, IsSoundMessage = true
                 });
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + callString); }));
                 //SendTicket(adress, wHang[adress].ticketNumber.Substring(wHang[adress].ticketNumber.Length - 3, 3));
                 stateModel.workState   = (int)WorkState.Call;
                 stateModel.ticketNo    = model.ticketNumber;
                 stateModel.callId      = model.ID;
                 stateModel.reCallTimes = 0;
                 stateModel.hangId      = 0;
                 csBll.Update(stateModel);
                 WriterCallLog(7, callString);
             }
         });
     }
 }
Exemple #5
0
        void RefreshInfo()
        {
            this.txtWindow.Text   = windowName;
            this.lblWindow.Text   = windowNo;
            this.txtUserCode.Text = userId;
            stateModel            = csBll.GetModelByWindowNo(windowNo);
            if (stateModel != null)
            {
                this.txtTicket.Text    = stateModel.workState == (int)WorkState.Call ? stateModel.ticketNo : "";
                this.txtHangCount.Text = (stateModel.hangId > 0 ? 1 : 0).ToString();
            }
            else
            {
                this.txtHangCount.Text = "0";
                this.txtTicket.Text    = "";
            }

            //查询当前窗口排队等候人数
            var list  = qBll.GetModelList(windowBusys, 0).OrderBy(o => o.ticketTime).ToList(); //排队中
            var list2 = qBll.GetModelList(windowBusys, 1);                                     //已完成

            this.txtQueueCount.Text = (list.Count + list2.Count).ToString();
            this.txtWait.Text       = list.Count.ToString();
            this.txtAlready.Text    = list2.Count.ToString();
            foreach (var l in list.OrderByDescending(o => o.ticketTime).ToList())
            {
                if (qList.FirstOrDefault(q => q.ID == l.ID) == null)
                {
                    frmMsg frm = new frmMsg();
                    frm.Ticket = l.qNumber;
                    frm.Show();
                    break;
                }
            }
            qList = list;

            //if (x > 3)
            //{
            //    frmMsg frm = new frmMsg();
            //    frm.Ticket = "AB016";
            //    frm.Show();
            //    x = 0;
            //}
            //x++;
            //listView2.Items.Clear();
            //foreach (var item in list)
            //{
            //    ListViewItem lvItem = new ListViewItem();
            //    lvItem.Tag = item;
            //    lvItem.SubItems[0].Text = item.ticketNumber;
            //    lvItem.SubItems.Add(item.ticketTime.ToString("yyyy-MM-dd HH:mm:ss"));
            //    lvItem.SubItems.Add(item.qNmae);
            //    listView2.Items.Add(lvItem);
            //}
            //listView2.Refresh();
        }
Exemple #6
0
 //弃号
 private void GiveUpNo()
 {
     lock (objLock)
     {
         action.lockWin(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 return;
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + windowNo + "号窗口恢复服务"); }));
             }
             if (stateModel.workState == (int)WorkState.Call)
             {
                 try
                 {
                     var model = cBll.GetModel(stateModel.callId);
                     if (model == null)
                     {
                         return;
                     }
                     string mess      = model.ticketNumber + "号已弃号。";
                     model.state      = -1;
                     model.finishTime = DateTime.Now;
                     cBll.Update(model);
                     stateModel.workState = (int)WorkState.Evaluate;
                     stateModel.callId    = 0;
                     stateModel.ticketNo  = "";
                     csBll.Update(stateModel);
                     this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + mess); }));
                     this.client.SendMessage(new OperateMessage()
                     {
                         WindowNo = windowNo, Operate = Operate.Reset
                     });
                     //SendWait(adress);
                     WriterCallLog(4, mess);
                 }
                 catch (Exception ex)
                 {
                     WriterLog("弃号异常:" + ex.Message);
                 }
             }
         });
     }
 }
Exemple #7
0
 //转移-丢回去
 private void Transfer()
 {
     lock (objLock)
     {
         action.lockWin(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new FCallStateModel();
                 stateModel.windowNo  = windowNo;
                 stateModel.workState = (int)WorkState.Defalt;
                 stateModel           = csBll.Insert(stateModel);
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + windowNo + "号窗口恢复服务"); }));
             }
             if (stateModel.workState == (int)WorkState.Call)
             {
                 var model = cBll.GetModel(stateModel.callId);
                 if (model == null)
                 {
                     return;
                 }
                 //转移号码
                 model.finishTime = DateTime.Now;
                 cBll.Transfer(model);
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 var callString = model.ticketNumber + "号已转移(重置) ";
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + callString); }));
                 //SendWait(adress);
                 stateModel.workState   = (int)WorkState.Defalt;
                 stateModel.callId      = 0;
                 stateModel.ticketNo    = "";
                 stateModel.reCallTimes = 0;
                 csBll.Update(stateModel);
                 WriterCallLog(5, callString);
             }
         });
     }
 }
Exemple #8
0
        //重呼
        private void ReCallNo()
        {
            lock (objLock)
            {
                action.lockWin(windowNo, () =>
                {
                    stateModel = csBll.GetModelByWindowNo(windowNo);
                    if (stateModel == null)
                    {
                        return;
                    }

                    if (stateModel.workState == (int)WorkState.PauseService)
                    {
                        this.client.SendMessage(new OperateMessage()
                        {
                            WindowNo = windowNo, Operate = Operate.Reset
                        });
                        stateModel.workState = stateModel.pauseState;
                        csBll.Update(stateModel);
                        this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + windowNo + "号窗口恢复服务"); }));
                    }
                    if (stateModel.workState == (int)WorkState.Call)
                    {
                        var model = cBll.GetModel(stateModel.callId);
                        if (model == null)
                        {
                            return;
                        }
                        if (stateModel.reCallTimes >= 5)
                        {
                            return;
                        }
                        else
                        {
                            stateModel.reCallTimes = stateModel.reCallTimes + 1;
                            csBll.Update(stateModel);
                        }
                        var callString = "请" + model.ticketNumber + "号到 " + windowNo + "号窗口办理(重呼) ";
                        client.SendMessage(new CallMessage()
                        {
                            TicketNo = model.ticketNumber, WindowNo = windowNo, AreaNo = windowModel.AreaName.ToString(), IsLEDMessage = true, IsSoundMessage = true
                        });
                        this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("MM-dd HH:mm:ss") + " : " + callString); }));
                        //SendTicket(adress, wModel[adress].ticketNumber.Substring(wModel[adress].ticketNumber.Length - 3, 3));
                        WriterCallLog(1, callString);
                    }
                });
            }
        }
Exemple #9
0
 //挂起
 private void Hang()
 {
     lock (objLock)
     {
         LockAction.RunWindowLock(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new FCallStateModel();
                 stateModel.windowNo  = windowNo;
                 stateModel.workState = (int)WorkState.Defalt;
                 csBll.Insert(stateModel);
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
             }
             if (stateModel.workState == (int)WorkState.Call)
             {
                 var model = cBll.GetModel(stateModel.callId);
                 if (model == null)
                 {
                     return;
                 }
                 model.state = 3;
                 cBll.Update(model);
                 var callString = model.ticketNumber + "号已挂起";
                 this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " : " + callString); }));
                 //SendWait(adress);
                 stateModel.workState   = (int)WorkState.Defalt;
                 stateModel.hangId      = model.ID;
                 stateModel.callId      = 0;
                 stateModel.ticketNo    = "";
                 stateModel.reCallTimes = 0;
                 csBll.Update(stateModel);
                 WriterCallLog(6, callString);
             }
         });
     }
 }
Exemple #10
0
        void RefreshInfo()
        {
            try
            {
                this.txtWindow.Text   = windowName;
                this.lblWindow.Text   = windowNo;
                this.txtUserCode.Text = userId;
                stateModel            = csBll.GetModelByWindowNo(windowNo);
                if (stateModel != null)
                {
                    this.txtTicket.Text    = stateModel.workState == (int)WorkState.Call ? stateModel.ticketNo : "";
                    this.txtHangCount.Text = (stateModel.hangId > 0 ? 1 : 0).ToString();
                }
                else
                {
                    this.txtHangCount.Text = "0";
                    this.txtTicket.Text    = "";
                }

                //查询当前窗口排队等候人数
                var list  = qBll.GetModelList(windowBusys, 0).OrderBy(o => o.ticketTime).ToList(); //排队中
                var list2 = qBll.GetModelList(windowBusys, 1);                                     //已完成
                this.txtQueueCount.Text = (list.Count + list2.Count).ToString();
                this.txtWait.Text       = list.Count.ToString();
                this.txtAlready.Text    = list2.Count.ToString();
                foreach (var l in list.OrderByDescending(o => o.ticketTime).ToList())
                {
                    if (qList.FirstOrDefault(q => q.ID == l.ID) == null)
                    {
                        frmMsg frm = new frmMsg();
                        frm.Ticket = l.qNumber;
                        frm.Show();
                        break;
                    }
                }
                qList = list;
            }
            catch (Exception ex)
            {
                File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\Exception.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " : " + ex.Message + "\r\n");
                this.messageIndicator1.SetState(StateType.Error, "数据刷新异常,请核查网络!");
            }
        }
Exemple #11
0
 //评价
 private void EvaluateService()
 {
     lock (objLock)
     {
         LockAction.RunWindowLock(windowNo, () =>
         {
             stateModel = csBll.GetModelByWindowNo(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new FCallStateModel();
                 stateModel.windowNo  = windowNo;
                 stateModel.workState = (int)WorkState.Defalt;
                 csBll.Insert(stateModel);
             }
             if (stateModel.workState == (int)WorkState.PauseService)
             {
                 this.client.SendMessage(new OperateMessage()
                 {
                     WindowNo = windowNo, Operate = Operate.Reset
                 });
                 stateModel.workState = stateModel.pauseState;
                 csBll.Update(stateModel);
             }
             if (stateModel.workState == (int)WorkState.Call)
             {
                 try
                 {
                     var model = cBll.GetModel(stateModel.callId);
                     if (model == null)
                     {
                         return;
                     }
                     model.state = 1;
                     cBll.Update(model);
                     stateModel.workState = (int)WorkState.Evaluate;
                     //stateModel.callId = 0;
                     stateModel.ticketNo = "";
                     csBll.Update(stateModel);
                     client.SendMessage(new RateMessage() //发送评价请求
                     {
                         WindowNo   = windowNo,
                         RateId     = model.handleId,
                         ItemName   = "项目名称",
                         WorkDate   = DateTime.Now.ToShortDateString(),
                         Transactor = model.qNmae,
                         reserveSeq = model.reserveSeq
                     }
                                        );
                     //SendWait(adress);
                     string mess = " [" + model.ticketNumber + "]号已评价。";
                     this.Invoke(new Action(() => { this.listView1.Items.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") + " : [" + model.ticketNumber + "]号已评价。"); }));
                     WriterCallLog(2, mess);
                 }
                 catch (Exception ex)
                 {
                     WriterLog("评价异常:" + ex.Message);
                 }
             }
             else
             {
                 if (stateModel.workState == (int)WorkState.Defalt || stateModel.workState == (int)WorkState.Evaluate)
                 {
                     //SendWait(adress);
                 }
             }
         });
     }
 }