master
xiaochanghai 6 months ago
parent 4c32357f09
commit 0605012fa6
  1. 2
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 12
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 12
      Tiobon.Core.Model/Consts.cs
  4. 73
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  5. 2
      Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs
  6. 22
      Tiobon.Core/Tiobon.Core.Model.xml

@ -42,7 +42,7 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
condition = $"(Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitRecommended}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.Fail}')";
break;
case "Process":
condition = $"(Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitAppointment}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasInterview}'OR Status ='{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')";
condition = $"(Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitAppointment}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasInterview}'OR Status ='{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.Cancel}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasChangeDate}')";
break;
case "Hire":
condition = $"(Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";

@ -28624,7 +28624,7 @@
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.InterviewFail">
<summary>
面试不合适
面试不通过
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.Talent_Pool">
@ -28642,6 +28642,16 @@
黑名单
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.HasChangeDate">
<summary>
已改期
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.Cancel">
<summary>
取消
</summary>
</member>
<member name="F:Tiobon.Core.Model.AuthorityScopeEnum.NONE">
<summary>
无任何权限

@ -384,7 +384,7 @@ public class Consts
/// </summary>
public const string Fail = "Fail";
/// <summary>
/// 面试不合适
/// 面试不通过
/// </summary>
public const string InterviewFail = "InterviewFail";
@ -403,6 +403,16 @@ public class Consts
/// </summary>
public const string Blacklist = "Blacklist";
/// <summary>
/// 已改期
/// </summary>
public const string HasChangeDate = "HasChangeDate";
/// <summary>
/// 取消
/// </summary>
public const string Cancel = "Cancel";
}
#endregion

