xinjiang/SGGL/BLL/HSSE/PostTraining/PostTrainingStandardService.cs

447 lines
19 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using MiniExcelLibs;
using Model;
using System.Collections.Generic;
using System;
using System.Linq;
using System.Web.UI.WebControls;
namespace BLL
{
/// <summary>
/// 岗位培训标准
/// </summary>
public static class PostTrainingStandardService
{
/// <summary>
/// 根据主键获取岗位培训标准信息
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public static Model.PostTraining_Standard GetStandardById(string Id)
{
return Funs.DB.PostTraining_Standard.FirstOrDefault(e => e.Id == Id);
}
/// <summary>
/// 添加岗位培训标准
/// </summary>
/// <param name="model"></param>
public static void AddStandard(Model.PostTraining_Standard model)
{
Model.PostTraining_Standard newModel = new Model.PostTraining_Standard
{
Id = model.Id,
Code = model.Code,
//RoleId = model.RoleId,
WorkPostId = model.WorkPostId,
CourseId = model.CourseId,
ClassHour = model.ClassHour,
Cycle = model.Cycle,
Method = model.Method,
Outcome = model.Outcome,
Teachers = model.Teachers,
CompileDate = model.CompileDate,
CompileMan = model.CompileMan,
Remark = model.Remark
};
Funs.DB.PostTraining_Standard.InsertOnSubmit(newModel);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改
/// </summary>
/// <param name="model"></param>
public static void UpdateStandard(Model.PostTraining_Standard model)
{
Model.PostTraining_Standard newModel = Funs.DB.PostTraining_Standard.FirstOrDefault(e => e.Id == model.Id);
if (newModel != null)
{
newModel.Code = model.Code;
//newModel.RoleId = model.RoleId;
newModel.WorkPostId = model.WorkPostId;
newModel.CourseId = model.CourseId;
newModel.ClassHour = model.ClassHour;
newModel.Cycle = model.Cycle;
newModel.Method = model.Method;
newModel.Outcome = model.Outcome;
newModel.Teachers = model.Teachers;
newModel.Remark = model.Remark;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="Id"></param>
public static void DeleteStandardById(string Id)
{
Model.PostTraining_Standard model = Funs.DB.PostTraining_Standard.FirstOrDefault(e => e.Id == Id);
if (model != null)
{
CommonService.DeleteAttachFileById(Id);
Funs.DB.PostTraining_Standard.DeleteOnSubmit(model);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 获取所有岗位培训标准List
/// </summary>
/// <returns></returns>
public static List<PostTraining_Standard> GetStandardList()
{
return (from x in Funs.DB.PostTraining_Standard orderby x.Code select x).ToList();
}
/// <summary>
/// 获取所有岗位培训标准信息List
/// </summary>
/// <returns></returns>
public static List<PostTrainingStandardInfo> GetStandardInfoList()
{
var db = Funs.DB;
var lst = (from x in db.PostTraining_Standard
join y in db.PostTraining_Course on x.CourseId equals y.Id
join z in db.Base_WorkPost on x.WorkPostId equals z.WorkPostId
//join z in db.PostTraining_Role on x.RoleId equals z.Id
orderby x.Code
select new PostTrainingStandardInfo
{
WorkPostId = x.WorkPostId,
WorkPostName = z.WorkPostName,
//RoleId = x.RoleId,
//RoleName = z.RoleName,
CourseId = x.CourseId,
CourseName = y.Name,
CategoryName = y.CategoryName,
ClassHour = x.ClassHour,
Cycle = x.Cycle,
Method = x.Method,
Outcome = x.Outcome,
Teachers = x.Teachers,
Remark = x.Remark
}).ToList();
return lst;
}
/// <summary>
/// 导入数据
/// </summary>
/// <param name="path"></param>
/// <param name="projectid"></param>
/// <param name="creatUserId"></param>
/// <param name="errorList"></param>
/// <returns></returns>
public static ResponeData ImportData(string OriFileName, string path, string projectid, string creatUserId, ref List<Model.ErrorInfo> errorList)
{
var responeData = new ResponeData();
List<PostTrainingStandard_InputDataIn> temeplateDtoIns;
try
{
temeplateDtoIns = MiniExcel.Query<PostTrainingStandard_InputDataIn>(path, startCell: "A1").ToList();
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = "模板错误:" + ex.ToString();
return responeData;
}
if (temeplateDtoIns.Count == 0)
{
responeData.code = 0;
responeData.message = "导入数据为空!";
return responeData;
}
//培训标准
var lstStandard = GetStandardInfoList();
//培训课程
var lstCourse = PostTrainingCourseService.GetCourseList();
////培训角色
//var lstRole = PostTrainingRoleService.GetRoleList();
var lstWorkPost = WorkPostService.GetWorkPostList();
//培训类别
var lstCategory = PostTrainingCategoryService.GetCategoryList();
//培训方式
var lstMethod = PostTrainingMethodService.GetMethodList();
//培训教资
var lstTeachers = PostTrainingTeachersService.GetTeachersList();
//培训效果
var lstOutcome = GetPostTrainingOutcomeList();
#region
string errorMsg = string.Empty;
int rowIndex = 3;
foreach (var item in temeplateDtoIns)
{
string roleName = !string.IsNullOrWhiteSpace(item.RoleName) ? item.RoleName.Trim() : string.Empty;
string categoryName = !string.IsNullOrWhiteSpace(item.CategoryName) ? item.CategoryName.Trim() : string.Empty;
string courseName = !string.IsNullOrWhiteSpace(item.CourseName) ? item.CourseName.Trim() : string.Empty;
string classHourStr = !string.IsNullOrWhiteSpace(item.ClassHour) ? item.ClassHour.Trim() : string.Empty;
string cycleStr = !string.IsNullOrWhiteSpace(item.Cycle) ? item.Cycle.Trim() : string.Empty;
decimal classHour = 0;
decimal cycle = 0;
string method = !string.IsNullOrWhiteSpace(item.Method) ? item.Method.Trim() : string.Empty;
string outcome = !string.IsNullOrWhiteSpace(item.Outcome) ? item.Outcome.Trim() : string.Empty;
string teachers = !string.IsNullOrWhiteSpace(item.Teachers) ? item.Teachers.Trim() : string.Empty;
string remark = !string.IsNullOrWhiteSpace(item.Remark) ? item.Remark.Trim() : string.Empty;
if (!string.IsNullOrWhiteSpace(roleName))
{
if (!lstWorkPost.Where(x => x.WorkPostName == roleName).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "适用岗位角色";
errorInfo.Reason = $"角色不存在:{roleName}";
errorList.Add(errorInfo);
}
}
else
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "适用岗位角色";
errorInfo.Reason = "不可为空";
errorList.Add(errorInfo);
}
if (!string.IsNullOrWhiteSpace(categoryName))
{
if (!lstCategory.Where(x => x.Name == categoryName).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训类别";
errorInfo.Reason = $"培训类别不存在:{categoryName}";
errorList.Add(errorInfo);
}
}
else
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训类别";
errorInfo.Reason = "不可为空";
errorList.Add(errorInfo);
}
if (string.IsNullOrWhiteSpace(courseName))
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课程";
errorInfo.Reason = "不可为空";
errorList.Add(errorInfo);
}
if (!string.IsNullOrWhiteSpace(categoryName) && !string.IsNullOrWhiteSpace(courseName))
{
if (temeplateDtoIns.Where(x => x.RoleName == roleName && x.CourseName == courseName && x.CategoryName == categoryName).Count() > 1)
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课程";
errorInfo.Reason = $"【{roleName}】导入数据重复:{courseName}{categoryName}";
errorList.Add(errorInfo);
}
if (!lstCourse.Where(x => x.Name == courseName && x.CategoryName == categoryName).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课程";
errorInfo.Reason = $"【{roleName}】不存在培训课程:{courseName}{categoryName}";
errorList.Add(errorInfo);
}
else if (lstStandard.Where(x => x.CourseName == courseName && x.CategoryName == categoryName).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课程";
errorInfo.Reason = $"培训标准已存在:{courseName}{categoryName}";
errorList.Add(errorInfo);
}
}
if (!string.IsNullOrEmpty(classHourStr))
{
try
{
classHour = decimal.Parse(classHourStr);
if (classHour <= 0)
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课时";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
}
catch (Exception)
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课时";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
}
else
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训课时";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
if (!string.IsNullOrEmpty(cycleStr))
{
try
{
cycle = decimal.Parse(cycleStr);
if (cycle <= 0)
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训周期";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
}
catch (Exception)
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训周期";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
}
else
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训周期";
errorInfo.Reason = "请填写大于0的数值";
errorList.Add(errorInfo);
}
if (!string.IsNullOrWhiteSpace(method))
{
if (!lstMethod.Where(x => x.Name == method).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训方式";
errorInfo.Reason = $"培训方式字典不存在:{method}";
errorList.Add(errorInfo);
}
}
if (!string.IsNullOrWhiteSpace(outcome))
{
if (!lstOutcome.Where(x => x.Text == outcome).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训效果";
errorInfo.Reason = $"培训效果字典不存在:{outcome}";
errorList.Add(errorInfo);
}
}
if (!string.IsNullOrWhiteSpace(teachers))
{
if (!lstTeachers.Where(x => x.Name == teachers).Any())
{
Model.ErrorInfo errorInfo = new Model.ErrorInfo();
errorInfo.Row = rowIndex.ToString();
errorInfo.Column = "培训师资";
errorInfo.Reason = $"培训师资字典不存在:{teachers}";
errorList.Add(errorInfo);
}
}
rowIndex++;
}
if (errorList.Any())
{
responeData.code = 0;
responeData.message = "存在异常数据!";
return responeData;
}
#endregion
foreach (var item in temeplateDtoIns)
{
string roleName = !string.IsNullOrWhiteSpace(item.RoleName) ? item.RoleName.Trim() : string.Empty;
string categoryName = !string.IsNullOrWhiteSpace(item.CategoryName) ? item.CategoryName.Trim() : string.Empty;
string courseName = !string.IsNullOrWhiteSpace(item.CourseName) ? item.CourseName.Trim() : string.Empty;
decimal classHour = decimal.Parse(item.ClassHour);
decimal cycle = decimal.Parse(item.Cycle);
string method = !string.IsNullOrWhiteSpace(item.Method) ? item.Method.Trim() : string.Empty;
string outcome = !string.IsNullOrWhiteSpace(item.Outcome) ? item.Outcome.Trim() : string.Empty;
string teachers = !string.IsNullOrWhiteSpace(item.Teachers) ? item.Teachers.Trim() : string.Empty;
string remark = !string.IsNullOrWhiteSpace(item.Remark) ? item.Remark.Trim() : string.Empty;
Model.PostTraining_Standard newModel = new Model.PostTraining_Standard
{
Id = SQLHelper.GetNewID(typeof(Model.PostTraining_Standard)),
Code = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.PostTraining_Standard", "Code", ""),
//ProjectId = this.ProjectId,
CompileDate = DateTime.Now,
CompileMan = creatUserId
};
newModel.CourseId = lstCourse.Where(x => x.Name == courseName).FirstOrDefault().Id;
//newModel.RoleId = lstRole.Where(x => x.Name == roleName).FirstOrDefault().Id;
newModel.WorkPostId = lstWorkPost.Where(x => x.WorkPostName == roleName).FirstOrDefault().WorkPostId;
newModel.ClassHour = classHour;
newModel.Cycle = cycle;
newModel.Method = method;
newModel.Outcome = outcome;
newModel.Teachers = teachers;
newModel.Remark = remark;
AddStandard(newModel);
}
return responeData;
}
/// <summary>
/// 培训效果
/// </summary>
/// <param name="dropName"></param>
/// <param name="isShowPlease"></param>
public static void InitPostTrainingOutcomeDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "Text";
dropName.DataTextField = "Text";
dropName.DataSource = GetPostTrainingOutcomeList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
/// 培训效果
/// </summary>
/// <returns></returns>
public static ListItem[] GetPostTrainingOutcomeList()
{
ListItem[] lis = null;
lis = new ListItem[3];
lis[0] = new ListItem("掌握", "0");
lis[1] = new ListItem("熟悉", "1");
lis[2] = new ListItem("了解", "2");
return lis;
}
}
}