Example #1
0
        public void Complete(DepartmentTaskEntity model)
        {
            IRepository db = new RepositoryFactory().BaseRepository();

            var entity = db.FindEntity <DepartmentTaskEntity>(model.TaskId);

            if (entity == null)
            {
                return;
            }

            entity.Status = model.Status;
            db.Update(entity);
        }
        public ViewResult Detail(string id)
        {
            var user  = OperatorProvider.Provider.Current();
            var model = new DepartmentTaskEntity()
            {
                DutyDepartmentId = user.DeptId, DutyDepartment = user.DeptName
            };

            if (!string.IsNullOrEmpty(id))
            {
                var bll = new DepartmentTaskBLL();
                model = bll.Detail(id);
            }

            if (model.SubTasks == null)
            {
                model.SubTasks = new List <DepartmentTaskEntity>();
            }
            model.SubTasks.ForEach(x => x.State = 0);
            model.SubTasks = model.SubTasks.Select(x => new { Seq = x.DutyDepartmentId == user.DeptId ? 0 : 1, Task = x }).OrderBy(x => x.Seq).ThenBy(x => x.Task.DutyDepartmentId).ThenByDescending(x => x.Task.CreateTime).Select(x => x.Task).ToList();
            ViewBag.userid = user.UserId;
            ViewBag.id     = id;

            var date = DateTime.Today;

            if (model.Status == "未开始")
            {
                if (model.StartDate.Value <= date && model.EndDate.Value >= date)
                {
                    model.Status = "进行中";
                }
                else if (model.EndDate < DateTime.Now)
                {
                    model.Status = "未完成";
                }
            }

            return(View(model));
        }
Example #3
0
 private void BuildRecords(DepartmentTaskEntity newEntity, DepartmentTaskEntity oldEntity, string user)
 {
     if (oldEntity.UpdateRecords == null)
     {
         oldEntity.UpdateRecords = string.Empty;
     }
     if (newEntity.Content != oldEntity.Content)
     {
         oldEntity.UpdateRecords += string.Format("{0}更新于{1},任务名称从{2}变更为{3}。{4}", user, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), oldEntity.Content, newEntity.Content, System.Environment.NewLine);
     }
     if (newEntity.StartDate != oldEntity.StartDate || newEntity.EndDate != oldEntity.EndDate)
     {
         oldEntity.UpdateRecords += string.Format("{0}更新于{1},计划时间从{2}变更为{3}。{4}", user, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), oldEntity.StartDate.Value.ToString("yyyy-MM-dd") + "至" + oldEntity.EndDate.Value.ToString("yyyy-MM-dd"), newEntity.StartDate.Value.ToString("yyyy-MM-dd") + "至" + newEntity.EndDate.Value.ToString("yyyy-MM-dd"), System.Environment.NewLine);
     }
     if (newEntity.DutyUser != oldEntity.DutyUser)
     {
         oldEntity.UpdateRecords += string.Format("{0}更新于{1},责任人从{2}变更为{3}。{4}", user, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), oldEntity.DutyUser, newEntity.DutyUser, System.Environment.NewLine);
     }
     if (newEntity.Status == "已取消")
     {
         oldEntity.UpdateRecords += string.Format("{0}更新于{1},工作任务已取消{2}", user, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), System.Environment.NewLine);
     }
 }
        public ViewResult Update(string id)
        {
            var user  = OperatorProvider.Provider.Current();
            var model = new DepartmentTaskEntity()
            {
                DutyDepartmentId = user.DeptId, DutyDepartment = user.DeptName
            };

            if (!string.IsNullOrEmpty(id))
            {
                var bll = new DepartmentTaskBLL();
                model = bll.Detail(id);
            }

            if (model.SubTasks == null)
            {
                model.SubTasks = new List <DepartmentTaskEntity>();
            }
            model.SubTasks.ForEach(x => x.State = 0);
            model.SubTasks = model.SubTasks.Select(x => new { Seq = x.DutyDepartmentId == user.DeptId ? 0 : 1, Task = x }).OrderBy(x => x.Seq).ThenBy(x => x.Task.DutyDepartmentId).ThenByDescending(x => x.Task.CreateTime).Select(x => x.Task).ToList();
            ViewBag.userid = user.UserId;
            ViewBag.id     = id;
            return(View(model));
        }
