Esempio n. 1
0
 //呼叫*顺呼
 private void CallNo()
 {
     lock (objLock)
     {
         LockAction.RunWindowLock(windowNo, () =>
         {
             stateModel = csBll.GetModel(windowNo);
             if (stateModel == null)
             {
                 stateModel           = new TCallStateModel();
                 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.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("yyyy-MM-dd HH:mm:ss:fff") + " : " + callString); }));
                         //SendTicket(adress, model.ticketNumber.Substring(model.ticketNumber.Length - 3, 3));
                         WriterCallLog(0, callString);
                     }
                 }
                 catch (Exception ex)
                 {
                     WriterLog("叫号异常:" + ex.Message);
                 }
             }
         });
     }
 }
Esempio n. 2
0
        //重呼
        private void ReCallNo()
        {
            lock (objLock)
            {
                LockAction.RunWindowLock(windowNo, () =>
                {
                    stateModel = csBll.GetModel(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);
                    }
                    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("yyyy-MM-dd HH:mm:ss:fff") + " : " + callString); }));
                        //SendTicket(adress, wModel[adress].ticketNumber.Substring(wModel[adress].ticketNumber.Length - 3, 3));
                        WriterCallLog(1, callString);
                    }
                });
            }
        }