//要执行的方法 private void ScanQueue() { try { using (CleanProcedureEntities db = new CleanProcedureEntities()) { while (ListQueue.Count > 0) { //从队列中取出 Clean_RecordList queueinfo = ListQueue.Dequeue(); Clean_RecordList find = db.Clean_RecordList.FirstOrDefault(model => model.Sequence == queueinfo.Sequence && model.StepNum == queueinfo.StepNum); if (find != null) { //if(find.MaxNum==find.StepNum) find.EndTime = queueinfo.EndTime; } else { db.Clean_RecordList.Add(queueinfo); } } db.SaveChanges(); } } catch (Exception e) { LogHelper.WriteLog(typeof(Exception), e); //throw; } }
public bool AddEntity(Clean_RecordList entity) { using (CleanProcedureEntities db = new CleanProcedureEntities()) { db.Clean_RecordList.Add(entity); if (db.SaveChanges() > 0) { return(true); } else { return(false); } } }
public void GetCardList() { Cardlist.Clear(); using (CleanProcedureEntities db = new CleanProcedureEntities()) { var reclist = db.Clean_RecordList.GroupBy(p => p.CleanCard); foreach (var item in reclist) { string cardname = item.Key; Clean_RecordList it = item.OrderBy(p => p.StartTime).LastOrDefault(); if (it.StartTime.Date.Equals(DateTime.Today)) { if (it.StepNum < it.MaxNum)//消毒未完成记录 { Cardlist[it.CleanCard] = it; } } } } }
public void UpdateMsgToDB(StepNode curr_node, bool bEnd = false) { //保存数据库 Clean_RecordList record = new Clean_RecordList(); record.CleanCard = CardNo; record.CleanIp = ClientIP; record.CleanPort = curr_node.GetPort(); record.MaxNum = curr_node.GetTotalStepNum(); record.StartTime = StartTime; record.StepTime = StepTime; record.StepNum = curr_node.GetStepNum(); record.WorkCard = WorkCard; record.StepName = curr_node.GetStepName(); record.EndTime = StartTime; record.Sequence = id; if (bEnd) { record.EndTime = DateTime.Now; } DBmanager.Instance.AddQueue(record); }
public void InitProcedure() { try { using (CleanProcedureEntities db = new CleanProcedureEntities()) { //刷卡器 var list = db.Clean_CardDevice.Select(p => p.DevType).Distinct(); foreach (var item in list) { var machinlist = db.Clean_CardDevice.Where(p => p.DevType == item && p.Stopped == false).OrderBy(p => p.StepNumber); StepNode sn = null; StepNode snLast = null; foreach (var m in machinlist) { snLast = sn; sn = new StepNode(m.ClientIP, m); sn.SetLast(snLast); if (snLast != null) { snLast.SetNext(sn); } if (m.DevType.Equals("消毒监控")) { IPlist.Add(m.ClientIP, sn); } if (m.DevType.Equals("隔夜消毒")) { IPlist_yes.Add(m.ClientIP, sn); } } } //人员卡 var wlist = from a in db.Clean_Card where a.DevType == "人员" select a.CardNo; Worker.AddRange(wlist.AsEnumerable()); //内镜卡 var nlist = from c in db.Clean_Card where c.DevType == "镜子" select c; foreach (var item in nlist) { CardList.Add(item.CardNo, null); } State.id = db.Clean_RecordList.Max(p => p.Sequence) + 1; //如果隔夜消毒的内镜不作废,查询昨天消毒未用的内镜卡 if (Config_func.GetInstance().LastNight) { //获取昨天使用记录 var uselist = db.CleanCard_UserList.GroupBy(p => p.CleanCard); List <int> seqlist = new List <int>(); foreach (var item in uselist) { string cardname = item.Key; CleanCard_UserList it = item.OrderBy(p => p.Sequence).LastOrDefault(); //昨天 最后的使用记录 DateTime time = (DateTime)it.ZuofeiTime; if (time.Date.Equals(DateTime.Today.AddDays(-1)) /*|| it.StartTime.Date.Equals(DateTime.Today)*/) { seqlist.Add(it.Sequence); } } var reclist = db.Clean_RecordList.GroupBy(p => p.CleanCard); foreach (var item in reclist) { string cardname = item.Key; Clean_RecordList it = item.OrderBy(p => p.StartTime).LastOrDefault(); //昨天的消毒记录 if (it.StartTime.Date.Equals(DateTime.Today.AddDays(-1)) && !seqlist.Contains(it.Sequence) /*|| it.StartTime.Date.Equals(DateTime.Today)*/) { //if (it.StepNum < it.MaxNum)//消毒未完成记录 //{ // State mState = new State(it.WorkCard,it.CleanIp,it.StepTime); // mState.Binding(cardname); // CardList[cardname] = mState; //} YesterdayCard.Add(it.CleanCard); } } } } DBmanager.Instance.Start(); } catch (Exception ex) { LogHelper.WriteLog(typeof(Exception), ex); } }
public void AddQueue(Clean_RecordList record) //入列 { m_listMutex.WaitOne(); ListQueue.Enqueue(record); m_listMutex.ReleaseMutex(); }