新增展开面试官id

master
xiaochanghai 7 months ago
parent 8bfac5c9e0
commit 6e74d35c77
  1. 13
      Model/Tiobon.Web.pdm
  2. 60
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 1
      Tiobon.Core.IServices/BASE/IBaseServices.cs
  4. 37
      Tiobon.Core.Model/Base/Ghrh/Ghrh_InterviewRecord.Dto.Base.cs
  5. 37
      Tiobon.Core.Model/Models/Ghrh/Ghrh_InterviewRecord.cs
  6. 21
      Tiobon.Core.Repository/BASE/BaseRepository.cs
  7. 1
      Tiobon.Core.Repository/BASE/IBaseRepository.cs
  8. 4
      Tiobon.Core.Services/BASE/BaseServices.cs
  9. 145
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1731574860" Name="Tiobon" Objects="2383" Symbols="94" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?> <?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1731765482" Name="Tiobon" Objects="2383" Symbols="94" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?>
<!-- do not edit this file --> <!-- do not edit this file -->
<Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"> <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@ -40894,15 +40894,14 @@ Ghra_staff_InsureBase
</o:Column> </o:Column>
<o:Column Id="o2385"> <o:Column Id="o2385">
<a:ObjectID>6F397F95-C7C8-431C-89B4-CF3453A56C12</a:ObjectID> <a:ObjectID>6F397F95-C7C8-431C-89B4-CF3453A56C12</a:ObjectID>
<a:Name>简历接收人ids</a:Name> <a:Name>面试官ID</a:Name>
<a:Code>ReceiverIds</a:Code> <a:Code>StaffId</a:Code>
<a:CreationDate>1731491418</a:CreationDate> <a:CreationDate>1731491418</a:CreationDate>
<a:Creator>Administrator</a:Creator> <a:Creator>Administrator</a:Creator>
<a:ModificationDate>1731491423</a:ModificationDate> <a:ModificationDate>1731765482</a:ModificationDate>
<a:Modifier>Administrator</a:Modifier> <a:Modifier>Administrator</a:Modifier>
<a:Comment>简历接收人ids</a:Comment> <a:Comment>面试官ID</a:Comment>
<a:DataType>nvarchar(2000)</a:DataType> <a:DataType>int</a:DataType>
<a:Length>2000</a:Length>
</o:Column> </o:Column>
<o:Column Id="o2386"> <o:Column Id="o2386">
<a:ObjectID>E5951B5E-C7A5-4168-BDD2-A836AD3B5F9A</a:ObjectID> <a:ObjectID>E5951B5E-C7A5-4168-BDD2-A836AD3B5F9A</a:ObjectID>

@ -6395,11 +6395,6 @@
轮数 轮数
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.ReceiverIds">
<summary>
简历接收人ids
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.PlanInterviewTime1"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.PlanInterviewTime1">
<summary> <summary>
预面试时间1 预面试时间1
@ -6440,11 +6435,6 @@
简历首次查询时间 简历首次查询时间
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AssessTime">
<summary>
评估时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.IsPass"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.IsPass">
<summary> <summary>
是否通过 是否通过
@ -6455,11 +6445,6 @@
面试结果 面试结果
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.RemarkSz">
<summary> <summary>
备注 备注
@ -6530,6 +6515,21 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.AssessTime">
<summary>
评估时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecordBase.StaffId">
<summary>
面试官ID
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeBase"> <member name="T:Tiobon.Core.Model.Models.Ghrh_ResumeBase">
<summary> <summary>
个人简历 (Dto.Base) 个人简历 (Dto.Base)
@ -17016,11 +17016,6 @@
轮数 轮数
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.ReceiverIds">
<summary>
简历接收人ids
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.PlanInterviewTime1"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.PlanInterviewTime1">
<summary> <summary>
预面试时间1 预面试时间1
@ -17061,11 +17056,6 @@
简历首次查询时间 简历首次查询时间
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AssessTime">
<summary>
评估时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.IsPass"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.IsPass">
<summary> <summary>
是否通过 是否通过
@ -17076,11 +17066,6 @@
面试结果 面试结果
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.RemarkSz">
<summary> <summary>
备注 备注
@ -17151,6 +17136,21 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.AssessTime">
<summary>
评估时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_InterviewRecord.StaffId">
<summary>
面试官ID
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_Resume"> <member name="T:Tiobon.Core.Model.Models.Ghrh_Resume">
<summary> <summary>
个人简历 (Model) 个人简历 (Model)

