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(); }
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, "数据刷新异常,请核查网络!"); } }
//获取当前排队信息 private object GetQueueById(int Id) { var qBll = new BQueueBLL(); object obj = new object(); var model = qBll.GetModel(Id); if (model == null) { return(new { method = "GetQueueInfo", code = 0, desc = "无此编号的排队数据", result = new { } }); } var areaWindowStr = GetAreaWindowsStr(model.unitSeq, model.busTypeSeq); var isGreen = GetVipLever(model); var list = qBll.GetModelList(model.busTypeSeq, model.unitSeq, 0).Where(q => q.ID < model.ID).ToList(); int waitNo = list.Count;//计算等候人数 if (model.state == 1) { //已叫号/已处理 var call = new BCallBLL().GetModel(f => f.qId == Id && f.state != 2); if (call == null) { return(new { method = "GetQueueInfo", code = 0, desc = "无此编号的叫号数据", result = new { } }); } else { var currentState = call.ticketTime.Date != DateTime.Now.Date ? "已过期" : (call.state == -1 || call.state == 1) ? "已完成" : "已叫号"; obj = new { method = "GetQueueInfo", code = 1, desc = "处理成功", result = new { id = model.ID, area = areaWindowStr[0], windowStr = areaWindowStr[1], currentState = currentState, windowNo = "", waitCount = waitNo, unitSeq = model.unitSeq, unitName = model.unitName, busySeq = model.busTypeSeq, busyName = model.busTypeName, ticketNumber = model.ticketNumber, ticketTime = model.ticketTime.ToString("yyyy-MM-dd HH:mm:ss"), reserveSeq = model.reserveSeq, cardId = model.idCard, vip = isGreen, wxId = model.wxId } }; } } else { //排队中 obj = new { method = "GetQueueInfo", code = 1, desc = "处理成功", result = new { id = model.ID, area = areaWindowStr[0], windowStr = areaWindowStr[1], currentState = "排队中", windowNo = "", waitCount = waitNo, unitSeq = model.unitSeq, unitName = model.unitName, busySeq = model.busTypeSeq, busyName = model.busTypeName, ticketNumber = model.ticketNumber, ticketTime = model.ticketTime.ToString("yyyy-MM-dd HH:mm:ss"), reserveSeq = model.reserveSeq, cardId = model.idCard, vip = isGreen, wxId = model.wxId } }; } return(obj); }
//进行排队 private object OutQueueNo(string unitSeq, string unitName, string busiSeq, string busiName, string personName, string idCard, string wxId) { #region 验证业务扩展属性 var qBll = new BQueueBLL(); var ticketStart = ""; var att = baList.Where(b => b.unitSeq == unitSeq && b.busiSeq == busiSeq).FirstOrDefault(); var list = qBll.GetModelList(busiSeq, unitSeq, 0); int waitNo = list.Count;//计算等候人数 if (att != null) { ticketStart = att.ticketPrefix; } else { return(new { method = "ProcessQueue", code = 0, desc = "当前部门以及业务类型未获取到扩展属性,无法排队", idcard = idCard, result = new { } }); } #endregion #region 排队 var queue = qBll.QueueLine(unitSeq, unitName, busiSeq, busiName, ticketStart, idCard, personName, wxId); #endregion #region 日志相关 string strLog = string.Format("已出票:部门[{0}],业务[{1}],票号[{2}],预约号[{3}],身份证号[{4}],姓名[{5}],时间[{6}]。", queue.unitName, queue.busTypeName, queue.ticketNumber, queue.reserveSeq, idCard, personName, DateTime.Now); WriterQueueLog(strLog); new TOprateLogBLL().Insert(new TOprateLogModel() { oprateFlag = wxId, oprateType = "微信端排队", oprateClassifyType = "出票", oprateTime = DateTime.Now, oprateLog = strLog }); #endregion #region 返回数据组织 var areaWindowStr = GetAreaWindowsStr(unitSeq, busiSeq); var isGreen = GetVipLever(queue); object obj = new { method = "ProcessQueue", code = 1, desc = "处理成功", idcard = idCard, result = new { id = queue.ID, area = areaWindowStr[0], windowStr = areaWindowStr[1], waitCount = waitNo, unitSeq = queue.unitSeq, unitName = queue.unitName, busySeq = queue.busTypeSeq, busyName = queue.busTypeName, ticketNumber = queue.ticketNumber, ticketTime = queue.ticketTime.ToString("yyyy-MM-dd HH:mm:ss"), cardId = queue.idCard, reserveSeq = queue.reserveSeq, vip = isGreen, } }; return(obj); #endregion }
//1.身份证验证 //2.取号时间段验证 //3.取号数量验证 ArrayList CheckLimit(string methodName, string idCard, string unitSeq, string busiSeq) { var qBll = new BQueueBLL(); ArrayList arry = new ArrayList(); arry.Add(true); //验证同一个身份证不能在一个部门一个业务排队2次(未处理的) var isCan = qBll.IsCanQueueO(idCard, busiSeq, unitSeq); if (Convert.ToBoolean(isCan[0]) == false) { var err = new { method = methodName, code = 0, desc = "此身份证同类业务未办理,请办理完成后再次取号", idcard = idCard, result = new { } }; arry.Clear(); arry.Add(false); arry.Add(err); return(arry); } ArrayList arr = GetLimitBySeq(unitSeq, busiSeq); if (arr == null) { var err = new { method = methodName, code = 0, desc = "该业务类型当前时间段不能取号或未配置取号限制条件", idcard = idCard, result = new { } }; arry.Clear(); arry.Add(false); arry.Add(err); return(arry); } int max = Convert.ToInt32(arr[0]); DateTime start = Convert.ToDateTime(arr[1]); DateTime end = Convert.ToDateTime(arr[2]); var mList = qBll.GetModelList(busiSeq, unitSeq, start, end); if (max <= mList.Count) { var err = new { method = methodName, code = 0, desc = "该业务类型当前时间段排队数量已达上限", idcard = idCard, result = new { } }; arry.Clear(); arry.Add(false); arry.Add(err); return(arry); } return(arry); }
//推送提醒 public object PushNotify(string Id) { var qBll = new BQueueBLL(); 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 = new BCallBLL().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); }