/// <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; } } } }
/// <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; } } } }