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
|
{
|
/// <summary>
|
/// 搜索表
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static List<BASE_CONTAINER> Search(ContainerWebEntity webEntity, int page, int onePageNum, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<BASE_CONTAINER>();
|
//便利所有属性
|
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<BASE_CONTAINER> list = edm.BASE_CONTAINER.Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList();
|
|
return list;
|
}
|
}
|
|
/// <summary>
|
/// 搜索视图
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static List<View_BASE_CONTAINER> SearchView(ContainerWebEntity webEntity, int page, int onePageNum, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_BASE_CONTAINER>();
|
//便利所有属性
|
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<View_BASE_CONTAINER> list = edm.View_BASE_CONTAINER.OrderByDescending(x=>x.id).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList();
|
|
return list;
|
}
|
}
|
|
/// <summary>
|
/// 搜索视图
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static List<View_BASE_CONTAINER> SearchAllView(ContainerWebEntity webEntity, out string msg)
|
{
|
msg = "";
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_BASE_CONTAINER>();
|
//便利所有属性
|
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<View_BASE_CONTAINER> list = edm.View_BASE_CONTAINER.OrderByDescending(x => x.id).Where(f.Compile()).ToList();
|
|
return list;
|
}
|
}
|
/// <summary>
|
/// 搜索视图数量
|
/// </summary>
|
/// <param name="keyValue"></param>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public static int SearchViewNum(ContainerWebEntity webEntity)
|
{
|
using (Model edm = new Model())
|
{
|
var f = PredicateBuilder.True<View_BASE_CONTAINER>();
|
|
//便利所有属性
|
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;
|
}
|
}
|
|
|
/// <summary>
|
/// 添加修改托盘
|
/// </summary>
|
/// <param name="role"></param>
|
/// <returns></returns>
|
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;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 删除托盘
|
/// </summary>
|
/// <param name="webDevice"></param>
|
/// <returns></returns>
|
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);
|
}
|
}
|
}
|
|
/// <summary>
|
/// 关联删除
|
/// </summary>
|
/// <param name="user"></param>
|
/// <returns></returns>
|
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<HomeNumDataEntity> GetContainerType(out string msg)
|
{
|
msg = "";
|
try
|
{
|
using (Model edm = new Model())
|
{
|
List<HomeNumDataEntity> hnlst = new List<HomeNumDataEntity>();
|
var containerlst = edm.BASE_CONTAINER.Where(x => x.ENABLE == 1).ToList();
|
List<string> 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;
|
}
|
}
|
}
|
}
|