using IWareDataAccess.EF; using IWareDataAccess.Entity.Base; using IWareDataAccess.Entity.Summary; using IWareDataAccess.Helper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IWareDataAccess.Base.CONTAINER { public static class ContainerSqlFunc { /// /// 搜索表 /// /// /// /// public static List Search(ContainerWebEntity webEntity, int page, int onePageNum, out string msg) { msg = ""; using (Model edm = new Model()) { var f = PredicateBuilder.True(); //便利所有属性 Type type = webEntity.GetType(); foreach (var i in type.GetProperties()) { object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name); if (i.PropertyType == typeof(String)) { string value; if (v != null) { value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false); } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.BASE_CONTAINER.Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图 /// /// /// /// public static List SearchView(ContainerWebEntity webEntity, int page, int onePageNum, out string msg) { msg = ""; using (Model edm = new Model()) { var f = PredicateBuilder.True(); //便利所有属性 Type type = webEntity.GetType(); foreach (var i in type.GetProperties()) { object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name); if (i.PropertyType == typeof(String)) { string value; if (v != null) { value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false); } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.View_BASE_CONTAINER.OrderByDescending(x=>x.id).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图 /// /// /// /// public static List SearchAllView(ContainerWebEntity webEntity, out string msg) { msg = ""; using (Model edm = new Model()) { var f = PredicateBuilder.True(); //便利所有属性 Type type = webEntity.GetType(); foreach (var i in type.GetProperties()) { object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name); if (i.PropertyType == typeof(String)) { string value; if (v != null) { value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false); } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.View_BASE_CONTAINER.OrderByDescending(x => x.id).Where(f.Compile()).ToList(); return list; } } /// /// 搜索视图数量 /// /// /// /// public static int SearchViewNum(ContainerWebEntity webEntity) { using (Model edm = new Model()) { var f = PredicateBuilder.True(); //便利所有属性 Type type = webEntity.GetType(); foreach (var i in type.GetProperties()) { object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name); if (i.PropertyType == typeof(String)) { string value; if (v != null) { value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false); } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } int num = edm.View_BASE_CONTAINER.Where(f.Compile()).Count(); return num; } } /// /// 添加修改托盘 /// /// /// public static bool AddOrUpdate(ContainerWebEntity webEntity,out string msg) { msg = ""; using (Model edm = new Model()) { //查询是否已存在此托盘 BASE_CONTAINER container = edm.BASE_CONTAINER.FirstOrDefault(x => x.CONTAINERNAME == webEntity.containerName); if (container == null) { //无此库位,属于新建 container = new BASE_CONTAINER(); } else { msg = "该器具编号已存在!"; } container.CONTAINERNAME = webEntity.containerName ?? container.CONTAINERNAME; BASE_PALLET pallet = edm.BASE_PALLET.FirstOrDefault(x => x.PALLETCODE == webEntity.palletCode); if (pallet != null) { container.PALLETTYPEID = pallet.ID; //判断尺寸是否合格 if (pallet.LENGTHMAX != null && webEntity.length != null && pallet.LENGTHMAX < webEntity.length) { msg = "超长"; return false; } if (pallet.LENGTHMIN != null && webEntity.length != null && pallet.LENGTHMIN > webEntity.length) { msg = "超短"; return false; } if (pallet.WIDTHMAX != null && webEntity.width != null && pallet.WIDTHMAX < webEntity.width) { msg = "超宽"; return false; } if (pallet.WIDTHMIN != null && webEntity.width != null && pallet.WIDTHMIN > webEntity.width) { msg = "超窄"; return false; } if (pallet.HEIGHTMAX != null && webEntity.height != null && pallet.HEIGHTMAX < webEntity.height) { msg = "超高"; return false; } if (pallet.HEIGHTMIN != null && webEntity.height != null && pallet.HEIGHTMIN > webEntity.height) { msg = "超低"; return false; } } container.CONTAINERTYPE= webEntity.containerType ??container.CONTAINERTYPE; container.STATUS = webEntity.status ?? container.STATUS; container.WEIGHT = webEntity.weight ?? container.WEIGHT; container.LENGTH = webEntity.length ?? container.LENGTH; container.HEIGHT = webEntity.height ?? container.HEIGHT; container.WIDTH = webEntity.width ?? container.WIDTH; container.WEIGHTDIFFERENCE = webEntity.weightDifference ?? container.WEIGHTDIFFERENCE; container.ENABLE = webEntity.enable ?? container.ENABLE; container.CONTAINERDES = webEntity.containerDes ?? container.CONTAINERTYPE; container.ISLOCK = webEntity.isLock ?? container.ISLOCK; edm.BASE_CONTAINER.AddOrUpdateExtension(container); if (edm.SaveChanges() > 0) { return true; } else { return false; } } } /// /// 删除托盘 /// /// /// public static bool Delete(ContainerWebEntity webDevice,out string msg) { msg = ""; using (Model edm = new Model()) { //查询是否已存在此权限 BASE_CONTAINER container = edm.BASE_CONTAINER.FirstOrDefault(x => x.CONTAINERNAME == webDevice.containerName); if (container == null) { //无此角色 msg = "无此托盘"; return false; } else { return DeleteContainerRelevance(container,out msg); } } } /// /// 关联删除 /// /// /// public static bool DeleteContainerRelevance(BASE_CONTAINER container,out string msg) { msg = ""; using (Model edm = new Model()) { //因已释放连接,故重新指向数据库对象进行索引 BASE_CONTAINER containerDelete = edm.BASE_CONTAINER.FirstOrDefault(x => x.CONTAINERNAME == container.CONTAINERNAME); ////删除角色关系 //edm.SYS_USER_VS_ROLE.RemoveRange(roleDelete.SYS_USER_VS_ROLE); //edm.SYS_ROLE_VS_PERMISSION.RemoveRange(roleDelete.SYS_ROLE_VS_PERMISSION); //删除角色 //edm.SYS_ROLE.Remove(roleDelete); containerDelete.ENABLE = 0; if (edm.SaveChanges() > 0) { return true; } else { msg = "保存失败"; return false; } } } public static List GetContainerType(out string msg) { msg = ""; try { using (Model edm = new Model()) { List hnlst = new List(); var containerlst = edm.BASE_CONTAINER.Where(x => x.ENABLE == 1).ToList(); List lst = containerlst.Select(x => x.CONTAINERTYPE).Distinct().ToList(); int i=1; lst.ForEach(x => { hnlst.Add(new HomeNumDataEntity { titel = x, no = i }); i++; }); return hnlst; } } catch (Exception) { return null; } } } }