public HumanDangerEntity GetDetail(string id) { var result = default(HumanDangerEntity); using (var ctx = new DataContext()) { var entity = ctx.HumanDangers.Include("Measures").FirstOrDefault(x => x.HumanDangerId == id); if (entity != null) { result = new HumanDangerEntity() { HumanDangerId = entity.HumanDangerId, Task = entity.Task, TaskArea = entity.TaskArea, DeptId = entity.DeptId, DeptName = entity.DeptName, TaskType = entity.TaskType, DangerLevel = entity.DangerLevel, OtherMeasure = entity.OtherMeasure, OperateTime = entity.OperateTime, OperateUserId = entity.OperateUserId, OperateUser = entity.OperateUser, }; result.Measures = entity.Measures.Select(x => new HumanDangerMeasureEntity() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId }).ToList(); } } return(result); }
public void Approve(HumanDangerEntity model, ApproveRecordEntity approve) { using (var ctx = new DataContext()) { var entity = ctx.HumanDangers.Include("Measures").FirstOrDefault(x => x.HumanDangerId == model.HumanDangerId); entity.TaskArea = model.TaskArea; entity.TaskType = model.TaskType; entity.DangerLevel = model.DangerLevel; entity.State = model.State; for (int i = 0; i < entity.Measures.Count; i++) { var measure = model.Measures.Find(x => x.HumanDangerMeasureId == entity.Measures[i].HumanDangerMeasureId); if (measure == null) { ctx.Entry(entity.Measures[i]).State = System.Data.Entity.EntityState.Deleted; i--; } else { entity.Measures[i].CategoryId = measure.CategoryId; entity.Measures[i].Category = measure.Category; entity.Measures[i].MeasureId = measure.MeasureId; entity.Measures[i].DangerReason = measure.DangerReason; entity.Measures[i].MeasureContent = measure.MeasureContent; } } var newitems = model.Measures.Where(x => !entity.Measures.Any(y => y.HumanDangerMeasureId == x.HumanDangerMeasureId)); entity.Measures.AddRange(newitems.Select(x => new HumanDangerMeasure() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId })); ctx.SaveChanges(); } var db = DbFactory.Base() as Database; db.dbcontext.Set <ApproveRecordEntity>().Add(approve); db.dbcontext.SaveChanges(); }
public void Save(HumanDangerEntity model) { using (var ctx = new DataContext()) { var entity = ctx.HumanDangers.Include("Measures").FirstOrDefault(x => x.HumanDangerId == model.HumanDangerId); if (entity == null) { entity = new HumanDanger() { HumanDangerId = model.HumanDangerId, Task = model.Task, TaskArea = model.TaskArea, DeptId = model.DeptId, DeptName = model.DeptName, TaskType = model.TaskType, DangerLevel = model.DangerLevel, OtherMeasure = model.OtherMeasure, OperateTime = model.OperateTime, OperateUserId = model.OperateUserId, OperateUser = model.OperateUser, Measures = new List <HumanDangerMeasure>() }; entity.Measures.AddRange(model.Measures.Select(x => new HumanDangerMeasure() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId })); ctx.HumanDangers.Add(entity); } else { entity.Task = model.Task; entity.TaskArea = model.TaskArea; entity.DeptId = model.DeptId; entity.DeptName = model.DeptName; entity.TaskType = model.TaskType; entity.DangerLevel = model.DangerLevel; entity.OtherMeasure = model.OtherMeasure; entity.OperateTime = model.OperateTime; entity.OperateUserId = model.OperateUserId; entity.OperateUser = model.OperateUser; for (int i = 0; i < entity.Measures.Count; i++) { var measure = model.Measures.Find(x => x.HumanDangerMeasureId == entity.Measures[i].HumanDangerMeasureId); if (measure == null) { ctx.Entry(entity.Measures[i]).State = System.Data.Entity.EntityState.Deleted; i--; } else { entity.Measures[i].CategoryId = measure.CategoryId; entity.Measures[i].Category = measure.Category; entity.Measures[i].MeasureId = measure.MeasureId; entity.Measures[i].DangerReason = measure.DangerReason; entity.Measures[i].MeasureContent = measure.MeasureContent; } } var newitems = model.Measures.Where(x => !entity.Measures.Any(y => y.HumanDangerMeasureId == x.HumanDangerMeasureId)); entity.Measures.AddRange(newitems.Select(x => new HumanDangerMeasure() { HumanDangerMeasureId = x.HumanDangerMeasureId, Category = x.Category, CategoryId = x.CategoryId, DangerReason = x.DangerReason, MeasureContent = x.MeasureContent, MeasureId = x.MeasureId })); } ctx.SaveChanges(); } }
public List <HumanDangerEntity> GetData(string key, int pagesize, int page, string deptId, out int total) { var result = new List <HumanDangerEntity>(); using (var ctx = new DataContext()) { var query = ctx.HumanDangers.AsQueryable(); query = query.Where(x => x.State == 0); if (!string.IsNullOrEmpty(key)) { query = query.Where(x => x.Task.Contains(key) || x.TaskArea.Contains(key) || x.DeptName.Contains(key) || x.TaskType.Contains(key)); } if (!string.IsNullOrWhiteSpace(deptId)) { var db = DbFactory.Base(); var current = from q in db.IQueryable <DepartmentEntity>() where q.DepartmentId == deptId select q; var subquery = from q in db.IQueryable <DepartmentEntity>() where q.ParentId == deptId select q; while (subquery.Count() > 0) { current = current.Concat(subquery); subquery = from q1 in subquery join q2 in db.IQueryable <DepartmentEntity>() on q1.DepartmentId equals q2.ParentId select q2; } var deptids = current.Select(x => x.DepartmentId).ToList(); Expression <Func <HumanDanger, bool> > exp = x => false; foreach (var item in deptids) { exp = exp.Or(x => x.DeptId.Contains(item)); } query = query.Where(exp); //查找选择的部门的所有下级 ,包括当前部门 // var db = new RepositoryFactory().BaseRepository(); //var checkDept = db.IQueryable<DepartmentEntity>(p => p.DepartmentId == deptId).FirstOrDefault(); //if (checkDept == null) //{ // total = 0; // return result; //} //List<string> deptIds = db.IQueryable<DepartmentEntity>(x => x.EnCode.Contains(checkDept.EnCode)).Select(p => p.DepartmentId).ToList();//符合条件的部门的id //System.Linq.Expressions.Expression<Func<HumanDanger, bool>> expressions = p => p.DeptId.Contains(deptId); //if (deptIds != null && deptIds.Count > 0) //{ // foreach (var item in deptIds) // { // if (item != deptId) // { // expressions = expressions.Or(x => x.DeptId.Contains(item)); // } // } //} //query = query.Where(expressions); } total = query.Count(); var data = query.OrderByDescending(x => x.OperateTime).Skip(pagesize * (page - 1)).Take(pagesize).ToList(); foreach (var item in data) { var humandanger = new HumanDangerEntity() { HumanDangerId = item.HumanDangerId, Task = item.Task, TaskArea = item.TaskArea, TaskType = item.TaskType, DeptId = item.DeptId, DeptName = item.DeptName, DangerLevel = item.DangerLevel, OperateTime = item.OperateTime, OtherMeasure = item.OtherMeasure }; result.Add(humandanger); } } return(result); }
public void Approve(HumanDangerEntity model, ApproveRecordEntity approve) { IHumanDangerService service = new HumanDangerService(); service.Approve(model, approve); }
public void Save(HumanDangerEntity model) { IHumanDangerService service = new HumanDangerService(); service.Save(model); }