@ -126,6 +126,7 @@ namespace Tiobon.Core.IServices.BASE
Task<bool> Update(object operateAnonymousObjects); Task<bool> Update(object operateAnonymousObjects);
Task<bool> Update(TEntity entity, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = ""); Task<bool> Update(TEntity entity, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "");
Task<bool> Update(List<TEntity> entitys, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "");
Task<List<TEntity>> Query(); Task<List<TEntity>> Query();
Task<List<TEntity>> Query(string where); Task<List<TEntity>> Query(string where);

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/11/14 9:19:49 SimonHsiao *V0.01 2024/11/16 22:02:11 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -33,12 +33,6 @@ public class Ghrh_InterviewRecordBase
/// </summary> /// </summary>
public int? Round { get; set; } public int? Round { get; set; }
/// <summary>
/// 简历接收人ids
/// </summary>
[Display(Name = "ReceiverIds"), Description("简历接收人ids"), MaxLength(2000, ErrorMessage = "简历接收人ids 不能超过 2000 个字符")]
public string ReceiverIds { get; set; }
/// <summary> /// <summary>
/// 预面试时间1 /// 预面试时间1
/// </summary> /// </summary>
@ -83,11 +77,6 @@ public class Ghrh_InterviewRecordBase
/// </summary> /// </summary>
public DateTime? LastViewTime { get; set; } public DateTime? LastViewTime { get; set; }
/// <summary>
/// 评估时间
/// </summary>
public DateTime? AssessTime { get; set; }
/// <summary> /// <summary>
/// 是否通过 /// 是否通过
/// </summary> /// </summary>
@ -96,15 +85,9 @@ public class Ghrh_InterviewRecordBase
/// <summary> /// <summary>
/// 面试结果 /// 面试结果
/// </summary> /// </summary>
[Display(Name = "InterviewResult"), Description("面试结果"), MaxLength(256, ErrorMessage = "面试结果 不能超过 2000 个字符")] [Display(Name = "InterviewResult"), Description("面试结果"), MaxLength(2000, ErrorMessage = "面试结果 不能超过 2000 个字符")]
public string InterviewResult { get; set; } public string InterviewResult { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
@ -185,4 +168,20 @@ public class Ghrh_InterviewRecordBase
/// 预留字段12 /// 预留字段12
/// </summary> /// </summary>
public int? ReverseI2 { get; set; } public int? ReverseI2 { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 评估时间
/// </summary>
public DateTime? AssessTime { get; set; }
/// <summary>
/// 面试官ID
/// </summary>
public int? StaffId { get; set; }
} }

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/11/14 9:19:49 SimonHsiao *V0.01 2024/11/16 22:02:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -34,12 +34,6 @@ public class Ghrh_InterviewRecord : BasePoco
/// </summary> /// </summary>
public int? Round { get; set; } public int? Round { get; set; }
/// <summary>
/// 简历接收人ids
/// </summary>
[Display(Name = "ReceiverIds"), Description("简历接收人ids"), MaxLength(2000, ErrorMessage = "简历接收人ids 不能超过 2000 个字符")]
public string ReceiverIds { get; set; }
/// <summary> /// <summary>
/// 预面试时间1 /// 预面试时间1
/// </summary> /// </summary>
@ -84,11 +78,6 @@ public class Ghrh_InterviewRecord : BasePoco
/// </summary> /// </summary>
public DateTime? LastViewTime { get; set; } public DateTime? LastViewTime { get; set; }
/// <summary>
/// 评估时间
/// </summary>
public DateTime? AssessTime { get; set; }
/// <summary> /// <summary>
/// 是否通过 /// 是否通过
/// </summary> /// </summary>
@ -97,15 +86,9 @@ public class Ghrh_InterviewRecord : BasePoco
/// <summary> /// <summary>
/// 面试结果 /// 面试结果
/// </summary> /// </summary>
[Display(Name = "InterviewResult"), Description("面试结果"), MaxLength(256, ErrorMessage = "面试结果 不能超过 2000 个字符")] [Display(Name = "InterviewResult"), Description("面试结果"), MaxLength(2000, ErrorMessage = "面试结果 不能超过 2000 个字符")]
public string InterviewResult { get; set; } public string InterviewResult { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
@ -186,4 +169,20 @@ public class Ghrh_InterviewRecord : BasePoco
/// 预留字段12 /// 预留字段12
/// </summary> /// </summary>
public int? ReverseI2 { get; set; } public int? ReverseI2 { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 评估时间
/// </summary>
public DateTime? AssessTime { get; set; }
/// <summary>
/// 面试官ID
/// </summary>
public int? StaffId { get; set; }
} }

