安排面试新增支持多个人面试

master
xiaochanghai 6 months ago
parent aa875d659a
commit d4ab2c1f0b
  1. 4
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 100
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 2
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 61
      Tiobon.Core.Model/Base/Ghrh/Ghrh_InterviewRecord.Dto.Base.cs
  5. 61
      Tiobon.Core.Model/Models/Ghrh/Ghrh_InterviewRecord.cs
  6. 2
      Tiobon.Core.Services/BASE/BaseServices.cs
  7. 117
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  8. 100
      Tiobon.Core/Tiobon.Core.Model.xml

@ -280,9 +280,9 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
public async Task<ServiceResult> RemindWaitInterview([FromBody] List<long> ids) => await _service.RemindWaitInterview(ids);
#endregion
#region 重新安排面试-直接发起
#region 重新安排面试-直接发起新的
/// <summary>
/// 重新安排面试-直接发起
/// 重新安排面试-直接发起新的
/// </summary>
/// <param name="id">简历Id</param>
/// <param name="input">input</param>

@ -7880,26 +7880,6 @@
取消原因
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Status">
<summary>
状态
@ -7975,6 +7955,36 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.IsPrimary">
<summary>
主面试人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_OfferApplyOrderBase">
<summary>
录用审批单 (Dto.Base)
@ -21511,26 +21521,6 @@
取消原因
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Status">
<summary>
状态
@ -21606,6 +21596,36 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.IsPrimary">
<summary>
主面试人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_OfferApplyOrder">
<summary>
录用审批单 (Model)

