Ejemplo n.º 1
0
        /// <summary>
        /// 手持机出入库
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="containerId"></param>
        /// <param name="direction"></param>
        public string AscmStoreInOutSave(string userName, string containerId, string direction, string docNumber)
        {
            NHibernate.IQuery query = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().CreateQuery("from AscmStoreInOut where containerId='" + containerId + "' and readTime=(select max(readTime) from AscmStoreInOut where containerId='" + containerId + "')");
            Dal.ContainerManage.Entities.AscmStoreInOut ack = query.UniqueResult <Dal.ContainerManage.Entities.AscmStoreInOut>();

            if (ack != null && ack.direction == direction)
            {
                return("请勿重复提交!");
            }
            else
            {
                using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().BeginTransaction())
                {
                    try
                    {
                        Dal.SupplierPreparation.Entities.AscmContainer ascmContainer  = MideaAscm.Services.SupplierPreparation.AscmContainerService.GetInstance().Get(containerId);
                        Dal.ContainerManage.Entities.AscmStoreInOut    ascmStoreInOut = new Dal.ContainerManage.Entities.AscmStoreInOut();
                        ascmStoreInOut.containerId = ascmContainer.sn;

                        ascmStoreInOut.createUser  = userName;
                        ascmStoreInOut.direction   = direction;
                        ascmStoreInOut.containerId = ascmContainer.sn;
                        ascmStoreInOut.supplierId  = ascmContainer.supplierId;
                        ascmStoreInOut.epcId       = ascmContainer.rfid;
                        ascmStoreInOut.createTime  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        ascmStoreInOut.readTime    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        ascmStoreInOut.docNumber   = docNumber;//每次提交都产生新的单据号
                        ascmStoreInOut.id          = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmStoreInOut)") + 1;
                        if (direction == "STOREIN")
                        {
                            ascmStoreInOut.status = AscmStoreInOut.StatusDefine.inStored;
                            object obj = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select to_char(id) from  AscmReadingHead where address= '容器监管中心' and ip='0.0.0.0'");

                            ascmContainer.place = obj.ToString();
                        }
                        else
                        {
                            object obj = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select to_char(id) from  AscmReadingHead where address= '厂区外' and ip='0.0.0.0'");
                            ascmStoreInOut.status = AscmStoreInOut.StatusDefine.outStored;
                            if (ascmContainer.supplierId != 6128)
                            {
                                ascmContainer.place = obj.ToString();
                            }
                            else
                            {
                                ascmContainer.place = null;
                            }
                        }
                        ascmContainer.modifyTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                        ascmContainer.modifyUser = userName;

                        YnDaoHelper.GetInstance().nHibernateHelper.Update <Dal.SupplierPreparation.Entities.AscmContainer>(ascmContainer);
                        YnDaoHelper.GetInstance().nHibernateHelper.Save <Dal.ContainerManage.Entities.AscmStoreInOut>(ascmStoreInOut);
                        tx.Commit();//正确执行提交
                        return("");
                    }
                    catch (Exception ex)
                    {
                        tx.Rollback();//回滚
                        YnBaseClass2.Helper.LogHelper.GetLog().Error("保存失败(Save AscmCheckContainerInfo)", ex);
                        throw ex;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 手持机出入库
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="containerId"></param>
        /// <param name="direction"></param>
        public string AscmStoreInOutSave(string userName, string containerId, string direction,string docNumber)
        {
            NHibernate.IQuery query = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().CreateQuery("from AscmStoreInOut where containerId='" + containerId + "' and readTime=(select max(readTime) from AscmStoreInOut where containerId='" + containerId + "')");
            Dal.ContainerManage.Entities.AscmStoreInOut ack = query.UniqueResult<Dal.ContainerManage.Entities.AscmStoreInOut>();

            if (ack != null && ack.direction == direction)
            {
                return "请勿重复提交!";
            }
            else
            {
                using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().BeginTransaction())
                {
                    try
                    {

                        Dal.SupplierPreparation.Entities.AscmContainer ascmContainer = MideaAscm.Services.SupplierPreparation.AscmContainerService.GetInstance().Get(containerId);
                        Dal.ContainerManage.Entities.AscmStoreInOut ascmStoreInOut = new Dal.ContainerManage.Entities.AscmStoreInOut();
                        ascmStoreInOut.containerId = ascmContainer.sn;

                        ascmStoreInOut.createUser = userName;
                        ascmStoreInOut.direction = direction;
                        ascmStoreInOut.containerId = ascmContainer.sn;
                        ascmStoreInOut.supplierId = ascmContainer.supplierId;
                        ascmStoreInOut.epcId = ascmContainer.rfid;
                        ascmStoreInOut.createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        ascmStoreInOut.readTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        ascmStoreInOut.docNumber = docNumber;//每次提交都产生新的单据号
                        ascmStoreInOut.id = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmStoreInOut)") + 1;
                        if (direction == "STOREIN")
                        {
                            ascmStoreInOut.status = AscmStoreInOut.StatusDefine.inStored;
                            object obj = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select to_char(id) from  AscmReadingHead where address= '容器监管中心' and ip='0.0.0.0'");

                            ascmContainer.place = obj.ToString();

                        }
                        else
                        {
                            object obj = YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select to_char(id) from  AscmReadingHead where address= '厂区外' and ip='0.0.0.0'");
                            ascmStoreInOut.status = AscmStoreInOut.StatusDefine.outStored;
                            if (ascmContainer.supplierId != 6128)
                            {
                                ascmContainer.place = obj.ToString();
                            }
                            else
                            {
                                ascmContainer.place = null;
                            }

                        }
                        ascmContainer.modifyTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                        ascmContainer.modifyUser = userName;

                        YnDaoHelper.GetInstance().nHibernateHelper.Update<Dal.SupplierPreparation.Entities.AscmContainer>(ascmContainer);
                        YnDaoHelper.GetInstance().nHibernateHelper.Save<Dal.ContainerManage.Entities.AscmStoreInOut>(ascmStoreInOut);
                        tx.Commit();//正确执行提交
                        return "";
                    }
                    catch (Exception ex)
                    {
                        tx.Rollback();//回滚
                        YnBaseClass2.Helper.LogHelper.GetLog().Error("保存失败(Save AscmCheckContainerInfo)", ex);
                        throw ex;
                    }
                }

            }
        }