岗位技能矩阵

master
xiaochanghai 3 months ago
parent 8ab14bc131
commit a42df11278
  1. 3
      Tiobon.Core.Model/ViewModels/Extend/TitleSkillMatrix.cs
  2. 196
      Tiobon.Core.Services/Ghra/Ghra_TitleServices.cs

@ -11,6 +11,9 @@ public class TitleSkillMatrix
public int IsEnable { get; set; } public int IsEnable { get; set; }
public string Type { get; set; } public string Type { get; set; }
public string CourseSceneName { get; set; } public string CourseSceneName { get; set; }
public string CourseSceneIds { get; set; }
} }

@ -29,10 +29,29 @@ public class Ghra_TitleServices : BaseServices<Ghra_Title, Ghra_TitleDto, Insert
dynamic obj = new ExpandoObject(); dynamic obj = new ExpandoObject();
dynamic result = new ExpandoObject(); dynamic result = new ExpandoObject();
var ruleSrc = Db.Queryable<Ghre_StudyRule>();
if (string.IsNullOrWhiteSpace(filter.orderBy)) if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "Type ASC"; filter.orderBy = "Type ASC";
string sql = $"SELECT * FROM Ghre_CourseScene_V WHERE IsEnable=1"; string sql = $"SELECT * FROM Ghre_CourseScene_V WHERE IsEnable=1";
var rules1 = await ruleSrc.Where(x => x.RuleType == "Required" && x.TrainType == "Title").ToListAsync();
var rules = Mapper.Map(rules1).ToANew<List<Ghre_StudyRuleDto>>();
rules.ForEach(x =>
{
if (x.ZoneId.IsNotEmptyOrNull())
x.ZoneIds = JsonHelper.JsonToObj<List<int?>>(x.ZoneId);
if (x.DeptId.IsNotEmptyOrNull())
x.DeptIds = JsonHelper.JsonToObj<List<int?>>(x.DeptId);
if (x.TitleId.IsNotEmptyOrNull())
x.TitleIds = JsonHelper.JsonToObj<List<int?>>(x.TitleId);
if (x.JobId.IsNotEmptyOrNull())
x.JobIds = JsonHelper.JsonToObj<List<int?>>(x.JobId);
if (x.GradeId.IsNotEmptyOrNull())
x.GradeIds = JsonHelper.JsonToObj<List<int?>>(x.GradeId);
});
#region 处理查询条件 #region 处理查询条件
//Expression<Func<Ghrh_Resume, bool>> whereExpression = new Expression<Func<Ghrh_Resume, bool>>(); //Expression<Func<Ghrh_Resume, bool>> whereExpression = new Expression<Func<Ghrh_Resume, bool>>();
@ -45,26 +64,143 @@ public class Ghra_TitleServices : BaseServices<Ghra_Title, Ghra_TitleDto, Insert
continue; continue;
if (value.IsNotEmptyOrNull()) if (value.IsNotEmptyOrNull())
{ {
//var jsonParam = JsonHelper.JsonToObj<JsonParam>(value); var jsonParam = JsonHelper.JsonToObj<JsonParam>(value);
//switch (name) switch (name)
//{ {
// case "WaitRecommend":
// if (jsonParam.columnValue.ObjToInt() == 1) case "ZoneId":
// sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitRecommended}'"; switch (jsonParam.operationKey)
// break; {
// case "HasRecommended": case "Include":
// if (jsonParam.columnValue.ObjToInt() == 1) if (jsonParam.columnValue != null)
// sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}'"; rules = rules.Where(x => x.ZoneIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
// break; break;
// case "WaitAppointment": case "NotInclude":
if (jsonParam.columnValue != null)
// default: rules = rules.Where(x => !x.ZoneIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
// break; break;
//} case "IsNull":
rules = rules.Where(x => x.ZoneIds.Count == 0).ToList();
break;
case "NotNull":
rules = rules.Where(x => x.ZoneIds.Count > 0).ToList();
break;
default:
break;
}
break;
case "DeptId":
switch (jsonParam.operationKey)
{
case "Include":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.DeptIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "NotInclude":
if (jsonParam.columnValue != null)
rules = rules.Where(x => !x.DeptIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "IsNull":
rules = rules.Where(x => x.DeptIds.Count == 0).ToList();
break;
case "NotNull":
rules = rules.Where(x => x.DeptIds.Count > 0).ToList();
break;
default:
break;
}
break;
case "TitleId":
switch (jsonParam.operationKey)
{
case "Include":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.TitleIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "NotInclude":
if (jsonParam.columnValue != null)
rules = rules.Where(x => !x.TitleIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "IsNull":
rules = rules.Where(x => x.TitleIds.Count == 0).ToList();
break;
case "NotNull":
rules = rules.Where(x => x.TitleIds.Count > 0).ToList();
break;
default:
break;
}
break;
case "JobId":
switch (jsonParam.operationKey)
{
case "Include":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.JobIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "NotInclude":
if (jsonParam.columnValue != null)
rules = rules.Where(x => !x.JobIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "IsNull":
rules = rules.Where(x => x.JobIds.Count == 0).ToList();
break;
case "NotNull":
rules = rules.Where(x => x.JobIds.Count > 0).ToList();
break;
default:
break;
}
break;
case "GradeId":
switch (jsonParam.operationKey)
{
case "Include":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.GradeIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "NotInclude":
if (jsonParam.columnValue != null)
rules = rules.Where(x => !x.GradeIds.Contains(jsonParam.columnValue.ObjToInt())).ToList();
break;
case "IsNull":
rules = rules.Where(x => x.GradeIds.Count == 0).ToList();
break;
case "NotNull":
rules = rules.Where(x => x.GradeIds.Count > 0).ToList();
break;
default:
break;
}
break;
case "CourseId":
switch (jsonParam.operationKey)
{
case "Equal":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.CourseId == jsonParam.columnValue.ObjToLong()).ToList();
sql += $" AND Id={jsonParam.columnValue}";
break;
case "NotEqual":
if (jsonParam.columnValue != null)
rules = rules.Where(x => x.CourseId != jsonParam.columnValue.ObjToLong()).ToList();
sql += $" AND Id !={jsonParam.columnValue}";
break;
default:
break;
}
break;
default:
break;
}
} }
} }
#endregion #endregion
if (filter.pageSize == 0) if (filter.pageSize == 0)
filter.pageSize = 10000; filter.pageSize = 10000;
@ -85,7 +221,6 @@ public class Ghra_TitleServices : BaseServices<Ghra_Title, Ghra_TitleDto, Insert
var columns = new JArray(); var columns = new JArray();
var titles = await Db.Queryable<Ghra_Title>().OrderBy(x => x.SortNo).ToListAsync(); var titles = await Db.Queryable<Ghra_Title>().OrderBy(x => x.SortNo).ToListAsync();
var rules = await Db.Queryable<Ghre_StudyRule>().Where(x => x.RuleType == "Required" && x.TrainType == "Title").ToListAsync();
var dict = new Dictionary<string, List<int>>(); var dict = new Dictionary<string, List<int>>();
@ -115,11 +250,30 @@ public class Ghra_TitleServices : BaseServices<Ghra_Title, Ghra_TitleDto, Insert
{ {
var column = list[i]; var column = list[i];
var CourseName = column.CourseName;
var CourseSceneName = column.CourseName;
if (column.Type == "Course")
{
if (column.CourseSceneIds.IsNotEmptyOrNull())
{
var courseSceneIds = JsonHelper.JsonToObj<List<long>>(column.CourseSceneIds);
var courseScene = await Db.Queryable<Ghre_CourseScene>().Where(x => courseSceneIds.Contains(x.Id)).ToListAsync();
CourseSceneName = string.Join(",", courseScene.Select(a => a.SceneName));
}
else
CourseSceneName = null;
}
else
{
CourseName = CourseSceneName;
CourseSceneName = null;
}
var item = new JObject var item = new JObject
{ {
new JProperty("Id", column.Id), new JProperty("Id", column.Id),
new JProperty("CourseNo", column.CourseNo), new JProperty("CourseSceneName", CourseSceneName),
new JProperty("CourseName", column.CourseName), new JProperty("CourseName", CourseName),
new JProperty("Type", column.Type), new JProperty("Type", column.Type),
}; };

Loading…
Cancel
Save