示例#1
0
        //要执行的方法
        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;
            }
        }
示例#2
0
 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);
         }
     }
 }
示例#3
0
        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;
                        }
                    }
                }
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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);
            }
        }
示例#6
0
 public void AddQueue(Clean_RecordList record)     //入列
 {
     m_listMutex.WaitOne();
     ListQueue.Enqueue(record);
     m_listMutex.ReleaseMutex();
 }