//重呼 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); } }); } }
//推送提醒 public object PushNotify(string Id) { var oId = Convert.ToInt32(Id); object obj = new object(); var model = qBll.GetModel(oId); if (model == null) { return(new { method = "PushNotify", code = 0, desc = "无此编号的排队数据,排队已失效,请核查", result = new { } }); } else { if (model.state == 0) { return(new { method = "PushNotify", code = 0, desc = "该排队数据已失效,请核查", result = new { } }); } } var list = qBll.GetModelList(model.busTypeSeq, model.unitSeq, 0); var cModel = cBll.GetModel(f => f.qId == oId && f.state != 2); var areaWindowStr = GetAreaWindowsStr(model.unitSeq, model.busTypeSeq); var waitNo = 1; //返回该条数据以及三条待叫号数据 var objresult = new { method = "PushNotify", code = 1, desc = "处理成功", result = new { currentQueue = new { state = "已叫号", id = model.id, ticketNumber = model.ticketNumber, windowName = cModel.windowNumber, unitSeq = model.unitSeq, unitName = model.unitName, busySeq = model.busTypeSeq, busyName = model.busTypeName, reserveSeq = model.reserveSeq, area = areaWindowStr[0], windowStr = areaWindowStr[1], cardId = model.idCard, vip = GetVipLever(model), wxId = model.wxId, }, waitQueue = list.OrderBy(o => o.id).Take(3).Select(s => new { id = s.id, area = areaWindowStr[0], windowStr = areaWindowStr[1], currentState = "排队中", windowNo = "", waitCount = waitNo++, unitSeq = s.unitSeq, unitName = s.unitName, busySeq = s.busTypeSeq, busyName = s.busTypeName, ticketNumber = s.ticketNumber, ticketTime = s.ticketTime.ToString("yyyy-MM-dd HH:mm:ss"), reserveSeq = s.reserveSeq, cardId = s.idCard, vip = GetVipLever(s), wxId = s.wxId }).ToList() } }; return(objresult); }