using IWareDataAccess.EF; using IWareDataAccess.Entity.Order; using IWareDataAccess.Entity.Task; using IWareDataAccess.Helper; using IWareDataAccess.Order.INORDER; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IWareDataAccess.Task.TASK { public class TaskRecodeFunc { /// /// 搜索表 /// /// /// /// public static List Search(TaskRecodeWebEntity 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 == "createTimeStart") { f = f.And(x => x.CREATETIME > value); } if (i.Name == "createTimeEnd") { f = f.And(x => x.CREATETIME < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.TASK_TASK.Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图 /// /// /// /// public static List SearchView(TaskRecodeWebEntity 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 == "createTimeStart") { f = f.And(x => x.taskCreateTime > value); } if (i.Name == "createTimeEnd") { f = f.And(x => x.taskCreateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.View_TASK_RECORD.OrderByDescending(x=>x.createTime).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图 /// /// /// /// public static int SearchViewNum(TaskRecodeWebEntity 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 (i.PropertyType == typeof(DateTime?)) { if (v != null) { DateTime value = DateTime.Parse(v.ToString()); if (i.Name == "createTimeStart") { f = f.And(x => x.taskCreateTime > value); } if (i.Name == "createTimeEnd") { f = f.And(x => x.taskCreateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } int num = edm.View_TASK_RECORD.Where(f.Compile()).Count(); return num; } } /// /// 搜索视图(未绑定的入库单的) /// /// /// /// public static List SearchViewNotInOrder(TaskRecodeWebEntity webEntity, int page, int onePageNum, out string msg) { msg = ""; using (Model edm = new Model()) { var taskRecordList = edm.View_TASK_RECORD.Where(x => string.IsNullOrEmpty(x.inOrderCode));//排除已绑定入库单的 DateTime timeValue = DateTime.Now.AddDays(-15);//临时15天过期 taskRecordList = taskRecordList.Where(x => x.createTime > timeValue);//排除时间过久的 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 == "createTimeStart") { f = f.And(x => x.taskCreateTime > value); } if (i.Name == "createTimeEnd") { f = f.And(x => x.taskCreateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } List list = edm.View_TASK_RECORD.OrderByDescending(x => x.createTime).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList(); return list; } } /// /// 搜索视图(未绑定的入库单的) /// /// /// /// public static int SearchViewNotInOrderNum(TaskRecodeWebEntity webEntity) { using (Model edm = new Model()) { var taskRecordList = edm.View_TASK_RECORD.Where(x => string.IsNullOrEmpty(x.inOrderCode));//排除已绑定入库单的 DateTime timeValue = DateTime.Now.AddDays(-15);//临时15天过期 taskRecordList = taskRecordList.Where(x => x.createTime > timeValue);//排除时间过久的 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 == "createTimeStart") { f = f.And(x => x.taskCreateTime > value); } if (i.Name == "createTimeEnd") { f = f.And(x => x.taskCreateTime < value); } } } else { if (v != null) { f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v)); } } } int num = edm.View_TASK_RECORD.Where(f.Compile()).Count(); return num; } } /// /// 更新(绑入库订单) /// /// /// public static bool Update(TaskRecodeWebEntity webEntity, out string msg) { msg = ""; using (Model edm = new Model()) { var task = edm.TASK_RECORD.FirstOrDefault(x => x.ID == webEntity.id); if (task == null) { //无此角色 msg = "无此任务"; return false; } else { ORDER_INORDER order = edm.ORDER_INORDER.FirstOrDefault(x => x.INORDERCODE == webEntity.inOrderCode); if (order != null) { task.INORDERID = order.ID; } else { task.INORDERID = null;//用于解绑 } if (edm.SaveChanges() > 0) { //管理更新入库单状态 InOrderWebEntity inOrderWebEntity = new InOrderWebEntity(); inOrderWebEntity.inOrderCode = webEntity.inOrderCode; bool result = InOrderSqlFunc.AddOrUpdate(inOrderWebEntity, out msg); if (!result) { return result; } return true; } else { msg = "未修改一条数据"; return false; } } } } /// /// 批量更新(绑入库订单) /// /// /// public static bool UpdateList(List webEntityList,string inOrderCode, out string msg) { msg = ""; using (Model edm = new Model()) { //初始化所属订单绑定 ORDER_INORDER order = edm.ORDER_INORDER.FirstOrDefault(x => x.INORDERCODE == inOrderCode); if (order != null) { var taskRecordList = edm.TASK_RECORD.Where(x => x.INORDERID == order.ID).ToList(); foreach (var i in taskRecordList) { i.INORDERID = null; } } else { msg = "未传入订单"; return false; } foreach (var webEntity in webEntityList) { var task = edm.TASK_RECORD.FirstOrDefault(x => x.ID == webEntity.id); if (task == null) { //无此角色 msg = "无此任务"; return false; } else { task.INORDERID = order.ID; } } if (edm.SaveChanges() > 0) { //管理更新入库单状态 InOrderWebEntity inOrderWebEntity = new InOrderWebEntity(); inOrderWebEntity.inOrderCode = inOrderCode; bool result = InOrderSqlFunc.AddOrUpdate(inOrderWebEntity, out msg); if (!result) { return result; } return true; } else { msg = "未修改一条数据"; return false; } } } /// /// 删除 /// /// /// public static bool Delete(TaskRecodeWebEntity webEntity, out string msg) { msg = ""; using (Model edm = new Model()) { var task = edm.TASK_RECORD.FirstOrDefault(x => x.ID == webEntity.id); if (task == null) { //无此角色 msg = "无此任务"; return false; } else { //edm.BASE_CONTAINER_VS_ITEM.Remove(cvi); task.ENABLE = 0; if (edm.SaveChanges() > 0) { return true; } else { msg = "保存失败"; return false; } } } } } }