Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 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();
     }
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        public void Approve(HumanDangerEntity model, ApproveRecordEntity approve)
        {
            IHumanDangerService service = new HumanDangerService();

            service.Approve(model, approve);
        }
Exemplo n.º 6
0
        public void Save(HumanDangerEntity model)
        {
            IHumanDangerService service = new HumanDangerService();

            service.Save(model);
        }