//呼叫*顺呼 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); } } }); } }
//重呼 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); } }); } }