Ejemplo n.º 1
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);
                    }
                });
            }
        }
Ejemplo n.º 2
0
        //推送提醒
        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);
        }