@ -229,6 +229,27 @@ public class BaseRepository<TEntity> : IBaseRepository<TEntity> where TEntity :
return await up.ExecuteCommandHasChangeAsync(); return await up.ExecuteCommandHasChangeAsync();
} }
public async Task<bool> Update(List<TEntity> entitys, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "")
{
IUpdateable<TEntity> up = _db.Updateable(entitys);
if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0)
{
up = up.IgnoreColumns(lstIgnoreColumns.ToArray());
}
if (lstColumns != null && lstColumns.Count > 0)
{
up = up.UpdateColumns(lstColumns.ToArray());
}
if (!string.IsNullOrEmpty(where))
{
up = up.Where(where);
}
return await up.ExecuteCommandHasChangeAsync();
}
/// <summary> /// <summary>
/// 根据实体删除一条数据 /// 根据实体删除一条数据
/// </summary> /// </summary>

@ -116,6 +116,7 @@ public interface IBaseRepository<TEntity> where TEntity : class
/// <param name="where"></param> /// <param name="where"></param>
/// <returns></returns> /// <returns></returns>
Task<bool> Update(TEntity entity, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = ""); Task<bool> Update(TEntity entity, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "");
Task<bool> Update(List<TEntity> entitys, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "");
/// <summary> /// <summary>
/// 查询 /// 查询

@ -444,6 +444,10 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
{ {
return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, where); return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, where);
} }
public async Task<bool> Update(List<TEntity> entitys, List<string> lstColumns = null, List<string> lstIgnoreColumns = null, string where = "")
{
return await BaseDal.Update(entitys, lstColumns, lstIgnoreColumns, where);
}
/// <summary> /// <summary>

