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
 | ||
|     }
 | ||
| }
 |