340 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			340 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using EmitMapper;
 | 
						|
using EmitMapper.MappingConfiguration;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    public static class APITrainingPlanService
 | 
						|
    {
 | 
						|
        #region 根据projectId、trainTypeId、TrainStates获取培训计划列表
 | 
						|
        /// <summary>
 | 
						|
        /// 根据projectId、trainTypeId、TrainStates获取培训计划列表
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.TrainingPlanItem> getTrainingPlanListByProjectIdTrainTypeIdTrainStates(string projectId, string trainTypeId, string states)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                var getDataLists = (from x in db.Training_Plan
 | 
						|
                                    where x.ProjectId == projectId && (x.States == states || states == null) && x.TrainTypeId == trainTypeId
 | 
						|
                                    orderby x.TrainStartDate descending
 | 
						|
                                    select new Model.TrainingPlanItem
 | 
						|
                                    {
 | 
						|
                                        PlanId = x.PlanId,
 | 
						|
                                        PlanCode = x.PlanCode,
 | 
						|
                                        PlanName = x.PlanName,
 | 
						|
                                        ProjectId = x.ProjectId,
 | 
						|
                                        TrainTypeId = x.TrainTypeId,
 | 
						|
                                        TrainTypeName = db.Base_TrainType.First(y => y.TrainTypeId == x.TrainTypeId).TrainTypeName,
 | 
						|
                                        TrainLevelId = x.TrainLevelId,
 | 
						|
                                        TrainLevelName = db.Base_TrainLevel.First(y => y.TrainLevelId == x.TrainLevelId).TrainLevelName,
 | 
						|
                                        DesignerName = db.Sys_User.First(y => y.UserId == x.DesignerId).UserName,
 | 
						|
                                        DesignerId = x.DesignerId,
 | 
						|
                                        DesignerDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.DesignerDate),
 | 
						|
                                        TeachHour = x.TeachHour ?? 0,
 | 
						|
                                        TeachAddress = x.TeachAddress,
 | 
						|
                                        TeachMan = x.TeachMan,
 | 
						|
                                        TrainStartDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.TrainStartDate),
 | 
						|
                                        States = x.States,
 | 
						|
                                        QRCodeUrl = x.QRCodeUrl.Replace('\\', '/'),
 | 
						|
                                    }).ToList();
 | 
						|
                return getDataLists;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 根据培训ID获取培训计划详细
 | 
						|
        /// <summary>
 | 
						|
        /// 根据培训ID获取培训计划详细
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="planId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static Model.TrainingPlanItem getTrainingPlanByTrainingId(string planId)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                var getDataLists = from x in db.Training_Plan
 | 
						|
                                   where x.PlanId == planId
 | 
						|
                                   select new Model.TrainingPlanItem
 | 
						|
                                   {
 | 
						|
                                       PlanId = x.PlanId,
 | 
						|
                                       PlanCode = x.PlanCode,
 | 
						|
                                       PlanName = x.PlanName,
 | 
						|
                                       ProjectId = x.ProjectId,
 | 
						|
                                       TrainTypeId = x.TrainTypeId,
 | 
						|
                                       TrainTypeName = db.Base_TrainType.First(y => y.TrainTypeId == x.TrainTypeId).TrainTypeName,
 | 
						|
                                       TrainLevelId = x.TrainLevelId,
 | 
						|
                                       TrainLevelName = db.Base_TrainLevel.First(y => y.TrainLevelId == x.TrainLevelId).TrainLevelName,
 | 
						|
                                       TeachHour = x.TeachHour ?? 0,
 | 
						|
                                       TeachAddress = x.TeachAddress,
 | 
						|
                                       TrainStartDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.TrainStartDate),
 | 
						|
                                       TeachMan = x.TeachMan,
 | 
						|
                                       UnitIds = x.UnitIds,
 | 
						|
                                       WorkPostId = x.WorkPostId,
 | 
						|
                                       TrainContent = x.TrainContent,
 | 
						|
                                       UnitNames = UnitService.getUnitNamesUnitIds(x.UnitIds),
 | 
						|
                                       WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIds(x.WorkPostId),
 | 
						|
                                       DesignerId = x.DesignerId,
 | 
						|
                                       DesignerName = db.Sys_User.First(y => y.UserId == x.DesignerId).UserName,
 | 
						|
                                       DesignerDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.TrainStartDate),
 | 
						|
                                       States = x.States,
 | 
						|
                                       QRCodeUrl = x.QRCodeUrl.Replace('\\', '/'),
 | 
						|
                                   };
 | 
						|
                return getDataLists.FirstOrDefault();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 根据TrainingPlanId获取培训教材类型列表
 | 
						|
        /// <summary>
 | 
						|
        /// 根据TrainingPlanId获取培训教材类型列表
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="trainingPlanId"></param>
 | 
						|
        /// <returns>培训计划人员</returns>
 | 
						|
        public static List<Model.TrainingPlanItemItem> getTrainingPlanItemListByTrainingPlanId(string trainingPlanId)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                var getDataLists = (from x in db.Training_PlanItem
 | 
						|
                                    join y in db.Training_CompanyTraining on x.CompanyTrainingId equals y.CompanyTrainingId
 | 
						|
                                    join z in db.Training_CompanyTrainingItem on x.CompanyTrainingItemId equals z.CompanyTrainingItemId
 | 
						|
                                    where x.PlanId == trainingPlanId
 | 
						|
                                    orderby y.CompanyTrainingCode
 | 
						|
                                    select new Model.TrainingPlanItemItem
 | 
						|
                                    {
 | 
						|
                                        PlanItemId = x.PlanItemId,
 | 
						|
                                        PlanId = x.PlanId,
 | 
						|
                                        CompanyTrainingId = x.CompanyTrainingId,
 | 
						|
                                        CompanyTrainingName = y.CompanyTrainingName,
 | 
						|
                                        CompanyTrainingCode = y.CompanyTrainingCode,
 | 
						|
                                        CompanyTrainingItemId = x.CompanyTrainingItemId,
 | 
						|
                                        CompanyTrainingItemCode = z.CompanyTrainingItemCode,
 | 
						|
                                        CompanyTrainingItemName = z.CompanyTrainingItemName,
 | 
						|
                                    }).ToList();
 | 
						|
                return getDataLists;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 保存培训计划
 | 
						|
        /// <summary>
 | 
						|
        /// 保存TrainingPlan
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="trainingPlan">培训计划记录</param>
 | 
						|
        /// <param name="trainingTasks">培训人员list</param>
 | 
						|
        /// <param name="trainingPlanItems">培训教材类型list</param>
 | 
						|
        public static void SaveTrainingPlan(Model.TrainingPlanItem trainingPlan)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Training_Plan newTrainingPlan = new Model.Training_Plan
 | 
						|
                {
 | 
						|
                    PlanId = trainingPlan.PlanId,
 | 
						|
                    PlanCode = trainingPlan.PlanCode,
 | 
						|
                    ProjectId = trainingPlan.ProjectId,
 | 
						|
                    DesignerId = trainingPlan.DesignerId,
 | 
						|
                    PlanName = trainingPlan.PlanName,
 | 
						|
                    TrainContent = trainingPlan.TrainContent,
 | 
						|
                    TrainStartDate = Funs.GetNewDateTime(trainingPlan.TrainStartDate),
 | 
						|
                    TeachHour = trainingPlan.TeachHour,
 | 
						|
                    TeachMan = trainingPlan.TeachMan,
 | 
						|
                    TeachAddress = trainingPlan.TeachAddress,
 | 
						|
                    TrainTypeId = trainingPlan.TrainTypeId,
 | 
						|
                    UnitIds = trainingPlan.UnitIds,
 | 
						|
                    WorkPostId = trainingPlan.WorkPostId,
 | 
						|
                    States = trainingPlan.States,
 | 
						|
                };
 | 
						|
 | 
						|
                if (!string.IsNullOrEmpty(trainingPlan.TrainLevelId))
 | 
						|
                {
 | 
						|
                    newTrainingPlan.TrainLevelId = trainingPlan.TrainLevelId;
 | 
						|
                }
 | 
						|
 | 
						|
                if (newTrainingPlan.TrainStartDate.HasValue && newTrainingPlan.TeachHour.HasValue)
 | 
						|
                {
 | 
						|
                    double dd = (double)((decimal)newTrainingPlan.TeachHour.Value);
 | 
						|
                    newTrainingPlan.TrainEndDate = newTrainingPlan.TrainStartDate.Value.AddHours(dd);
 | 
						|
                }
 | 
						|
 | 
						|
                List<Model.TrainingTaskItem> trainingTasks = trainingPlan.TrainingTasks;
 | 
						|
                List<Model.TrainingPlanItemItem> trainingPlanItems = trainingPlan.TrainingPlanItems;
 | 
						|
 | 
						|
                var isUpdate = db.Training_Plan.FirstOrDefault(x => x.PlanId == newTrainingPlan.PlanId);
 | 
						|
                if (isUpdate == null)
 | 
						|
                {
 | 
						|
                    newTrainingPlan.DesignerDate = DateTime.Now;
 | 
						|
                    string unitId = string.Empty;
 | 
						|
                    var user = UserService.GetUserByUserId(newTrainingPlan.DesignerId);
 | 
						|
                    if (user != null)
 | 
						|
                    {
 | 
						|
                        unitId = user.UnitId;
 | 
						|
                    }
 | 
						|
                    newTrainingPlan.PlanCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectTrainingPlanMenuId, newTrainingPlan.ProjectId, unitId);
 | 
						|
                    if (string.IsNullOrEmpty(newTrainingPlan.PlanId))
 | 
						|
                    {
 | 
						|
                        newTrainingPlan.PlanId = SQLHelper.GetNewID();
 | 
						|
                    }
 | 
						|
                    db.Training_Plan.InsertOnSubmit(newTrainingPlan);
 | 
						|
                    db.SubmitChanges();
 | 
						|
 | 
						|
                    CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectTrainingPlanMenuId, newTrainingPlan.ProjectId, null, newTrainingPlan.PlanId, newTrainingPlan.DesignerDate);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    if (newTrainingPlan.States == "0" || newTrainingPlan.States == "1")
 | 
						|
                    {
 | 
						|
                        isUpdate.PlanName = newTrainingPlan.PlanName;
 | 
						|
                        isUpdate.TrainContent = newTrainingPlan.TrainContent;
 | 
						|
                        isUpdate.TrainStartDate = newTrainingPlan.TrainStartDate;
 | 
						|
                        isUpdate.TeachHour = newTrainingPlan.TeachHour;
 | 
						|
                        isUpdate.TrainEndDate = newTrainingPlan.TrainEndDate;
 | 
						|
                        isUpdate.TeachMan = newTrainingPlan.TeachMan;
 | 
						|
                        isUpdate.TeachAddress = newTrainingPlan.TeachAddress;
 | 
						|
                        isUpdate.TrainTypeId = newTrainingPlan.TrainTypeId;
 | 
						|
                        isUpdate.TrainLevelId = newTrainingPlan.TrainLevelId;
 | 
						|
                        isUpdate.UnitIds = newTrainingPlan.UnitIds;
 | 
						|
                        isUpdate.WorkPostId = newTrainingPlan.WorkPostId;
 | 
						|
                        isUpdate.States = newTrainingPlan.States;
 | 
						|
                        db.SubmitChanges();
 | 
						|
                    }
 | 
						|
                    ////删除培训任务
 | 
						|
                    var tasks = from x in db.Training_Task where x.PlanId == newTrainingPlan.PlanId select x;
 | 
						|
                    if (tasks.Count() > 0)
 | 
						|
                    {
 | 
						|
                        var taskItems = from x in db.Training_TaskItem where x.PlanId == newTrainingPlan.PlanId select x;
 | 
						|
                        if (tasks.Count() > 0)
 | 
						|
                        {
 | 
						|
                            db.Training_TaskItem.DeleteAllOnSubmit(taskItems);
 | 
						|
                            db.SubmitChanges();
 | 
						|
                        }
 | 
						|
                        db.Training_Task.DeleteAllOnSubmit(tasks);
 | 
						|
                        db.SubmitChanges();
 | 
						|
                    }
 | 
						|
 | 
						|
                    ////删除培训教材类型
 | 
						|
                    var planItem = (from x in db.Training_PlanItem where x.PlanId == newTrainingPlan.PlanId select x).ToList();
 | 
						|
                    if (planItem.Count() > 0)
 | 
						|
                    {
 | 
						|
                        db.Training_PlanItem.DeleteAllOnSubmit(planItem);
 | 
						|
                        db.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                if (trainingTasks.Count() > 0)
 | 
						|
                {
 | 
						|
                    ////新增培训人员明细
 | 
						|
                    foreach (var item in trainingTasks)
 | 
						|
                    {
 | 
						|
                        if (!string.IsNullOrEmpty(item.PersonId))
 | 
						|
                        {
 | 
						|
                            Model.Training_Task newTrainDetail = new Model.Training_Task
 | 
						|
                            {
 | 
						|
                                TaskId = SQLHelper.GetNewID(),
 | 
						|
                                ProjectId = newTrainingPlan.ProjectId,
 | 
						|
                                PlanId = newTrainingPlan.PlanId,
 | 
						|
                                UserId = item.PersonId,
 | 
						|
                                TaskDate = DateTime.Now,
 | 
						|
                                States = Const.State_0, ////未生成培训教材明细
 | 
						|
                            };
 | 
						|
                            db.Training_Task.InsertOnSubmit(newTrainDetail);
 | 
						|
                            db.SubmitChanges();
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (trainingPlanItems.Count() > 0)
 | 
						|
                {
 | 
						|
                    ////新增培训教材类型明细
 | 
						|
                    foreach (var item in trainingPlanItems)
 | 
						|
                    {
 | 
						|
                        if (!string.IsNullOrEmpty(item.CompanyTrainingId) || !string.IsNullOrEmpty(item.CompanyTrainingItemId))
 | 
						|
                        {
 | 
						|
                            Model.Training_PlanItem newPlanItem = new Model.Training_PlanItem
 | 
						|
                            {
 | 
						|
                                PlanItemId = SQLHelper.GetNewID(),
 | 
						|
                                PlanId = newTrainingPlan.PlanId,
 | 
						|
 | 
						|
                            };
 | 
						|
                            if (!string.IsNullOrEmpty(item.CompanyTrainingId))
 | 
						|
                            {
 | 
						|
                                newPlanItem.CompanyTrainingId = item.CompanyTrainingId;
 | 
						|
                            }
 | 
						|
                            if (!string.IsNullOrEmpty(item.CompanyTrainingItemId))
 | 
						|
                            {
 | 
						|
                                newPlanItem.CompanyTrainingItemId = item.CompanyTrainingItemId;
 | 
						|
                            }
 | 
						|
                            db.Training_PlanItem.InsertOnSubmit(newPlanItem);
 | 
						|
                            db.SubmitChanges();
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  新增 培训人员明细
 | 
						|
        /// </summary>
 | 
						|
        public static void AddTraining_Task(List<Model.TrainingTaskItem> trainingTasks, string planId, string projectId)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                foreach (var item in trainingTasks)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(item.PersonId))
 | 
						|
                    {
 | 
						|
                        Model.Training_Task newTrainDetail = new Model.Training_Task
 | 
						|
                        {
 | 
						|
                            TaskId = SQLHelper.GetNewID(),
 | 
						|
                            ProjectId = projectId,
 | 
						|
                            PlanId = planId,
 | 
						|
                            UserId = item.PersonId,
 | 
						|
                            TaskDate = DateTime.Now,
 | 
						|
                            States = Const.State_0, ////未生成培训教材明细
 | 
						|
                        };
 | 
						|
 | 
						|
                        db.Training_Task.InsertOnSubmit(newTrainDetail);
 | 
						|
                        db.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  新增 培训教材类型 明细
 | 
						|
        /// </summary>
 | 
						|
        public static void AddTraining_PlanItem(List<Model.TrainingPlanItemItem> trainingPlanItems, string planId)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                foreach (var item in trainingPlanItems)
 | 
						|
            {
 | 
						|
                    if (!string.IsNullOrEmpty(item.CompanyTrainingId) || !string.IsNullOrEmpty(item.CompanyTrainingItemId))
 | 
						|
                    {
 | 
						|
                        Model.Training_PlanItem newPlanItem = new Model.Training_PlanItem
 | 
						|
                        {
 | 
						|
                            PlanItemId = SQLHelper.GetNewID(),
 | 
						|
                            PlanId = planId,
 | 
						|
 | 
						|
                        };
 | 
						|
                        if (!string.IsNullOrEmpty(item.CompanyTrainingId))
 | 
						|
                        {
 | 
						|
                            newPlanItem.CompanyTrainingId = item.CompanyTrainingId;
 | 
						|
                        }
 | 
						|
                        if (!string.IsNullOrEmpty(item.CompanyTrainingItemId))
 | 
						|
                        {
 | 
						|
                            newPlanItem.CompanyTrainingItemId = item.CompanyTrainingItemId;
 | 
						|
                        }
 | 
						|
                        db.Training_PlanItem.InsertOnSubmit(newPlanItem);
 | 
						|
                        db.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 |