@ -1257,14 +1257,14 @@ END";
OrderNo = await GenerateContinuousSequence("Ghrh_InterviewOrder", "OrderNo", "V"), OrderNo = await GenerateContinuousSequence("Ghrh_InterviewOrder", "OrderNo", "V"),
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended
}); });
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput() for (int i = 0; i < recommend.InterviewStaffs.Count; i++)
{ await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput()
OrderId = orderId, {
Round = 1, OrderId = orderId,
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, Round = 1,
ReceiverIds = JsonHelper.ObjToJson(recommend.InterviewStaffs), Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
}); StaffId = recommend.InterviewStaffs[i].StaffId,
});
return ServiceResult.OprateSuccess(); return ServiceResult.OprateSuccess();
} }
@ -1283,15 +1283,14 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (record.FirstViewTime.IsNotEmptyOrNull()) //if (record.FirstViewTime.IsNotEmptyOrNull())
return ServiceResult.OprateFailed("面试官已查看简历,暂不可发送提醒!"); // return ServiceResult.OprateFailed("面试官已查看简历,暂不可发送提醒!");
if (record.ReceiverIds.IsNotEmptyOrNull()) for (int i = 0; i < records.Count; i++)
{ {
if (records[i].FirstViewTime.IsNotEmptyOrNull())
var staffs = JsonHelper.JsonToObj<List<ResumeRecommendFormStaff>>(record.ReceiverIds); await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!");
await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历推荐,请及时查看!");
} }
var usser = await GetUser(); var usser = await GetUser();
@ -1335,19 +1334,19 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
for (int i = 0; i < times.Count; i++) for (int i = 0; i < times.Count; i++)
{ {
if (i == 0) if (i == 0)
record.PlanInterviewTime1 = times[i]; records.ForEach(record => record.PlanInterviewTime1 = times[i]);
else if (i == 1) else if (i == 1)
record.PlanInterviewTime2 = times[i]; records.ForEach(record => record.PlanInterviewTime2 = times[i]);
else if (i == 2) else if (i == 2)
record.PlanInterviewTime3 = times[i]; records.ForEach(record => record.PlanInterviewTime3 = times[i]);
} }
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment; records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment);
await _ghrh_InterviewRecordServices.Update(record, ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]); await _ghrh_InterviewRecordServices.Update(records[0], ["PlanInterviewTime1", "PlanInterviewTime2", "PlanInterviewTime3", "Status"]);
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
@ -1389,14 +1388,17 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
record.InterviewTime = time;
record.InterviewBeginTime = Convert.ToDateTime(array[0]);
record.InterviewEndTime = Convert.ToDateTime(array[1]);
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; records.ForEach(record =>
{
record.InterviewTime = time;
record.InterviewBeginTime = Convert.ToDateTime(array[0]);
record.InterviewEndTime = Convert.ToDateTime(array[1]);
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await _ghrh_InterviewRecordServices.Update(record, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]); });
await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]);
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
@ -1438,14 +1440,19 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
record.InterviewTime = time;
record.InterviewBeginTime = Convert.ToDateTime(array[0]); records.ForEach(record =>
record.InterviewEndTime = Convert.ToDateTime(array[1]); {
record.InterviewTime = time;
record.InterviewBeginTime = Convert.ToDateTime(array[0]);
record.InterviewEndTime = Convert.ToDateTime(array[1]);
record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; record.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
await _ghrh_InterviewRecordServices.Update(record, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]); });
await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]);
//if (record.ReceiverIds.IsNotEmptyOrNull()) //if (record.ReceiverIds.IsNotEmptyOrNull())
//{ //{
@ -1481,12 +1488,12 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (record.ReceiverIds.IsNotEmptyOrNull()) for (int i = 0; i < records.Count; i++)
{ {
var staffs = JsonHelper.JsonToObj<List<ResumeRecommendFormStaff>>(record.ReceiverIds); if (records[i].FirstViewTime.IsNotEmptyOrNull())
await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
} }
var usser = await GetUser(); var usser = await GetUser();
@ -1533,17 +1540,20 @@ END";
await _ghrh_InterviewOrderServices.Update(order, ["Status", "Round"]); await _ghrh_InterviewOrderServices.Update(order, ["Status", "Round"]);
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput() for (int i = 0; i < input.InterviewStaffs.Count; i++)
{ {
OrderId = order.Id, await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput()
Round = order.Round, {
ReceiverIds = JsonHelper.ObjToJson(input.InterviewStaffs), OrderId = order.Id,
InterviewTime = input.Time, Round = order.Round,
PlanInterviewTime1 = input.Time, StaffId = input.InterviewStaffs[i].StaffId,
InterviewBeginTime = Convert.ToDateTime(array[0]), InterviewTime = input.Time,
InterviewEndTime = Convert.ToDateTime(array[1]), PlanInterviewTime1 = input.Time,
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview InterviewBeginTime = Convert.ToDateTime(array[0]),
}); InterviewEndTime = Convert.ToDateTime(array[1]),
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview
});
}
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
@ -1573,13 +1583,14 @@ END";
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended; entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
await Update(entity, ["Status"]); await Update(entity, ["Status"]);
await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput() for (int i = 0; i < input.InterviewStaffs.Count; i++)
{ await _ghrh_InterviewRecordServices.Add(new InsertGhrh_InterviewRecordInput()
OrderId = order.Id, {
Round = order.Round, OrderId = order.Id,
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, Round = order.Round,
ReceiverIds = JsonHelper.ObjToJson(input.InterviewStaffs), Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
}); StaffId = input.InterviewStaffs[i].StaffId,
});
if (input.InterviewStaffs.IsNotEmptyOrNull()) if (input.InterviewStaffs.IsNotEmptyOrNull())
await SendMessage(input.InterviewStaffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!"); await SendMessage(input.InterviewStaffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!");
@ -1602,7 +1613,7 @@ END";
order.InterviewResult = input.Content; order.InterviewResult = input.Content;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult"]); await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult"]);
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId());
record.InterviewResult = input.Content; record.InterviewResult = input.Content;
record.IsPass = input.IsPass; record.IsPass = input.IsPass;
record.AssessTime = DateTime.Now; record.AssessTime = DateTime.Now;
@ -1629,8 +1640,15 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id);
record.ReceiverIds = JsonHelper.ObjToJson(InterviewStaffs);
await _ghrh_InterviewRecordServices.Update(record, ["ReceiverIds"]); var insertRecord = Mapper.Map(record).ToANew<InsertGhrh_InterviewRecordInput>();
await _ghrh_InterviewRecordServices.Delete(x => x.Round == order.Round && x.OrderId == order.Id);
for (int i = 0; i < InterviewStaffs.Count; i++)
{
insertRecord.StaffId = InterviewStaffs[i].StaffId;
await _ghrh_InterviewRecordServices.Add(insertRecord);
}
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
@ -1656,9 +1674,9 @@ END";
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; order.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer;
await _ghrh_InterviewOrderServices.Update(order, ["Status"]); await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
record.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer);
await _ghrh_InterviewRecordServices.Update(record, ["Status"]); await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()
@ -1716,18 +1734,17 @@ END";
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
if (order != null) if (order != null)
{ {
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (isOffer) if (isOffer)
{ {
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer;
record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer);
} }
await Update(entity, ["Status"]); await Update(entity, ["Status"]);
await _ghrh_InterviewOrderServices.Update(order, ["Status"]); await _ghrh_InterviewOrderServices.Update(order, ["Status"]);
await _ghrh_InterviewRecordServices.Update(record, ["Status"]); await _ghrh_InterviewRecordServices.Update(records, ["Status"]);
var usser = await GetUser(); var usser = await GetUser();
await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput()

Loading…
Cancel
Save