@ -1,6 +1,7 @@
using Amazon.Auth.AccessControlPolicy;
using DinkToPdf;
using DinkToPdf.Contracts;
using DnsClient.Protocol;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using NPOI.HSSF.Record;
@ -193,6 +194,14 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins
if (jsonParam.columnValue.ObjToInt() == 1)
whereExpression.And(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.HasOffer);
break;
case "Cancel":
if (jsonParam.columnValue.ObjToInt() == 1)
whereExpression.And(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.Cancel);
break;
case "HasChangeDate":
if (jsonParam.columnValue.ObjToInt() == 1)
whereExpression.And(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.HasChangeDate);
break;
case "SalaryPeriod":
case "EduDegree":
@ -467,6 +476,11 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins
""Key"": ""WaitAppointment"",
""Count"": 0
},
{
""ItemName"": """",
""Key"": ""HasChangeDate"",
""Count"": 0
},
{
""ItemName"": """",
""Key"": ""WaitInterview"",
@ -476,6 +490,11 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins
""ItemName"": """",
""Key"": ""HasInterview"",
""Count"": 0
},
{
""ItemName"": """",
""Key"": ""Cancel"",
""Count"": 0
}
]
},
@ -1729,7 +1748,7 @@ END";
if (record.PlanInterviewTime1.IsNotEmptyOrNull() || record.PlanInterviewTime2.IsNotEmptyOrNull() || record.PlanInterviewTime3.IsNotEmptyOrNull())
isChangeInterviewTime = true;
if (isChangeInterviewTime)
record.WaitInterviewStatus = "HasChangeInterviewTime";
record.Status = DIC_INTERVIEW_ORDER_STATUS.HasChangeDate;
});
@ -1751,20 +1770,27 @@ END";
else if (i == 2)
records.ForEach(record => record.PlanInterviewTime3 = time);
}
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
if (isChangeInterviewTime)
order.WaitInterviewStatus = "HasChangeInterviewTime";
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasChangeDate;
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
order.AppointmentFeedback = form.Remark;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "AppointmentFeedback"]);
await _ghrh_InterviewRecordServices.Update(records[0], ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]);
#region 日志
if (!isChangeInterviewTime)
await LogRecord(order.Id, $"预约面试,面试时间:{string.Join("", form.Times)},约面反馈:{order.AppointmentFeedback ?? ""}", id, null, "SubscribeInterview");
else
await LogRecord(order.Id, $"修改面试时间,面试时间:{string.Join("", form.Times)},备注:{(form.Remark ?? "")}", id, null, "ChangeInterviewDate");
#endregion
if (!isChangeInterviewTime)
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.WaitAppointment);
else
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.HasChangeDate);
}
return ServiceResult.OprateSuccess();
@ -1813,7 +1839,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},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? ""}", id, records[0].Id, "ScheduleInterview", true);
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"]);
@ -1878,7 +1904,7 @@ END";
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record =>
{
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
record.Status = DIC_INTERVIEW_ORDER_STATUS.HasChangeDate;
record.RemarkSz = form.Remark;
if (record.PlanInterviewTime1.IsNotEmptyOrNull() || record.PlanInterviewTime2.IsNotEmptyOrNull() || record.PlanInterviewTime3.IsNotEmptyOrNull())
isChangeInterviewTime = true;
@ -1889,25 +1915,32 @@ END";
for (int i = 0; i < form.Times.Count; i++)
{
var time = form.Times[i];
if (time.IsNotEmptyOrNull())
{
var time1 = time.Split('~');
time = DateTimeHelper.ConvertToMiniuteString(time1[0]) + "~" + DateTimeHelper.ConvertToOnlyHourMinuteString(time1[1]);
}
if (i == 0)
records.ForEach(record => record.PlanInterviewTime1 = form.Times[i]);
records.ForEach(record => record.PlanInterviewTime1 = time);
else if (i == 1)
records.ForEach(record => record.PlanInterviewTime2 = form.Times[i]);
records.ForEach(record => record.PlanInterviewTime2 = time);
else if (i == 2)
records.ForEach(record => record.PlanInterviewTime3 = form.Times[i]);
records.ForEach(record => record.PlanInterviewTime3 = time);
}
if (isChangeInterviewTime)
order.WaitInterviewStatus = "HasChangeInterviewTime";
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment;
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasChangeDate;
order.AppointmentFeedback = form.Remark;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "AppointmentFeedback"]);
await _ghrh_InterviewRecordServices.Update(records[0], ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]);
await LogRecord(order.Id, $"预约面试,面试时间:{string.Join("", form.Times)}");
await LogRecord(order.Id, $"修改面试时间,面试时间:{string.Join("", form.Times)},备注:{(form.Remark ?? "")}");
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.WaitAppointment);
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.HasChangeDate);
}
return ServiceResult.OprateSuccess();
@ -1991,7 +2024,7 @@ END";
if (records[i].FirstViewTime.IsNotEmptyOrNull())
await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!", "/M_ESS_Recruit/F_ESS_Interview");
}
await LogRecord(order.Id, $"发送待面试提醒");
await LogRecord(order.Id, $"发送待面试提醒", id, null, "RemindWaitInterview");
}
}
@ -2331,7 +2364,7 @@ END";
order.Status = DIC_INTERVIEW_ORDER_STATUS.Fail;
order.InterviewResult = "不合适";
order.FilterFeedback = input.Content;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "InterviewResult", "FilterFeedback"]);
await _ghrh_InterviewOrderServices.Update(order, ["Status", "InterviewResult", "FilterFeedback", "UpdateTime"]);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record =>
@ -2340,8 +2373,8 @@ END";
record.InterviewResult = "不合适";
record.FilterFeedback = input.Content;
});
await _ghrh_InterviewRecordServices.Update(records, ["Status", "InterviewResult", "FilterFeedback"]);
await LogRecord(order.Id, "变更状态为:不合适!");
await _ghrh_InterviewRecordServices.Update(records, ["Status", "InterviewResult", "FilterFeedback", "UpdateTime"]);
await LogRecord(order.Id, $"变更状态为:不合适,不合适原因:{input.Content ?? ""}", id, null, "Fail");
}
return ServiceResult.OprateSuccess();
}
@ -2359,10 +2392,16 @@ END";
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId());
record.WaitInterviewStatus = "Cancel";
record.Status = DIC_INTERVIEW_ORDER_STATUS.Cancel;
record.CancelReason = input.CancelReason;
await _ghrh_InterviewRecordServices.Update(record, ["Status", "CancelReason", "UpdateTime"]);
order.Status = DIC_INTERVIEW_ORDER_STATUS.Cancel;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "UpdateTime"]);
await LogRecord(order.Id, $"取消面试,取消原因:{record.CancelReason ?? ""}", id, null, "Cancel");
await LogRecord(order.Id, "取消面试!");
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.Cancel);
return ServiceResult.OprateSuccess();
}

@ -130,7 +130,7 @@ public class Ghrh_YearHumanSettingsServices : BaseServices<Ghrh_YearHumanSetting
{
int month = x.field.Replace("M", null).Replace("_F", null).ObjToInt();
x.label = year + "-" + x.field.Replace("M", null).Replace("_F", null);
x.label = year + "-" + (month < 10 ? "0" + month : month);
if (month == 12)
year++;
}

@ -28624,7 +28624,7 @@
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.InterviewFail">
<summary>
面试不合适
面试不通过
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.Talent_Pool">
@ -28642,6 +28642,16 @@
黑名单
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.HasChangeDate">
<summary>
已改期
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_INTERVIEW_ORDER_STATUS.Cancel">
<summary>
取消
</summary>
</member>
<member name="F:Tiobon.Core.Model.AuthorityScopeEnum.NONE">
<summary>
无任何权限
@ -29432,6 +29442,16 @@
人力需求单Id
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeLogItem.FlowSignID">
<summary>
FlowSignID
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeLogItem.WorkId">
<summary>
workId
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeLogItem.Attachments">
<summary>
附件

Loading…
Cancel
Save