|
|
@ -44,6 +44,8 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins |
|
|
|
private readonly IGhrh_InterviewLogServices _ghrh_InterviewLogServices; |
|
|
|
private readonly IGhrh_InterviewLogServices _ghrh_InterviewLogServices; |
|
|
|
private readonly IGhrh_HumanRequestServices _ghrh_HumanRequestServices; |
|
|
|
private readonly IGhrh_HumanRequestServices _ghrh_HumanRequestServices; |
|
|
|
private readonly IGhrh_AssessConfigServices _ghrh_AssessConfigServices; |
|
|
|
private readonly IGhrh_AssessConfigServices _ghrh_AssessConfigServices; |
|
|
|
|
|
|
|
private readonly IGhrh_InterviewAssessServices _ghrh_InterviewAssessServices; |
|
|
|
|
|
|
|
private readonly IGhrh_InterviewAssessDetailServices _ghrh_InterviewAssessDetailServices; |
|
|
|
private readonly IWebHostEnvironment Env; |
|
|
|
private readonly IWebHostEnvironment Env; |
|
|
|
private readonly IConverter _converter; |
|
|
|
private readonly IConverter _converter; |
|
|
|
private readonly IWebHostEnvironment _hostingEnvironment; |
|
|
|
private readonly IWebHostEnvironment _hostingEnvironment; |
|
|
@ -60,6 +62,8 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins |
|
|
|
IGhrh_InterviewLogServices ghrh_InterviewLogServices, |
|
|
|
IGhrh_InterviewLogServices ghrh_InterviewLogServices, |
|
|
|
IGhrh_HumanRequestServices ghrh_HumanRequestServices, |
|
|
|
IGhrh_HumanRequestServices ghrh_HumanRequestServices, |
|
|
|
IGhrh_AssessConfigServices ghrh_AssessConfigServices, |
|
|
|
IGhrh_AssessConfigServices ghrh_AssessConfigServices, |
|
|
|
|
|
|
|
IGhrh_InterviewAssessServices ghrh_InterviewAssessServices, |
|
|
|
|
|
|
|
IGhrh_InterviewAssessDetailServices ghrh_InterviewAssessDetailServices, |
|
|
|
IConverter converter, |
|
|
|
IConverter converter, |
|
|
|
IWebHostEnvironment hostingEnvironment, |
|
|
|
IWebHostEnvironment hostingEnvironment, |
|
|
|
IGhrh_ResumeWorkExpServices ghre_ResumeWorkExpServices, IWebHostEnvironment env) |
|
|
|
IGhrh_ResumeWorkExpServices ghre_ResumeWorkExpServices, IWebHostEnvironment env) |
|
|
@ -79,6 +83,8 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins |
|
|
|
_ghrh_InterviewLogServices = ghrh_InterviewLogServices; |
|
|
|
_ghrh_InterviewLogServices = ghrh_InterviewLogServices; |
|
|
|
_ghrh_HumanRequestServices = ghrh_HumanRequestServices; |
|
|
|
_ghrh_HumanRequestServices = ghrh_HumanRequestServices; |
|
|
|
_ghrh_AssessConfigServices = ghrh_AssessConfigServices; |
|
|
|
_ghrh_AssessConfigServices = ghrh_AssessConfigServices; |
|
|
|
|
|
|
|
_ghrh_InterviewAssessServices = ghrh_InterviewAssessServices; |
|
|
|
|
|
|
|
_ghrh_InterviewAssessDetailServices = ghrh_InterviewAssessDetailServices; |
|
|
|
Env = env; |
|
|
|
Env = env; |
|
|
|
_converter = converter; |
|
|
|
_converter = converter; |
|
|
|
_hostingEnvironment = hostingEnvironment; |
|
|
|
_hostingEnvironment = hostingEnvironment; |
|
|
@ -1835,40 +1841,6 @@ END"; |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
#region 面试评估 |
|
|
|
|
|
|
|
public async Task<ServiceResult> AssessInterview(long id, ResumeAssessInterviewForm input) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var entity = await base.QueryById(id); |
|
|
|
|
|
|
|
if (entity == null) |
|
|
|
|
|
|
|
return ServiceResult.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string Status = input.IsPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; |
|
|
|
|
|
|
|
string InterviewResult = input.IsPass == false ? "面试不通过" : "面试通过"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); |
|
|
|
|
|
|
|
order.Status = Status; |
|
|
|
|
|
|
|
order.IsPass = input.IsPass; |
|
|
|
|
|
|
|
order.InterviewResult = InterviewResult; |
|
|
|
|
|
|
|
order.InterviewContent = input.Content; |
|
|
|
|
|
|
|
order.InterviewResultRemark = input.Content; |
|
|
|
|
|
|
|
await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); |
|
|
|
|
|
|
|
record.InterviewResult = InterviewResult; |
|
|
|
|
|
|
|
record.InterviewResultRemark = input.Content; |
|
|
|
|
|
|
|
record.IsPass = input.IsPass; |
|
|
|
|
|
|
|
record.AssessTime = DateTime.Now; |
|
|
|
|
|
|
|
record.Status = Status; |
|
|
|
|
|
|
|
await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark"]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await UpdateResumeStatus(entity, Status); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await LogRecord(order.Id, $"填写了面试评估,轮数:{order.Round},是否通过:{(input.IsPass == true ? "通过" : "不通过")},内容:{input.Content}!"); |
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 变更面试官 |
|
|
|
#region 变更面试官 |
|
|
|
public async Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs) |
|
|
|
public async Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -2612,11 +2584,29 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
{ |
|
|
|
{ |
|
|
|
dynamic result = new ExpandoObject(); |
|
|
|
dynamic result = new ExpandoObject(); |
|
|
|
|
|
|
|
|
|
|
|
var items = await _ghrh_AssessConfigServices.QueryFilterPage(new QueryBody() |
|
|
|
var entity = await base.QueryById(id); |
|
|
|
|
|
|
|
if (entity == null) |
|
|
|
|
|
|
|
return ServiceResult<dynamic>.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); |
|
|
|
|
|
|
|
if (order == null) |
|
|
|
|
|
|
|
return ServiceResult<dynamic>.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var assessConfigs = new List<Ghrh_AssessConfigDto>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var assess = await _ghrh_InterviewAssessServices.QuerySingle(x => x.OrderId == order.Id); |
|
|
|
|
|
|
|
if (assess != null) |
|
|
|
|
|
|
|
assessConfigs = JsonHelper.JsonToObj<List<Ghrh_AssessConfigDto>>(assess.AssessFormContent); |
|
|
|
|
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
pageNum = 1, |
|
|
|
var data = await _ghrh_AssessConfigServices.QueryFilterPage(new QueryBody() |
|
|
|
pageSize = 0 |
|
|
|
{ |
|
|
|
}, null); |
|
|
|
pageNum = 1, |
|
|
|
|
|
|
|
pageSize = 0 |
|
|
|
|
|
|
|
}, null); |
|
|
|
|
|
|
|
assessConfigs = data.result.DT_TableDataT1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#region Header |
|
|
|
#region Header |
|
|
|
|
|
|
|
|
|
|
|
var header = new JArray(); |
|
|
|
var header = new JArray(); |
|
|
@ -2632,17 +2622,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
header.Add(obj); |
|
|
|
header.Add(obj); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var entity = await base.QueryById(id); |
|
|
|
|
|
|
|
if (entity == null) |
|
|
|
|
|
|
|
return ServiceResult<dynamic>.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); |
|
|
|
|
|
|
|
if (order == null) |
|
|
|
|
|
|
|
return ServiceResult<dynamic>.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var records = await _ghrh_InterviewRecordServices.Query(x => x.OrderId == order.Id, "Round ASC"); |
|
|
|
var records = await _ghrh_InterviewRecordServices.Query(x => x.OrderId == order.Id, "Round ASC"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var x = records[i]; |
|
|
|
var x = records[i]; |
|
|
@ -2670,7 +2652,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
#region Body |
|
|
|
#region Body |
|
|
|
var staffId = GetStaffId(); |
|
|
|
var staffId = GetStaffId(); |
|
|
|
var body = new JArray(); |
|
|
|
var body = new JArray(); |
|
|
|
items.result.DT_TableDataT1.ForEach(x => |
|
|
|
assessConfigs.ForEach(x => |
|
|
|
{ |
|
|
|
{ |
|
|
|
obj = new(); |
|
|
|
obj = new(); |
|
|
|
obj.Add(new JProperty("Type1", x.ItemClass)); |
|
|
|
obj.Add(new JProperty("Type1", x.ItemClass)); |
|
|
@ -2746,6 +2728,42 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 面试评估 |
|
|
|
|
|
|
|
public async Task<ServiceResult> AssessInterview(long id, List<Dictionary<string, object>> input) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var entity = await base.QueryById(id); |
|
|
|
|
|
|
|
//if (entity == null) |
|
|
|
|
|
|
|
// return ServiceResult.OprateFailed("无效的简历ID!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//string Status = input.IsPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; |
|
|
|
|
|
|
|
//string InterviewResult = input.IsPass == false ? "面试不通过" : "面试通过"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); |
|
|
|
|
|
|
|
//order.Status = Status; |
|
|
|
|
|
|
|
//order.IsPass = input.IsPass; |
|
|
|
|
|
|
|
//order.InterviewResult = InterviewResult; |
|
|
|
|
|
|
|
//order.InterviewContent = input.Content; |
|
|
|
|
|
|
|
//order.InterviewResultRemark = input.Content; |
|
|
|
|
|
|
|
//await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); |
|
|
|
|
|
|
|
//record.InterviewResult = InterviewResult; |
|
|
|
|
|
|
|
//record.InterviewResultRemark = input.Content; |
|
|
|
|
|
|
|
//record.IsPass = input.IsPass; |
|
|
|
|
|
|
|
//record.AssessTime = DateTime.Now; |
|
|
|
|
|
|
|
//record.Status = Status; |
|
|
|
|
|
|
|
//await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark"]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//await UpdateResumeStatus(entity, Status); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//await LogRecord(order.Id, $"填写了面试评估,轮数:{order.Round},是否通过:{(input.IsPass == true ? "通过" : "不通过")},内容:{input.Content}!"); |
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
#region 通用方法 |
|
|
|
#region 通用方法 |
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// 记录日志 |
|
|
|
/// 记录日志 |
|
|
|