@ -1491,7 +1491,7 @@
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.RescheduleInterview(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeRescheduleInterviewForm)">
<summary>
重新安排面试-直接发起
重新安排面试-直接发起新的
</summary>
<param name="id">简历Id</param>
<param name="input">input</param>

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2024/11/26 14:47:26 SimonHsiao
*V0.01 2024/12/20 13:58:20 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
@ -122,30 +122,6 @@ public class Ghrh_InterviewRecordBase
[Display(Name = "CancelReason"), Description("取消原因"), MaxLength(256, ErrorMessage = "取消原因 不能超过 256 个字符")]
public string CancelReason { get; set; }
/// <summary>
/// 面试环节
/// </summary>
[Display(Name = "InterviewStepName"), Description("面试环节"), MaxLength(32, ErrorMessage = "面试环节 不能超过 32 个字符")]
public string InterviewStepName { get; set; }
/// <summary>
/// 筛选反馈
/// </summary>
[Display(Name = "FilterFeedback"), Description("筛选反馈"), MaxLength(256, ErrorMessage = "筛选反馈 不能超过 256 个字符")]
public string FilterFeedback { get; set; }
/// <summary>
/// 约面反馈
/// </summary>
[Display(Name = "AppointmentFeedback"), Description("约面反馈"), MaxLength(256, ErrorMessage = "约面反馈 不能超过 256 个字符")]
public string AppointmentFeedback { get; set; }
/// <summary>
/// 录用反馈
/// </summary>
[Display(Name = "OfferFeedback"), Description("录用反馈"), MaxLength(256, ErrorMessage = "录用反馈 不能超过 256 个字符")]
public string OfferFeedback { get; set; }
/// <summary>
/// 状态
/// </summary>
@ -232,4 +208,39 @@ public class Ghrh_InterviewRecordBase
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 约面反馈
/// </summary>
[Display(Name = "AppointmentFeedback"), Description("约面反馈"), MaxLength(256, ErrorMessage = "约面反馈 不能超过 256 个字符")]
public string AppointmentFeedback { get; set; }
/// <summary>
/// 筛选反馈
/// </summary>
[Display(Name = "FilterFeedback"), Description("筛选反馈"), MaxLength(256, ErrorMessage = "筛选反馈 不能超过 256 个字符")]
public string FilterFeedback { get; set; }
/// <summary>
/// 录用反馈
/// </summary>
[Display(Name = "OfferFeedback"), Description("录用反馈"), MaxLength(256, ErrorMessage = "录用反馈 不能超过 256 个字符")]
public string OfferFeedback { get; set; }
/// <summary>
/// 面试环节
/// </summary>
[Display(Name = "InterviewStepName"), Description("面试环节"), MaxLength(32, ErrorMessage = "面试环节 不能超过 32 个字符")]
public string InterviewStepName { get; set; }
/// <summary>
/// 主面试人
/// </summary>
public bool? IsPrimary { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[Display(Name = "Email"), Description("邮箱"), MaxLength(128, ErrorMessage = "邮箱 不能超过 128 个字符")]
public string Email { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2024/11/26 14:47:26 SimonHsiao
*V0.01 2024/12/20 13:58:20 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
@ -123,30 +123,6 @@ public class Ghrh_InterviewRecord : BasePoco
[Display(Name = "CancelReason"), Description("取消原因"), MaxLength(256, ErrorMessage = "取消原因 不能超过 256 个字符")]
public string CancelReason { get; set; }
/// <summary>
/// 面试环节
/// </summary>
[Display(Name = "InterviewStepName"), Description("面试环节"), MaxLength(32, ErrorMessage = "面试环节 不能超过 32 个字符")]
public string InterviewStepName { get; set; }
/// <summary>
/// 约面反馈
/// </summary>
[Display(Name = "AppointmentFeedback"), Description("约面反馈"), MaxLength(256, ErrorMessage = "约面反馈 不能超过 256 个字符")]
public string AppointmentFeedback { get; set; }
/// <summary>
/// 筛选反馈
/// </summary>
[Display(Name = "FilterFeedback"), Description("筛选反馈"), MaxLength(256, ErrorMessage = "筛选反馈 不能超过 256 个字符")]
public string FilterFeedback { get; set; }
/// <summary>
/// 录用反馈
/// </summary>
[Display(Name = "OfferFeedback"), Description("录用反馈"), MaxLength(256, ErrorMessage = "录用反馈 不能超过 256 个字符")]
public string OfferFeedback { get; set; }
/// <summary>
/// 状态
/// </summary>
@ -233,4 +209,39 @@ public class Ghrh_InterviewRecord : BasePoco
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 约面反馈
/// </summary>
[Display(Name = "AppointmentFeedback"), Description("约面反馈"), MaxLength(256, ErrorMessage = "约面反馈 不能超过 256 个字符")]
public string AppointmentFeedback { get; set; }
/// <summary>
/// 筛选反馈
/// </summary>
[Display(Name = "FilterFeedback"), Description("筛选反馈"), MaxLength(256, ErrorMessage = "筛选反馈 不能超过 256 个字符")]
public string FilterFeedback { get; set; }
/// <summary>
/// 录用反馈
/// </summary>
[Display(Name = "OfferFeedback"), Description("录用反馈"), MaxLength(256, ErrorMessage = "录用反馈 不能超过 256 个字符")]
public string OfferFeedback { get; set; }
/// <summary>
/// 面试环节
/// </summary>
[Display(Name = "InterviewStepName"), Description("面试环节"), MaxLength(32, ErrorMessage = "面试环节 不能超过 32 个字符")]
public string InterviewStepName { get; set; }
/// <summary>
/// 主面试人
/// </summary>
public bool? IsPrimary { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[Display(Name = "Email"), Description("邮箱"), MaxLength(128, ErrorMessage = "邮箱 不能超过 128 个字符")]
public string Email { get; set; }
}

@ -2057,7 +2057,7 @@ ORDER BY SortNo ASC";
'Re'+(select Top 1 ParameterValue from Ghrs_Parameter where ParameterNo='GHRURL')+'/appOauth.html?jumpPage='+'F_APP_message/msgGroupList' url,
'GHR' picurl,
'' htmlStr,
{string.Join(',', staffIds.Select(x => x))} toStaffIDs
'{string.Join(',', staffIds.Select(x => x))}' toStaffIDs
for json path)
-- select @Json
exec [dbo].[PS_CreateWorkwxMsg] @Json,'Resume'";

@ -1596,7 +1596,10 @@ END";
recommend.InterviewStaffs = recommend.InterviewStaffs.Where(x => x.StaffId != null).ToList();
if (!recommend.InterviewStaffs.Any())
return ServiceResult.OprateFailed("请先选择面试者!");
return ServiceResult.OprateFailed("至少选择一名面试者!");
recommend.InterviewStaffs = recommend.InterviewStaffs.Where(x => x.StaffId != null).Distinct().ToList();
if (recommend.RequestId.IsNotEmptyOrNull())
{
@ -1660,15 +1663,17 @@ END";
Round = 1,
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
StaffId = recommend.InterviewStaffs[i].StaffId,
Email = recommend.InterviewStaffs[i].Email,
IsPrimary = i == 0 ? true : false,
});
await SendMessage(recommend.InterviewStaffs.Where(x => x.StaffId != null).Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
await SendMessage(recommend.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
var entity = await base.QueryById(id);
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
await Update(entity, ["Status"]);
#region 日志
await LogRecord(orderId, $"向【{string.Join(",", interviewer.Select(o => o.StaffName))}】推荐了简历,推荐理由:{recommend.RecommendRemark ?? ""}", id, null, "Recommended", true);
await LogRecord(orderId, $"向【{string.Join("", interviewer.Select(o => o.StaffName))}】推荐了简历,推荐理由:{recommend.RecommendRemark ?? ""}", id, null, "Recommended", true);
#endregion
#region 处理附件
@ -2054,11 +2059,16 @@ END";
#region 重新安排面试
public async Task<ServiceResult> RescheduleInterview(long id, ResumeRescheduleInterviewForm input, string type)
{
if (input.InterviewStaffs is null)
return ServiceResult.OprateFailed("面试不能为空!");
input.InterviewStaffs = input.InterviewStaffs.Where(x => x.StaffId != null).Distinct().ToList();
if (!input.InterviewStaffs.Any())
return ServiceResult.OprateFailed("至少选择一名面试者!");
var entity = await base.QueryById(id);
if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!");
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (type == "Reschedule")
{
//if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitInterview)
@ -2076,54 +2086,66 @@ END";
{
throw new Exception($"传入时间【{input.Time}】无效,请检查格式!");
}
if (order != null)
{
order.Round++;
order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "Round"]);
await Db.Updateable<Ghrh_InterviewOrder>()
.SetColumns(it => it.IsEnable == 0)
.Where(it => it.ResumeId == id)
.ExecuteCommandAsync();
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();
var interviewIds = input.InterviewStaffs.Select(o => o.StaffId.Value).ToList();
var interviewer = await Db.Queryable<Ghra_Staff>().Where(o => interviewIds.Contains(o.StaffID)).ToListAsync();
for (int i = 0; i < input.InterviewStaffs.Count; i++)
var orderId = await _ghrh_InterviewOrderServices.Add(new InsertGhrh_InterviewOrderInput()
{
ResumeId = id,
RecommendTime = DateTime.Now,
RecommendId = App.User.ID,
Round = 1,
OrderNo = await GenerateContinuousSequence("Ghrh_InterviewOrder", "OrderNo", "V"),
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview,
RecommendRemark = null,
InterviewIds = JsonHelper.ObjToJson(interviewIds),
Interviewer = string.Join(",", interviewer.Select(o => o.StaffName))
});
//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 = orderId,
Round = 1,
StaffId = input.InterviewStaffs[i].StaffId,
Email = input.InterviewStaffs[i].Email,
InterviewTime = input.Time,
PlanInterviewTime1 = input.Time,
InterviewBeginTime = Convert.ToDateTime(array[0]),
InterviewEndTime = Convert.ToDateTime(array[1]),
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview,
IsPrimary = i == 0 ? true : false
});
}
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput()
{
OrderId = order.Id,
Round = order.Round,
StaffId = input.InterviewStaffs[i].StaffId,
InterviewTime = input.Time,
PlanInterviewTime1 = input.Time,
InterviewBeginTime = Convert.ToDateTime(array[0]),
InterviewEndTime = Convert.ToDateTime(array[1]),
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");
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status"]);
if (input.InterviewStaffs.IsNotEmptyOrNull())
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!", "/M_ESS_Recruit/F_ESS_Interview");
await LogRecord(orderId, $"向【{string.Join("", interviewer.Select(o => o.StaffName))}】发起一个新的面试,面试时间:{input.Time}", id, null, "ReScheduleInterview");
}
entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await Update(entity, ["Status", "UpdateTime", "UpdateBy"]);
if (input.InterviewStaffs.IsNotEmptyOrNull())
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!", "/M_ESS_Recruit/F_ESS_Interview");
}
else
{
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null)
{
order.Round++;
@ -2132,7 +2154,7 @@ END";
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
await Update(entity, ["Status"]);
await Update(entity, ["Status", "UpdateTime", "UpdateBy"]);
for (int i = 0; i < input.InterviewStaffs.Count; i++)
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput()
@ -2140,13 +2162,14 @@ END";
OrderId = order.Id,
Round = order.Round,
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
Email = input.InterviewStaffs[i].Email,
StaffId = input.InterviewStaffs[i].StaffId,
IsPrimary = i == 0 ? true : false
});
var interviewIds = input.InterviewStaffs.Where(o => o.StaffId != null)
.Select(o => o.StaffId.Value).ToList();
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, "ReRecommended");
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");
@ -3817,7 +3840,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
{
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
records.ForEach(record => record.Status = Status);
await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "CreateBy"]);
await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "UpdateBy"]);
}
/// <summary>
/// 同步数据进入认识资料

@ -7880,26 +7880,6 @@
取消原因
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Status">
<summary>
状态
@ -7975,6 +7955,36 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.IsPrimary">
<summary>
主面试人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_OfferApplyOrderBase">
<summary>
录用审批单 (Dto.Base)
@ -21511,26 +21521,6 @@
取消原因
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Status">
<summary>
状态
@ -21606,6 +21596,36 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AppointmentFeedback">
<summary>
约面反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.FilterFeedback">
<summary>
筛选反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.OfferFeedback">
<summary>
录用反馈
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.InterviewStepName">
<summary>
面试环节
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.IsPrimary">
<summary>
主面试人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_OfferApplyOrder">
<summary>
录用审批单 (Model)

Loading…
Cancel
Save