348 lines
18 KiB
C#
348 lines
18 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 ((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获取培训计划详细
|
|
/// <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,
|
|
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获取培训教材类型列表
|
|
/// <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,
|
|
|
|
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<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 = 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();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <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
|
|
}
|
|
}
|