using IWareDataAccess.EF; using IWareDataAccess.Entity.Car; using IWareDataAccess.Helper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IWareDataAccess.Car.CARTASK { public static class CarTaskSqlFunc { /// /// 搜索表 /// /// /// /// public static List Search(CarTaskWebEntity 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 (i.PropertyType == typeof(DateTime?)) { if (v != null) { DateTime value = DateTime.Parse(v.ToString()); if (i.Name == "updateTimeStart") { f = f.And(x => x.UPDATETIME > value); } if (i.Name == "updateTimeEnd") { f = f.And(x => x.UPDATETIME < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.CAR_CARTASK.Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图 /// /// /// /// public static List SearchView(CarTaskWebEntity webEntity, int page, int onePageNum, string typeInput, 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) { if (i.Name == "taskStatusNot") { string name = i.Name.Replace("Not", ""); value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, name) != null ? Helper.Helper.GetFieldValueByName(x, name).ToString() != value : false); } else { value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false); } } if (i.Name == "taskStatus") { if (typeInput == "1") { f = f.And(x => x.taskStatus == "新建"); } } if (i.Name == "fromDestination") { if (typeInput == "1") { f = f.And(x => x.fromDestination == "一号出口"); } } } else if (i.PropertyType == typeof(DateTime?)) { if (v != null) { DateTime value = DateTime.Parse(v.ToString()); if (i.Name == "updateTimeStart") { f = f.And(x => x.updateTime > value); } if (i.Name == "updateTimeEnd") { f = f.And(x => x.updateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.View_CAR_CARTASK.OrderByDescending(x => x.id).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图数量 /// /// /// /// public static int SearchViewNum(CarTaskWebEntity 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) { if (i.Name == "taskStatusNot") { string name = i.Name.Replace("Not", ""); value = v.ToString(); f = f.And(x => Helper.Helper.GetFieldValueByName(x, name) != null ? Helper.Helper.GetFieldValueByName(x, name).ToString() != value : false); } else { 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 (i.PropertyType == typeof(DateTime?)) { if (v != null) { DateTime value = DateTime.Parse(v.ToString()); if (i.Name == "updateTimeStart") { f = f.And(x => x.updateTime > value); } if (i.Name == "updateTimeEnd") { f = f.And(x => x.updateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } int num = edm.View_CAR_CARTASK.Where(f.Compile()).Count(); return num; } } /// /// 添加叉车任务 /// /// /// public static bool AddOrUpdate(CarTaskWebEntity webEntity, out string msg) { msg = ""; using (Model edm = new Model()) { CAR_CARTASK carTask = new CAR_CARTASK(); carTask = edm.CAR_CARTASK.FirstOrDefault(x => x.CARTASKNAME == webEntity.carTaskName); if (carTask == null) { carTask = new CAR_CARTASK(); } carTask.CARTASKNAME = webEntity.carTaskName ?? carTask.CARTASKNAME; BASE_CONTAINER container = edm.BASE_CONTAINER.FirstOrDefault(x => x.CONTAINERNAME == webEntity.containerName); if (container == null) { msg = "无此托盘"; return false; } carTask.BASE_CONTAINER = container; BASE_PRODUCTIONLINE lineFrom = edm.BASE_PRODUCTIONLINE.FirstOrDefault(x => x.PRODUCTIONLINENAME == webEntity.fromDestination); if (lineFrom != null) { carTask.FROMDESTINATION = webEntity.fromDestination; } else { msg = "无此起始工位"; return false; } BASE_PRODUCTIONLINE lineTo = edm.BASE_PRODUCTIONLINE.FirstOrDefault(x => x.PRODUCTIONLINENAME == webEntity.toDestination); if (lineTo != null) { carTask.TODESTINATION = webEntity.toDestination; } else { //msg = "无此目标工位"; //return false; carTask.TODESTINATION = webEntity.toDestination; } carTask.TASKSTATUS = webEntity.taskStatus ?? carTask.TASKSTATUS; carTask.ENABLE = webEntity.enable ?? carTask.ENABLE; SYS_USER user = edm.SYS_USER.FirstOrDefault(x => x.USERNAME == webEntity.userName); if (user != null) { carTask.CREATORID = user.ID; carTask.CREATEUSERID = user.ID; } carTask.UPDATETIME = DateTime.Now; edm.CAR_CARTASK.AddOrUpdateExtension(carTask); if (edm.SaveChanges() > 0) { return true; } else { msg = "保存失败"; return false; } } } /// /// 修改叉车任务状态 /// /// public static bool CarGetTask(CarTaskWebEntity carTaskEntity, out string msg) { msg = ""; using (Model edm = new Model()) { CAR_CARTASK carTask = edm.CAR_CARTASK.FirstOrDefault(x => x.CARTASKNAME == carTaskEntity.carTaskName); if (carTask == null) { msg = "无此任务"; return false; } SYS_USER user = edm.SYS_USER.FirstOrDefault(x => x.USERNAME == carTaskEntity.getUserName); if (user != null) { carTask.USERID = user.ID; } else { msg = "获取领用人失败!"; return false; } carTask.TASKSTATUS = carTaskEntity.taskStatus; carTask.CREATETIME = DateTime.Now; //CAR_CAR car = edm.CAR_CAR.FirstOrDefault(x => x.CARNAME == carTaskEntity.carName); //if (car == null) //{ // msg = "无此叉车"; // return false; //} //car.CARTASKID = carTask.ID; if (edm.SaveChanges() > 0) { return true; } else { msg = "保存失败"; return false; } } } /// /// 删除 /// /// /// public static bool Delete(CarTaskWebEntity webEntity, out string msg) { msg = ""; using (Model edm = new Model()) { CAR_CARTASK carTask = edm.CAR_CARTASK.FirstOrDefault(x => x.CARTASKNAME == webEntity.carTaskName); if (carTask == null) { //无此角色 msg = "无此叉车任务"; return false; } else { //edm.BASE_CONTAINER_VS_ITEM.Remove(cvi); carTask.ENABLE = 0; if (edm.SaveChanges() > 0) { return true; } else { msg = "保存失败"; return false; } } } } /// /// 获取组盘号 /// /// public static string GetCode() { using (Model edm = new Model()) { string month = DateTime.Now.Month.ToString("00"); string day = DateTime.Now.Day.ToString("00"); string hour = DateTime.Now.Hour.ToString("00"); string minute = DateTime.Now.Minute.ToString("00"); string second = DateTime.Now.Second.ToString("00"); string millSecond = DateTime.Now.Millisecond.ToString("0000"); string time = DateTime.Now.Year.ToString() + month + day + hour + minute + second + millSecond; return "CT" + time; } } public static List GetCarUser(out string msg) { msg = ""; using (Model edm = new Model()) { var carlst = edm.CAR_CAR.Where(x => x.ENABLE == 1).ToList(); var uidlst = carlst.Select(x => x.USERID).Distinct().ToList(); var userlst = edm.SYS_USER.Where(x => x.ENABLE == 1).ToList(); List namelst = new List(); uidlst.ForEach(x => { var uer = userlst.FirstOrDefault(y => y.ID == x); if (uer != null) { namelst.Add(uer.USERNAME); } }); return namelst; } } } }