218 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			218 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace BLL
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public static class APITrainingTaskService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 根据ProjectId、PersonId获取培训任务教材明细列表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据ProjectId、PersonId获取培训任务教材明细列表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="personId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="states">1-培训中;2-已完成</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.TrainingTaskItem> getTrainingTaskListByProjectIdPersonId(string projectId, string personId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                personId = PersonService.GetPersonIdByUserId(personId);
							 | 
						|||
| 
								 | 
							
								                var getDataLists = (from x in db.Training_Task
							 | 
						|||
| 
								 | 
							
								                                    join y in db.Training_Plan on x.PlanId equals y.PlanId
							 | 
						|||
| 
								 | 
							
								                                    where x.ProjectId == projectId && x.UserId == personId && y.States != "0"
							 | 
						|||
| 
								 | 
							
								                                    orderby x.TaskDate descending
							 | 
						|||
| 
								 | 
							
								                                    select new Model.TrainingTaskItem
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        TaskId = x.TaskId,
							 | 
						|||
| 
								 | 
							
								                                        //PlanId = x.PlanId,
							 | 
						|||
| 
								 | 
							
								                                        PlanCode = y.PlanCode,
							 | 
						|||
| 
								 | 
							
								                                        PlanName = y.PlanName,
							 | 
						|||
| 
								 | 
							
								                                        TrainStartDate = string.Format("{0:yyyy-MM-dd HH:mm}", y.TrainStartDate),
							 | 
						|||
| 
								 | 
							
								                                        TeachAddress = y.TeachAddress,
							 | 
						|||
| 
								 | 
							
								                                        //PersonId = x.UserId,
							 | 
						|||
| 
								 | 
							
								                                        PersonName = db.SitePerson_Person.FirstOrDefault(p => p.PersonId == x.UserId).PersonName,
							 | 
						|||
| 
								 | 
							
								                                        TaskDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.TaskDate),
							 | 
						|||
| 
								 | 
							
								                                        TrainTypeName = db.Base_TrainType.FirstOrDefault(b => b.TrainTypeId == y.TrainTypeId).TrainTypeName,
							 | 
						|||
| 
								 | 
							
								                                        TrainLevelName = db.Base_TrainLevel.FirstOrDefault(b => b.TrainLevelId == y.TrainLevelId).TrainLevelName,
							 | 
						|||
| 
								 | 
							
								                                        PlanStatesName = y.States == "3" ? "已完成" : "培训中",
							 | 
						|||
| 
								 | 
							
								                                    }).ToList();
							 | 
						|||
| 
								 | 
							
								                return getDataLists;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据TaskId获取培训任务教材明细列表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据TaskId获取培训任务列表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="taskId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.TrainingTaskItemItem> getTrainingTaskItemListByTaskId(string taskId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ////生成培训任务下培训明细
							 | 
						|||
| 
								 | 
							
								                GetDataService.CreateTrainingTaskItemByTaskId(taskId);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var getDataLists = (from x in db.Training_TaskItem
							 | 
						|||
| 
								 | 
							
								                                    where x.TaskId == taskId
							 | 
						|||
| 
								 | 
							
								                                    orderby x.TrainingItemCode
							 | 
						|||
| 
								 | 
							
								                                    select new Model.TrainingTaskItemItem
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        TaskItemId = x.TaskItemId,
							 | 
						|||
| 
								 | 
							
								                                        TaskId = x.TaskId,
							 | 
						|||
| 
								 | 
							
								                                        PlanId = x.PlanId,
							 | 
						|||
| 
								 | 
							
								                                        PersonId = x.PersonId,
							 | 
						|||
| 
								 | 
							
								                                        TrainingItemCode = x.TrainingItemCode,
							 | 
						|||
| 
								 | 
							
								                                        TrainingItemName = x.TrainingItemName,
							 | 
						|||
| 
								 | 
							
								                                        AttachUrl = x.AttachUrl.Replace('\\', '/'),
							 | 
						|||
| 
								 | 
							
								                                    }).ToList();
							 | 
						|||
