|
|
|
@ -1621,8 +1621,22 @@ END"; |
|
|
|
|
await Update(entity, ["Status"]); |
|
|
|
|
|
|
|
|
|
#region 日志 |
|
|
|
|
var usser = await GetUser(); |
|
|
|
|
await LogRecord(orderId, $"用户【{usser?.UserName ?? App.User.ID.ToString()}】向【{string.Join(",", interviewer.Select(o => o.StaffName))}】推荐了简历!", id, null, "Recommended"); |
|
|
|
|
await LogRecord(orderId, $"向【{string.Join(",", interviewer.Select(o => o.StaffName))}】推荐了简历,推荐理由:{recommend.RecommendRemark ?? "无"}", id, null, "Recommended", true); |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 处理附件 |
|
|
|
|
if (recommend.Attachments != null && recommend.Attachments.Any()) |
|
|
|
|
for (int i = 0; i < recommend.Attachments.Count; i++) |
|
|
|
|
{ |
|
|
|
|
await Db.Updateable<Ghrs_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghrs_Attachment() |
|
|
|
|
{ |
|
|
|
|
TableName = orderId.ObjToString(), |
|
|
|
|
UpdateTime = DateTime.Now |
|
|
|
|
}) |
|
|
|
|
.Where(it => it.RelativePath == recommend.Attachments[i].RelativePath) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1657,10 +1671,8 @@ END"; |
|
|
|
|
if (records[i].FirstViewTime.IsNullOrEmpty()) |
|
|
|
|
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#region 日志 |
|
|
|
|
var usser = await GetUser(); |
|
|
|
|
await LogRecord(order.Id, $"用户【{usser?.UserName ?? App.User.ID.ToString()}】向【{string.Join(",", interviewer.Select(o => o.StaffName))}】发送简历推荐提醒!", id, null, "RemindHasRecommend"); |
|
|
|
|
await LogRecord(order.Id, $"向【{string.Join(",", interviewer.Select(o => o.StaffName))}】发送简历推荐提醒!", id, null, "RemindHasRecommend"); |
|
|
|
|
#endregion |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1721,6 +1733,8 @@ END"; |
|
|
|
|
|
|
|
|
|
time = DateTimeHelper.ConvertToMiniuteString(time1[0]) + "~" + DateTimeHelper.ConvertToOnlyHourMinuteString(time1[1]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
form.Times[i] = time; |
|
|
|
|
if (i == 0) |
|
|
|
|
records.ForEach(record => record.PlanInterviewTime1 = time); |
|
|
|
|
else if (i == 1) |
|
|
|
@ -1738,9 +1752,9 @@ END"; |
|
|
|
|
await _ghrh_InterviewRecordServices.Update(records[0], ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]); |
|
|
|
|
|
|
|
|
|
#region 日志 |
|
|
|
|
var usser = await GetUser(); |
|
|
|
|
await LogRecord(order.Id, $"用户【{usser?.UserName ?? App.User.ID.ToString()}】预约面试,面试时间:{string.Join("、", form.Times)}", id, null, "SubscribeInterview"); |
|
|
|
|
await LogRecord(order.Id, $"预约面试,面试时间:{string.Join("、", form.Times)},约面反馈:{order.AppointmentFeedback ?? "无"}", id, null, "SubscribeInterview"); |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.WaitAppointment); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1790,7 +1804,7 @@ END"; |
|
|
|
|
await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status", "UpdateTime", "UpdateBy"]); |
|
|
|
|
await _ghrh_InterviewOrderServices.Update(order, ["InterviewStepName", "UpdateTime", "UpdateBy"]); |
|
|
|
|
|
|
|
|
|
await LogRecord(order.Id, $"安排面试,面试时间:{body.Time}"); |
|
|
|
|
await LogRecord(order.Id, $"安排面试,面试时间:{body.Time},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? "无"}", id, records[0].Id, "ScheduleInterview", true); |
|
|
|
|
|
|
|
|
|
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; |
|
|
|
|
await Update(entity, ["Status", "UpdateTime", "UpdateBy"]); |
|
|
|
@ -1798,9 +1812,22 @@ END"; |
|
|
|
|
for (int i = 0; i < records.Count; i++) |
|
|
|
|
{ |
|
|
|
|
await SendMessage([records[i].StaffId.Value], "面试提醒", $"您有个简历待面试,面试时间:{body.Time},请及时查看!", "/M_ESS_Recruit/F_ESS_Interview"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#region 处理附件 |
|
|
|
|
if (body.Attachments != null && body.Attachments.Any()) |
|
|
|
|
for (int i = 0; i < body.Attachments.Count; i++) |
|
|
|
|
{ |
|
|
|
|
await Db.Updateable<Ghrs_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghrs_Attachment() |
|
|
|
|
{ |
|
|
|
|
TableName = records[0].Id.ObjToString(), |
|
|
|
|
UpdateTime = DateTime.Now |
|
|
|
|
}) |
|
|
|
|
.Where(it => it.RelativePath == body.Attachments[i].RelativePath) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
@ -1995,8 +2022,18 @@ END"; |
|
|
|
|
|
|
|
|
|
await _ghrh_InterviewOrderServices.Update(order, ["Status", "Round"]); |
|
|
|
|
|
|
|
|
|
await Db.Updateable<Ghrh_InterviewRecord>() |
|
|
|
|
.SetColumns(it => new Ghrh_InterviewRecord() |
|
|
|
|
{ |
|
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.SystemCancelInterview, |
|
|
|
|
UpdateTime = DateTime.Now |
|
|
|
|
}) |
|
|
|
|
.Where(it => it.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview && it.OrderId == order.Id) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < input.InterviewStaffs.Count; i++) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput() |
|
|
|
|
{ |
|
|
|
|
OrderId = order.Id, |
|
|
|
@ -2009,8 +2046,12 @@ END"; |
|
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
var interviewIds = input.InterviewStaffs.Where(o => o.StaffId != null) |
|
|
|
|
.Select(o => o.StaffId.Value).ToList(); |
|
|
|
|
|
|
|
|
|
var interviewer = await Db.Queryable<Ghra_Staff>().Where(o => interviewIds.Contains(o.StaffID)).ToListAsync(); |
|
|
|
|
await LogRecord(order.Id, $"向【{string.Join(",", interviewer.Select(o => o.StaffName))}】发起一个新一轮面试,面试时间:{input.Time}", id, null, "ReScheduleInterview"); |
|
|
|
|
|
|
|
|
|
await LogRecord(order.Id, $"发起一个新的面试,面试时间:{input.Time}"); |
|
|
|
|
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; |
|
|
|
|
await Update(entity, ["Status"]); |
|
|
|
|
|
|
|
|
@ -2040,6 +2081,11 @@ END"; |
|
|
|
|
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, |
|
|
|
|
StaffId = input.InterviewStaffs[i].StaffId, |
|
|
|
|
}); |
|
|
|
|
var interviewIds = input.InterviewStaffs.Where(o => o.StaffId != null) |
|
|
|
|
.Select(o => o.StaffId.Value).ToList(); |
|
|
|
|
|
|
|
|
|
var interviewer = await Db.Queryable<Ghra_Staff>().Where(o => interviewIds.Contains(o.StaffID)).ToListAsync(); |
|
|
|
|
await LogRecord(order.Id, $"向【{string.Join(",", interviewer.Select(o => o.StaffName))}】发起一个新的面试,面试时间:{input.Time}", id, null, "ReRecommended"); |
|
|
|
|
|
|
|
|
|
if (input.InterviewStaffs.IsNotEmptyOrNull()) |
|
|
|
|
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); |
|
|
|
@ -3031,7 +3077,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId) |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3041,8 +3087,6 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
result.Body = body; |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region Header |
|
|
|
|
|
|
|
|
|
var printHeader = new JArray(); |
|
|
|
@ -3172,10 +3216,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (assessDetail != null) |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt() == 1 ? "通过" : "不通过")); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("Score" + (i + 1), null)); |
|
|
|
|
if (record.StaffId == staffId) |
|
|
|
|
if (record.StaffId == staffId && record.Round == order.Round) |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), true)); |
|
|
|
|
else |
|
|
|
|
obj.Add(new JProperty("CanEdit" + (i + 1), false)); |
|
|
|
@ -3288,11 +3332,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
|
|
|
|
|
await UpdateResumeStatus(entity, Status); |
|
|
|
|
|
|
|
|
|
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!"); |
|
|
|
|
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!"); |
|
|
|
|
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
await LogRecord(order.Id, $"提暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!"); |
|
|
|
|
await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); |
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
} |
|
|
|
@ -3474,16 +3517,18 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; |
|
|
|
|
/// <param name="orderId">面试单ID</param> |
|
|
|
|
/// <param name="content">内容</param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
public async Task LogRecord(long orderId, string content, long? resumeId = null, long? recordId = null, string source = null) |
|
|
|
|
public async Task LogRecord(long orderId, string content, long? resumeId = null, long? recordId = null, string source = null, bool? hasAttachment = null) |
|
|
|
|
{ |
|
|
|
|
var usser = await GetUser(); |
|
|
|
|
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() |
|
|
|
|
{ |
|
|
|
|
InterviewOrderId = orderId, |
|
|
|
|
InterviewRecordId = recordId, |
|
|
|
|
ResumeId = resumeId, |
|
|
|
|
Source = source, |
|
|
|
|
RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】" + content |
|
|
|
|
UserId = App.User.ID, |
|
|
|
|
UserName = App.User.Name, |
|
|
|
|
RemarkSz = content, |
|
|
|
|
ReverseI1 = hasAttachment == true ? 1 : 0// 是否有附件 |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
public async Task UpdateResumeStatus(Ghrh_Resume entity, string Status) |
|
|
|
|