using MiniExcelLibs;
using Model;
using System.Collections.Generic;
using System;
using System.Linq;
using System.Web.UI.WebControls;
namespace BLL
{
///
/// 岗位培训标准
///
public static class PostTrainingStandardService
{
///
/// 根据主键获取岗位培训标准信息
///
///
///
public static Model.PostTraining_Standard GetStandardById(string Id)
{
return Funs.DB.PostTraining_Standard.FirstOrDefault(e => e.Id == Id);
}
///
/// 添加岗位培训标准
///
///
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();
}
///
/// 修改
///
///
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();
}
}
///
/// 删除
///
///
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();
}
}
///
/// 获取所有岗位培训标准List
///
///
public static List GetStandardList()
{
return (from x in Funs.DB.PostTraining_Standard orderby x.Code select x).ToList();
}
///
/// 获取所有岗位培训标准信息List
///
///
public static List 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;
}
///
/// 导入数据
///
///
///
///
///
///
public static ResponeData ImportData(string OriFileName, string path, string projectid, string creatUserId, ref List errorList)
{
var responeData = new ResponeData();
List temeplateDtoIns;
try
{
temeplateDtoIns = MiniExcel.Query(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;
}
///
/// 培训效果
///
///
///
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);
}
}
///
/// 培训效果
///
///
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;
}
}
}