| 
								 | 
							
								                return getDataLists;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据PlanId、PersonId将人员加入培训任务条件
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据PlanId、PersonId将人员加入培训任务条件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="planId">培训计划ID</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="personId">人员ID</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static string getTrainingTaskByPlanIdPersonIdCondition(string planId, string personId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string alterString = string.Empty;
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var task = db.Training_Task.FirstOrDefault(x => x.PlanId == planId && x.UserId == personId);
							 | 
						|||
| 
								 | 
							
								                if (task != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    alterString = "人员已在培训任务中!";
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var plan = db.Training_Plan.FirstOrDefault(e => e.PlanId == planId);
							 | 
						|||
| 
								 | 
							
								                    if (plan != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (plan.States != "0" && plan.States != "1")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            alterString = "当前培训不能再加入人员!";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var person = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == personId);
							 | 
						|||
| 
								 | 
							
								                            if (person != null && plan.ProjectId == person.ProjectId && plan.UnitIds.Contains(person.UnitId)
							 | 
						|||
| 
								 | 
							
								                                    && (string.IsNullOrEmpty(plan.WorkPostId) || plan.WorkPostId.Contains(person.WorkPostId)))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var trainType = db.Base_TrainType.FirstOrDefault(e => e.TrainTypeId == plan.TrainTypeId); 
							 | 
						|||
| 
								 | 
							
								                                if (trainType != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (!trainType.IsRepeat.HasValue || trainType.IsRepeat == false)
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        var trainRecord = (from x in db.EduTrain_TrainRecord
							 | 
						|||
| 
								 | 
							
								                                                           join y in db.EduTrain_TrainRecordDetail on x.TrainingId equals y.TrainingId
							 | 
						|||
| 
								 | 
							
								                                                           where x.TrainTypeId == plan.TrainTypeId && x.ProjectId == person.ProjectId
							 | 
						|||
| 
								 | 
							
								                                                           && y.PersonId == personId && y.CheckResult == true
							 | 
						|||
| 
								 | 
							
								                                                           select x).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                                        if (trainRecord != null)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            alterString = "人员已参加过当前类型的培训!";
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            var getTask = (from x in db.Training_Plan
							 | 
						|||
| 
								 | 
							
								                                                           join y in db.Training_Task on x.PlanId equals y.PlanId
							 | 
						|||
| 
								 | 
							
								                                                           where x.TrainTypeId == plan.TrainTypeId && y.UserId == personId && x.States != "3"
							 | 
						|||
| 
								 | 
							
								                                                           select x).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                                            if (getTask != null)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                alterString = "人员已再同培训类型的培训中!";
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    alterString = "当前培训类型有问题!";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                alterString = "人员与培训计划不匹配!";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        alterString = "当前培训计划不允许再增加人员!";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return alterString;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据PlanId、PersonId将人员加入培训任务
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据PlanId、PersonId将人员加入培训任务
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="planId">培训计划ID</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="personId">人员ID</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static void getTrainingTaskByPlanIdPersonId(string planId, string personId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var plan = db.Training_Plan.FirstOrDefault(e => e.PlanId == planId);
							 | 
						|||
| 
								 | 
							
								                Model.Training_Task newTask = new Model.Training_Task
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    TaskId = SQLHelper.GetNewID(),
							 | 
						|||
| 
								 | 
							
								                    PlanId = planId,
							 | 
						|||
| 
								 | 
							
								                    UserId = personId,
							 | 
						|||
| 
								 | 
							
								                    TaskDate = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                    States = "0",
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                if (plan != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newTask.ProjectId = plan.ProjectId;
							 | 
						|||
| 
								 | 
							
								                    db.Training_Task.InsertOnSubmit(newTask);
							 | 
						|||
| 
								 | 
							
								                    db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    ////生成培训任务下培训明细
							 | 
						|||
| 
								 | 
							
								                    GetDataService.CreateTrainingTaskItemByTaskId(newTask.TaskId);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据TrainingPlanId获取培训任务教材明细列表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据TrainingPlanId获取培训任务教材明细列表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="trainingPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>培训计划人员</returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.TrainingTaskItem> getTrainingTaskListByTrainingPlanId(string trainingPlanId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var getDataLists = (from x in db.Training_Task
							 | 
						|||
| 
								 | 
							
								                                    where x.PlanId == trainingPlanId
							 | 
						|||
| 
								 | 
							
								                                    orderby x.TaskDate descending
							 | 
						|||
| 
								 | 
							
								                                    select new Model.TrainingTaskItem
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        TaskId = x.TaskId,
							 | 
						|||
| 
								 | 
							
								                                        PlanId = x.PlanId,
							 | 
						|||
| 
								 | 
							
								                                        PersonId = x.UserId,
							 | 
						|||
| 
								 | 
							
								                                        PersonName = db.SitePerson_Person.FirstOrDefault(p => p.PersonId == x.UserId).PersonName,
							 | 
						|||
| 
								 | 
							
								                                        TaskDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.TaskDate),
							 | 
						|||
| 
								 | 
							
								                                        States = x.States,
							 | 
						|||
| 
								 | 
							
								                                    }).ToList();
							 | 
						|||
| 
								 | 
							
								                return getDataLists;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |