Example #1
0
        /// <summary>
        /// Save
        /// </summary>
        /// <param name="Epc">EPC</param>
        /// <param name="ReadHeadId">读头ID</param>
        public void AscmTagLogSave(string Epc, int ReadHeadId, string sessionKey = null)
        {
            try
            {

                using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession(sessionKey).BeginTransaction())
                {
                    try
                    {
                        //有没有该标签的信息
                        object objType = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select bindType from AscmRfid where  epcId='" + Epc + "'", sessionKey);
                        if (objType != null)
                        {
                            object obj = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select id from AscmTagLog where readingHeadId=" + ReadHeadId + " and epcId='" + Epc + "' and readTime=(select max(readTime) from AscmTagLog where epcId='" + Epc + "')", sessionKey);
                            //说明有,要新增
                            if (obj != null)
                            {
                                AscmTagLog ascmTagLog = YnDaoHelper.GetInstance().nHibernateHelper.Get<AscmTagLog>(Convert.ToInt32(obj.ToString()), sessionKey);
                                ascmTagLog.createTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                ascmTagLog.readTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                YnDaoHelper.GetInstance().nHibernateHelper.Update<AscmTagLog>(ascmTagLog, sessionKey);

                            }
                            else
                            {

                                //object objId=YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select max(id) from AscmTagLog", sessionKey);
                                //int id=0;
                                //if (objId != null)
                                //{
                                //   id = (int)objId;
                                //}
                                AscmTagLog ascmTagLog = new AscmTagLog();
                                // ascmTagLog.id = ++id;
                                ascmTagLog.readingHeadId = ReadHeadId;
                                ascmTagLog.createTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                ascmTagLog.readTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                ascmTagLog.epcId = Epc;
                                ascmTagLog.bindType = objType.ToString();
                                YnDaoHelper.GetInstance().nHibernateHelper.Save<AscmTagLog>(ascmTagLog, sessionKey);
                                //  tx.Commit();//正确执行提交
                                if (AscmTagLog.BindTypeDefine.container == objType.ToString() && MideaAscm.Services.ContainerManage.AscmContainerInfoService.GetInstance().GetByEpcId(Epc, sessionKey) != null)
                                {
                                    MideaAscm.Dal.SupplierPreparation.Entities.AscmContainer ascmContainer = MideaAscm.Services.ContainerManage.AscmContainerInfoService.GetInstance().GetByEpcId(Epc, sessionKey);
                                    ascmContainer.place = ReadHeadId.ToString();
                                    YnDaoHelper.GetInstance().nHibernateHelper.Update<MideaAscm.Dal.SupplierPreparation.Entities.AscmContainer>(ascmContainer, sessionKey);
                                    // MideaAscm.Services.ContainerManage.AscmContainerInfoService.GetInstance().Update(ascmContainer, sessionKey);
                                }
                                tx.Commit();//正确执行提交
                            }

                        }
                    }
                    catch (Exception ex)
                    {
                        tx.Rollback();//回滚
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                YnBaseClass2.Helper.LogHelper.GetLog().Error("保存失败(Save ascmStoreInOut)", ex);
                throw ex;
            }
        }
Example #2
0
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="queryWord"></param>
        /// <returns></returns>
        public List<AscmTagLog> GetFlowInfo(string queryWord)
        {
            List<AscmTagLog> list = null;
            try
            {
                string sort = " order by createTime desc";
                string strHql = "from AscmTagLog";
                if (!string.IsNullOrEmpty(queryWord))
                {
                    strHql += " where " + queryWord;
                }
                IList<AscmTagLog> ilist = YnDaoHelper.GetInstance().nHibernateHelper.Find<AscmTagLog>(strHql + sort);
                IList<MideaAscm.Dal.Base.Entities.AscmReadingHead> ilistAdress = YnDaoHelper.GetInstance().nHibernateHelper.Find<MideaAscm.Dal.Base.Entities.AscmReadingHead>("from AscmReadingHead where ip!='0.0.0.0'");
                List<MideaAscm.Dal.Base.Entities.AscmReadingHead> listAdress = YnBaseClass2.Helper.ConvertHelper.ConvertIListToList<MideaAscm.Dal.Base.Entities.AscmReadingHead>(ilistAdress);
                string flowString = "";
                AscmTagLog astddd=  new AscmTagLog();
                int count = 0;
                if (ilist != null && ilist.Count > 0)
                {
                    list = YnBaseClass2.Helper.ConvertHelper.ConvertIListToList<AscmTagLog>(ilist);
                    var q = (from a in ilist select a.epcId).Distinct();
                    foreach (var t in q)
                    {
                        var find= list.FindAll(e => e.epcId == t);
                        if (find.Count > 1)
                        {
                            foreach (AscmTagLog AscmTagLog in find)
                            {
                                count++;
                                var result =listAdress.Find(e => e.id == AscmTagLog.readingHeadId);
                                if (count != find.Count)
                                {
                                    if (result == null)
                                    {
                                        flowString += AscmTagLog.createTime + " " + Environment.NewLine;

                                    }
                                    else
                                    {
                                        flowString += AscmTagLog.createTime +" "+ result.address + Environment.NewLine;
                                    }
                                    list.Remove(AscmTagLog);
                                }
                                else
                                {
                                    if (result == null)
                                    {
                                        flowString += AscmTagLog.createTime + " " ;

                                    }
                                    else
                                    {
                                        flowString += AscmTagLog.createTime + " " + result.address ;
                                    }
                                    AscmTagLog.place = flowString;
                                }
                            }
                        }
                        else
                        {
                            var result = listAdress.Find(e => e.id == find[0].readingHeadId);
                            if(result==null)
                            {
                            flowString = find[0].createTime;
                            }
                            else
                            {
                                flowString = find[0].createTime + "  " + result.address;
                            }

                            find[0].place = flowString;
                        }
                        flowString = "";
                    }
                }
                if (ilist != null && ilist.Count > 0)
                {

                    SetObjectId(list);//设置物件的ID
                    SetSupplier(list);//设置物件的供应商
                   // SetAscmReadingHead(list);  //设置地址
                }

            }
            catch (Exception ex)
            {
                YnBaseClass2.Helper.LogHelper.GetLog().Error("查询失败(Find AscmTagLog)", ex);
                throw ex;
            }
            return list;
        }