Example #5
0
        public void Edit(DepartmentTaskEntity model)
        {
            IRepository db = new RepositoryFactory().BaseRepository().BeginTrans();

            try
            {
                var query = from q1 in db.IQueryable <DepartmentTaskEntity>()
                            join q2 in db.IQueryable <DepartmentTaskEntity>() on q1.TaskId equals q2.ParentTaskId into into2
                            where q1.TaskId == model.TaskId
                            select new { q1, q2 = into2 };
                var entity = query.FirstOrDefault();

                if (entity == null)
                {
                    db.Insert(model);
                    db.Insert(model.SubTasks);
                }
                else
                {
                    BuildRecords(model, entity.q1, model.ModifyUser);
                    entity.q1.Content          = model.Content;
                    entity.q1.StartDate        = model.StartDate;
                    entity.q1.EndDate          = model.EndDate;
                    entity.q1.DutyDepartmentId = model.DutyDepartmentId;
                    entity.q1.DutyDepartment   = model.DutyDepartment;
                    entity.q1.DutyUserId       = model.DutyUserId;
                    entity.q1.DutyUser         = model.DutyUser;
                    entity.q1.TodoUserId       = model.TodoUserId;
                    entity.q1.TodoUser         = model.TodoUser;
                    entity.q1.Remark           = model.Remark;
                    entity.q1.Status           = model.Status;
                    db.Update(entity.q1);

                    foreach (var item in entity.q2)
                    {
                        var m = model.SubTasks.Find(x => x.TaskId == item.TaskId);
                        BuildRecords(m, item, model.ModifyUser);
                        item.Content          = m.Content;
                        item.StartDate        = m.StartDate;
                        item.EndDate          = m.EndDate;
                        item.DutyDepartmentId = m.DutyDepartmentId;
                        item.DutyDepartment   = m.DutyDepartment;
                        item.DutyUserId       = m.DutyUserId;
                        item.DutyUser         = m.DutyUser;
                        item.Remark           = m.Remark;
                        item.Status           = m.Status;
                        db.Update(item);

                        var taskquery = from q in db.IQueryable <DepartmentTaskEntity>()
                                        where q.ParentTaskId == item.TaskId
                                        select q;

                        var subquery = from q1 in db.IQueryable <DepartmentTaskEntity>()
                                       join q2 in query on q1.ParentTaskId equals item.TaskId
                                       select q1;

                        while (subquery.Count() > 0)
                        {
                            taskquery = taskquery.Concat(subquery);

                            subquery = from q1 in db.IQueryable <DepartmentTaskEntity>()
                                       join q2 in subquery on q1.ParentTaskId equals q2.TaskId
                                       select q1;
                        }

                        var data = taskquery.ToList();
                        foreach (var item1 in data)
                        {
                            item1.Status         = "已取消";
                            item1.UpdateRecords += string.Format("{0}更新于{1},工作任务已取消{2}", model.ModifyUser, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), System.Environment.NewLine);
                        }
                        db.Update(data);
                    }

                    var newitems = model.SubTasks.Where(x => !entity.q2.Any(y => y.TaskId == x.TaskId)).ToList();
                    db.Insert(newitems);

                    newitems.ForEach(x => x.State = 1);
                }
                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
        }
        public JsonResult Edit(string id, DepartmentTaskEntity model)
        {
            var user    = OperatorProvider.Provider.Current();
            var success = true;
            var message = "保存成功!";

            try
            {
                if (string.IsNullOrEmpty(id))
                {
                    model.TaskId       = Guid.NewGuid().ToString();
                    model.Status       = "未开始";
                    model.CreateUserId = model.ModifyUserId = user.UserId;
                    model.CreateUser   = model.ModifyUser = user.UserName;
                    model.CreateTime   = model.ModifyTime = DateTime.Now;
                    model.CreateDeptId = user.DeptId;
                    model.CreateDept   = user.DeptName;
                }
                else
                {
                    model.TaskId       = id;
                    model.ModifyTime   = DateTime.Now;
                    model.ModifyUserId = user.UserId;
                    model.ModifyUser   = user.UserName;
                }

                if (model.SubTasks == null)
                {
                    model.SubTasks = new List <DepartmentTaskEntity>();
                }
                foreach (var item in model.SubTasks)
                {
                    item.CreateUserId = item.ModifyUserId = user.UserId;
                    item.CreateUser   = item.ModifyUser = user.UserName;
                    item.CreateTime   = item.ModifyTime = DateTime.Now;
                    item.CreateDeptId = user.DeptId;
                    item.CreateDept   = user.DeptName;
                    item.ParentTaskId = model.TaskId;
                    if (item.Status != "已完成" && item.Status != "已取消")
                    {
                        item.Status = "未开始";
                    }
                }

                var bll = new DepartmentTaskBLL();
                bll.Edit(model);

                WorkmeetingBLL meetBll      = new WorkmeetingBLL();
                var            deptbll      = new DepartmentBLL();
                var            trainingtype = Config.GetValue("TrainingType");
                foreach (var item in model.SubTasks)
                {
                    if (item.IsPublish == true)
                    {
                        continue;
                    }

                    var dept = deptbll.GetEntity(item.DutyDepartmentId);
                    if (dept == null)
                    {
                        continue;
                    }
                    if (dept.Nature != "班组")
                    {
                        continue;
                    }

                    var job = new MeetingJobEntity();
                    job.JobId                 = Guid.NewGuid().ToString();
                    job.CreateDate            = DateTime.Now;
                    job.CreateUserId          = user.UserId;
                    job.GroupId               = dept.DepartmentId;
                    job.Relation              = new MeetingAndJobEntity();
                    job.Relation.MeetingJobId = Guid.NewGuid().ToString();
                    job.Relation.JobId        = job.JobId;
                    job.IsFinished            = job.Relation.IsFinished = "undo";
                    job.Relation.JobUserId    = item.DutyUserId;
                    job.Relation.JobUser      = item.DutyUser;
                    job.Job               = item.Content;
                    job.TemplateId        = item.TaskId;
                    job.StartTime         = DateTime.Parse(item.StartDate.Value.ToString("yyyy/MM/dd") + " 08:30");
                    job.EndTime           = DateTime.Parse(item.EndDate.Value.ToString("yyyy/MM/dd") + " 17:30");
                    job.RiskLevel         = "低风险";
                    job.TaskType          = "管理任务";
                    job.Relation.JobUsers = new List <JobUserEntity>()
                    {
                        new JobUserEntity()
                        {
                            UserId = item.DutyUserId, UserName = item.DutyUser, JobUserId = Guid.NewGuid().ToString(), JobType = "ischecker", CreateDate = DateTime.Now, MeetingJobId = job.Relation.MeetingJobId
                        }
                    };
                    if (job.DangerousList == null)
                    {
                        job.DangerousList = new List <JobDangerousEntity>();
                    }

                    job = meetBll.PostJob(job);
                    if (string.IsNullOrEmpty(job.Relation.StartMeetingId))
                    {
                        message = "任务已分配至班前会,等待下发。";
                    }
                    else
                    {
                        var meeting = meetBll.GetEntity(job.Relation.StartMeetingId);
                        if (meeting.IsOver)
                        {
                            message = "任务已下发。";
                        }
                        else
                        {
                            message = "任务已分配至班前会,等待下发。";
                        }
                    }

                    if (!string.IsNullOrEmpty(job.Relation.StartMeetingId))
                    {
                        var meeting = meetBll.GetDetail(job.Relation.StartMeetingId);
                        if (meeting != null && meeting.IsOver && job.NeedTrain)
                        {
                            if (trainingtype == "人身风险预控")
                            {
                                var training = new HumanDangerTrainingEntity()
                                {
                                    TrainingId = Guid.NewGuid().ToString(), TrainingTask = job.Job, CreateTime = DateTime.Now, CreateUserId = user.UserId, MeetingJobId = job.Relation.MeetingJobId, DeptId = job.GroupId, TrainingPlace = job.JobAddr, No = job.TicketCode
                                };
                                if (!string.IsNullOrEmpty(job.TemplateId))
                                {
                                    training.HumanDangerId = job.TemplateId;
                                }
                                training.TrainingUsers = job.Relation.JobUsers.Select(x => new TrainingUserEntity()
                                {
                                    TrainingUserId = Guid.NewGuid().ToString(), UserId = x.UserId, UserName = x.UserName, TrainingRole = x.JobType == "ischecker" ? 1 : 0
                                }).ToList();
                                new HumanDangerTrainingBLL().Add(training);
                            }
                            else
                            {
                                var dangerbll  = new DangerBLL();
                                var messagebll = new MessageBLL();

                                var danger = dangerbll.Save(job);
                                if (danger != null)
                                {
                                    messagebll.SendMessage("危险预知训练", danger.Id);
                                }
                            }
                        }
                    }
                    var msgbll = new MessageBLL();
                    msgbll.SendMessage("工作提示", job.Relation.MeetingJobId);

                    item.IsPublish = true;
                }

                bll.Publish(model.SubTasks.Where(x => x.IsPublish == true).ToList());
            }
            catch (Exception ex)
            {
                success = false;
                message = ex.Message;
            }
            return(Json(new AjaxResult()
            {
                type = success ? ResultType.success : ResultType.error, message = message
            }));
        }
Example #7
0
        public void Complete(DepartmentTaskEntity model)
        {
            IDepartmentTaskService service = new DepartmentTaskService();

            service.Complete(model);
        }
Example #8
0
        public void Edit(DepartmentTaskEntity model)
        {
            IDepartmentTaskService service = new DepartmentTaskService();

            service.Edit(model);
        }