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获取培训计划列表 /// /// 根据projectId、trainTypeId、TrainStates获取培训计划列表 /// /// /// public static List 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 ((string.IsNullOrEmpty(projectId) && x.ProjectId == null) || (!string.IsNullOrEmpty(projectId) && 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获取培训计划详细 /// /// 根据培训ID获取培训计划详细 /// /// /// 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, DepartIds = x.DepartIds, DepartNames = WorkPostService.getDepartNamesByIdsForApi(x.DepartIds), TrainContent = x.TrainContent, UnitNames = UnitService.getUnitNamesUnitIdsForApi(x.UnitIds), WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIdsForApi(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获取培训教材类型列表 /// /// 根据TrainingPlanId获取培训教材类型列表 /// /// /// 培训计划人员 public static List 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 保存培训计划 /// /// 保存TrainingPlan /// /// 培训计划记录 /// 培训人员list /// 培训教材类型list 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, 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, DepartIds = trainingPlan.DepartIds, DepartNames = trainingPlan.DepartNames, States = trainingPlan.States, }; if (!string.IsNullOrEmpty(trainingPlan.ProjectId)) { newTrainingPlan.ProjectId = trainingPlan.ProjectId; } 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 trainingTasks = trainingPlan.TrainingTasks; List 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 = db.Sys_User.FirstOrDefault(x=>x.UserId==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.InsertCodeRecordsByMenuIdProjectIdUnitIdForApi(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(); } } } } } /// /// 新增 培训人员明细 /// public static void AddTraining_Task(List 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(); } } } } /// /// 新增 培训教材类型 明细 /// public static void AddTraining_PlanItem(List 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 } }