/// <summary> /// 手持端盘点功能 /// </summary> /// <param name="strSn"></param> public string ContainerCheck(string strSn, string status, string userName) { //如果没有盘点任务开启 if (YnDaoHelper.GetInstance().nHibernateHelper.GetCount("select count(*) from AscmCheck as ck where ck.count is null") == 0) { return("没有开启的盘点任务"); } Dal.SupplierPreparation.Entities.AscmContainer ascmContainer = MideaAscm.Services.SupplierPreparation.AscmContainerService.GetInstance().Get(strSn); using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().BeginTransaction()) { try { if (!string.IsNullOrEmpty(status)) { //如果状态是丢失 if (status == "LOST") { ascmContainer.status = Dal.SupplierPreparation.Entities.AscmContainer.StatusDefine.losted; } else { ascmContainer.status = Dal.SupplierPreparation.Entities.AscmContainer.StatusDefine.unuse; } //盘点ID int intcheckId = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmCheck)"); //如果没有重复就新建 if (YnDaoHelper.GetInstance().nHibernateHelper.GetCount("select count(*) from AscmCheckContainerInfo where containerId='" + strSn + "' and checkId=" + intcheckId + "") == 0) { Dal.ContainerManage.Entities.AscmCheckContainerInfo CheckInfo = new Dal.ContainerManage.Entities.AscmCheckContainerInfo(); CheckInfo.id = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmCheckContainerInfo)") + 1; CheckInfo.checkId = intcheckId; CheckInfo.containerId = ascmContainer.sn; CheckInfo.status = status; CheckInfo.supplierId = ascmContainer.supplierId; CheckInfo.createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); CheckInfo.createUser = userName; YnDaoHelper.GetInstance().nHibernateHelper.Save <Dal.ContainerManage.Entities.AscmCheckContainerInfo>(CheckInfo); } else //重复就更新 { Dal.ContainerManage.Entities.AscmCheckContainerInfo ascmCheckContainerInfo = YnDaoHelper.GetInstance().nHibernateHelper.Get <Dal.ContainerManage.Entities.AscmCheckContainerInfo>(Convert.ToInt32(YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select id from AscmCheckContainerInfo where containerId='" + strSn + "' and checkId=" + intcheckId + ""))); ascmCheckContainerInfo.status = status; YnDaoHelper.GetInstance().nHibernateHelper.Update <Dal.ContainerManage.Entities.AscmCheckContainerInfo>(ascmCheckContainerInfo); tx.Commit();//正确执行提交 return("系统已更新该容器的盘点信息"); } } ascmContainer.isCheck = 1; YnDaoHelper.GetInstance().nHibernateHelper.Update <Dal.SupplierPreparation.Entities.AscmContainer>(ascmContainer); tx.Commit();//正确执行提交 return(""); } catch (Exception ex) { tx.Rollback();//回滚 YnBaseClass2.Helper.LogHelper.GetLog().Error("保存失败(Save AscmCheckContainerInfo)", ex); throw ex; } } }
/// <summary> /// 手持端盘点功能 /// </summary> /// <param name="strSn"></param> public string ContainerCheck(string strSn, string status, string userName) { //如果没有盘点任务开启 if (YnDaoHelper.GetInstance().nHibernateHelper.GetCount("select count(*) from AscmCheck as ck where ck.count is null") == 0) { return "没有开启的盘点任务"; } Dal.SupplierPreparation.Entities.AscmContainer ascmContainer = MideaAscm.Services.SupplierPreparation.AscmContainerService.GetInstance().Get(strSn); using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().BeginTransaction()) { try { if (!string.IsNullOrEmpty(status)) { //如果状态是丢失 if (status == "LOST") { ascmContainer.status = Dal.SupplierPreparation.Entities.AscmContainer.StatusDefine.losted; } else { ascmContainer.status = Dal.SupplierPreparation.Entities.AscmContainer.StatusDefine.unuse; } //盘点ID int intcheckId = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmCheck)"); //如果没有重复就新建 if (YnDaoHelper.GetInstance().nHibernateHelper.GetCount("select count(*) from AscmCheckContainerInfo where containerId='" + strSn + "' and checkId=" + intcheckId + "") == 0) { Dal.ContainerManage.Entities.AscmCheckContainerInfo CheckInfo = new Dal.ContainerManage.Entities.AscmCheckContainerInfo(); CheckInfo.id = YnDaoHelper.GetInstance().nHibernateHelper.GetMaxId("select max(id) from AscmCheckContainerInfo)") + 1; CheckInfo.checkId = intcheckId; CheckInfo.containerId = ascmContainer.sn; CheckInfo.status = status; CheckInfo.supplierId = ascmContainer.supplierId; CheckInfo.createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); CheckInfo.createUser = userName; YnDaoHelper.GetInstance().nHibernateHelper.Save<Dal.ContainerManage.Entities.AscmCheckContainerInfo>(CheckInfo); } else //重复就更新 { Dal.ContainerManage.Entities.AscmCheckContainerInfo ascmCheckContainerInfo = YnDaoHelper.GetInstance().nHibernateHelper.Get<Dal.ContainerManage.Entities.AscmCheckContainerInfo>(Convert.ToInt32(YnDaoHelper.GetInstance().nHibernateHelper.GetObject("select id from AscmCheckContainerInfo where containerId='" + strSn + "' and checkId=" + intcheckId + ""))); ascmCheckContainerInfo.status = status; YnDaoHelper.GetInstance().nHibernateHelper.Update<Dal.ContainerManage.Entities.AscmCheckContainerInfo>(ascmCheckContainerInfo); tx.Commit();//正确执行提交 return "系统已更新该容器的盘点信息"; } } ascmContainer.isCheck = 1; YnDaoHelper.GetInstance().nHibernateHelper.Update<Dal.SupplierPreparation.Entities.AscmContainer>(ascmContainer); tx.Commit();//正确执行提交 return ""; } catch (Exception ex) { tx.Rollback();//回滚 YnBaseClass2.Helper.LogHelper.GetLog().Error("保存失败(Save AscmCheckContainerInfo)", ex); throw ex; } } }