master
xiaochanghai 6 months ago
parent 4de0c180b3
commit 1de40f3e7b
  1. 70
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -2103,11 +2103,27 @@ END";
throw new Exception($"传入时间【{input.Time}】无效,请检查格式!");
}
await Db.Updateable<Ghrh_InterviewOrder>()
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id && x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview);
if (records != null && records.Any())
{
for (int j = 0; j < records.Count; j++)
{
records[j].Status = DIC_INTERVIEW_ORDER_STATUS.HasInterview;
var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffID == records[j].StaffId).FirstAsync();
await LogRecord(order.Id, $"因发起一个新面试,【{staff?.StaffName}({staff?.StaffNo})】未及时提交评估,自动转入【已面试】!", id, records[j].Id, "TransferWaitSendOffer");
}
await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "UpdateBy"]);
}
await Db.Updateable<Ghrh_InterviewOrder>()
.SetColumns(it => it.IsEnable == 0)
.Where(it => it.ResumeId == id)
.ExecuteCommandAsync();
}
var interviewIds = input.InterviewStaffs.Select(o => o.StaffId.Value).ToList();
var interviewer = await Db.Queryable<Ghra_Staff>().Where(o => interviewIds.Contains(o.StaffID)).ToListAsync();
@ -2150,7 +2166,7 @@ END";
});
}
await LogRecord(orderId, $"向【{string.Join("", interviewer.Select(o => o.StaffName))}】发起一个新的面试,面试时间:{input.Time}", id, null, "ReRecommended");
await LogRecord(orderId, $"向【{string.Join("", interviewer.Select(o => o.StaffName + $"{o.StaffNo}"))}】发起一个新的面试,面试时间:{input.Time}", id, null, "ReRecommended");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status", "UpdateTime", "UpdateBy"]);
@ -2164,12 +2180,26 @@ END";
if (order != null)
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id && x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview);
if (records != null && records.Any())
{
for (int j = 0; j < records.Count; j++)
{
records[j].Status = DIC_INTERVIEW_ORDER_STATUS.HasInterview;
var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffID == records[j].StaffId).FirstAsync();
await LogRecord(order.Id, $"因发起一个新一轮面试,【{staff?.StaffName}({staff?.StaffNo})】未及时提交评估,自动转入【已面试】!", id, records[j].Id, "TransferWaitSendOffer");
}
await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "UpdateBy"]);
}
order.Round++;
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "Round"]);
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status", "UpdateTime", "UpdateBy"]);
for (int i = 0; i < input.InterviewStaffs.Count; i++)
@ -2177,7 +2207,7 @@ END";
{
OrderId = order.Id,
Round = order.Round,
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview,
Email = input.InterviewStaffs[i].Email,
StaffId = input.InterviewStaffs[i].StaffId,
IsPrimary = i == 0 ? true : false
@ -2185,7 +2215,7 @@ END";
var interviewIds = input.InterviewStaffs.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, $"向【{string.Join("", interviewer.Select(o => o.StaffName + $"{o.StaffNo}"))}】发起一个新一轮面试,面试时间:{input.Time}", id, null, "ReScheduleInterview");
if (input.InterviewStaffs.IsNotEmptyOrNull())
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
@ -2546,7 +2576,7 @@ END";
OrderNo = await GenerateContinuousSequence("Ghrh_InterviewOrder", "OrderNo", "V"),
Status = DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer,
});
await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
}
if (order != null)
@ -2554,6 +2584,18 @@ END";
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
//await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id && x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview);
for (int j = 0; j < records.Count; j++)
{
records[j].Status = DIC_INTERVIEW_ORDER_STATUS.HasInterview;
var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffID == records[j].StaffId).FirstAsync();
await LogRecord(order.Id, $"因状态转入待发Offer,【{staff?.StaffName}({staff?.StaffNo})】未及时提交评估,自动转入【已面试】!", id, records[j].Id, "TransferWaitSendOffer");
}
await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "UpdateBy"]);
await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer");
}
}
@ -2707,13 +2749,19 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
break;
case "WaitInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $" AND B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
{
sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
//sql += $" AND B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
//sql += $" AND (B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
}
break;
case "HasInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
{
sql += $" AND (B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}'";
//sql += $" AND (B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
//sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
}
break;
case "WaitSendOffer":

Loading…
Cancel
Save