diff --git a/Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs b/Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs index e5fbe9c4..7c676037 100644 --- a/Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs +++ b/Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs @@ -249,7 +249,7 @@ public class Ghrh_ResumeController : BaseController - /// 面试官约面 + /// 安排面试 /// /// 简历Id /// @@ -274,10 +274,10 @@ public class Ghrh_ResumeController : BaseController /// 待面试提醒 /// - /// 简历Id + /// 简历Id,列表 /// - [HttpPost, Route("RemindWaitInterview/{id}")] - public async Task RemindWaitInterview(long id) => await _service.RemindWaitInterview(id); + [HttpPost, Route("RemindWaitInterview")] + public async Task RemindWaitInterview([FromBody] List ids) => await _service.RemindWaitInterview(ids); #endregion #region 重新安排面试-直接发起 @@ -337,12 +337,12 @@ public class Ghrh_ResumeController : BaseController /// 发offer /// - /// 简历Id + /// 简历Id,列表 /// - [HttpPost, Route("SendOffer/{id}")] - public async Task SendOffer(long id) + [HttpPost, Route("SendOffer")] + public async Task SendOffer([FromBody] List ids) { - return await _service.SendOffer(id); + return await _service.SendOffer(ids); } #endregion @@ -350,12 +350,12 @@ public class Ghrh_ResumeController : BaseController /// 已发offer提醒 /// - /// 简历Id + /// 简历Id,列表 /// - [HttpPost, Route("RemindHasOffer/{id}")] - public async Task RemindHasOffer(long id) + [HttpPost, Route("RemindHasOffer")] + public async Task RemindHasOffer([FromBody] List ids) { - return await _service.SendOffer(id); + return await _service.RemindHasOffer(ids); } #endregion @@ -366,10 +366,10 @@ public class Ghrh_ResumeController : BaseController简历Id /// 已报到传true,未报到传false /// - [HttpPost, Route("ModifyIsOffer/{id}/{value}")] - public async Task ModifyIsOffer(long id, bool value) + [HttpPost, Route("ModifyIsOffer/{value}")] + public async Task ModifyIsOffer([FromBody] List ids, bool value) { - return await _service.ModifyIsOffer(id, value); + return await _service.ModifyIsOffer(ids, value); } #endregion @@ -387,6 +387,7 @@ public class Ghrh_ResumeController : BaseController /// ESS端查询面试记录 /// + /// body /// 状态 /// [HttpPost, Route("QueryESS/{status}")] @@ -395,21 +396,21 @@ public class Ghrh_ResumeController : BaseController - 面试官约面 + 安排面试 简历Id @@ -1381,11 +1381,11 @@ 时间段,2024/10/12 10:00~2024/10/12 11:00 - + 待面试提醒 - 简历Id + 简历Id,列表 @@ -1420,21 +1420,21 @@ 面试官列表 - + 发offer - 简历Id + 简历Id,列表 - + 已发offer提醒 - 简历Id + 简历Id,列表 - + 已报到/未报道接口 @@ -1453,6 +1453,7 @@ ESS端查询面试记录 + body 状态 diff --git a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs index 8cc9be66..02926fa3 100644 --- a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs +++ b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs @@ -42,7 +42,7 @@ public interface IGhrh_ResumeServices : IBaseServices ModifyInterviewTime(long id, string time); - Task RemindWaitInterview(long id); + Task RemindWaitInterview(List ids); Task RescheduleInterview(long id, ResumeRescheduleInterviewForm input, string type); @@ -50,11 +50,11 @@ public interface IGhrh_ResumeServices : IBaseServices ModifyInterviewer(long id, List InterviewStaffs); - Task SendOffer(long id); + Task SendOffer(List ids); - Task RemindHasOffer(long id); + Task RemindHasOffer(List ids); - Task ModifyIsOffer(long id, bool isOffer); + Task ModifyIsOffer(List ids, bool isOffer); Task> QueryESS(QueryBody filter, string condition); diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index d0dd59d5..ba87b375 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -1242,16 +1242,12 @@ END"; for (int m = 0; m < recommend.ids.Count; m++) { var id = recommend.ids[m]; - if (await AnyAsync(x => x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended || + if (await AnyAsync(x => x.Id == id && (x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended || x.Status == DIC_INTERVIEW_ORDER_STATUS.HasRecommended || x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitAppointment || x.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview || - x.Status == DIC_INTERVIEW_ORDER_STATUS.HasInterview)) + x.Status == DIC_INTERVIEW_ORDER_STATUS.HasInterview))) continue; - await Db.Updateable() - .SetColumns(it => it.IsEnable == 0) - .Where(it => it.ResumeId == id) - .ExecuteCommandAsync(); var orderId = await _ghrh_InterviewOrderServices.Add(new InsertGhrh_InterviewOrderInput() { @@ -1272,6 +1268,10 @@ END"; Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended, StaffId = recommend.InterviewStaffs[i].StaffId, }); + + var entity = await base.QueryById(id); + entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended; + await Update(entity, ["Status"]); } return ServiceResult.OprateSuccess(); @@ -1346,6 +1346,10 @@ END"; var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); if (order != null) { + + order.Status = DIC_INTERVIEW_ORDER_STATUS.WaitAppointment; + await _ghrh_InterviewOrderServices.Update(order, ["Status"]); + var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); for (int i = 0; i < times.Count; i++) { @@ -1490,32 +1494,36 @@ END"; #endregion #region 待面试提醒 - public async Task RemindWaitInterview(long id) + public async Task RemindWaitInterview(List ids) { - var entity = await base.QueryById(id); - if (entity == null) - return ServiceResult.OprateFailed("无效的简历ID!"); - - if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitInterview) - return ServiceResult.OprateFailed("非【待面试】状态下简历不可发送提醒!"); - - var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); - if (order != null) + for (int m = 0; m < ids.Count; m++) { - var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); + var id = ids[m]; + var entity = await base.QueryById(id); + if (entity == null) + return ServiceResult.OprateFailed("无效的简历ID!"); - for (int i = 0; i < records.Count; i++) - { - if (records[i].FirstViewTime.IsNotEmptyOrNull()) - await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); - } + if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitInterview) + return ServiceResult.OprateFailed("非【待面试】状态下简历不可发送提醒!"); - var usser = await GetUser(); - await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); + if (order != null) { - OrderId = order.Id, - RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待面试提醒!" - }); + var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); + + for (int i = 0; i < records.Count; i++) + { + if (records[i].FirstViewTime.IsNotEmptyOrNull()) + await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); + } + + var usser = await GetUser(); + await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + { + OrderId = order.Id, + RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待面试提醒!" + }); + } } return ServiceResult.OprateSuccess(); @@ -1675,60 +1683,68 @@ END"; #endregion #region 发offer - public async Task SendOffer(long id) + public async Task SendOffer(List ids) { - var entity = await base.QueryById(id); - if (entity == null) - return ServiceResult.OprateFailed("无效的简历ID!"); + for (int i = 0; i < ids.Count; i++) + { + var id = ids[i]; + var entity = await base.QueryById(id); + if (entity == null) + return ServiceResult.OprateFailed("无效的简历ID!"); - entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; - await Update(entity, ["Status"]); + entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; + await Update(entity, ["Status"]); - var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); - order.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; - await _ghrh_InterviewOrderServices.Update(order, ["Status"]); + var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); + order.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer; + await _ghrh_InterviewOrderServices.Update(order, ["Status"]); - var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); - records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); - await _ghrh_InterviewRecordServices.Update(records, ["Status"]); + var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); + records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); + await _ghrh_InterviewRecordServices.Update(records, ["Status"]); - var usser = await GetUser(); - await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() - { - OrderId = order.Id, - RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更状态为:已发offer!" - }); + var usser = await GetUser(); + await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + { + OrderId = order.Id, + RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更状态为:已发offer!" + }); + } return ServiceResult.OprateSuccess(); } #endregion #region 已发offer提醒 - public async Task RemindHasOffer(long id) + public async Task RemindHasOffer(List ids) { - var entity = await base.QueryById(id); - if (entity == null) - return ServiceResult.OprateFailed("无效的简历ID!"); - - if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer) - return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!"); - - var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); - if (order != null) + for (int i = 0; i < ids.Count; i++) { - //var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); + var id = ids[i]; + var entity = await base.QueryById(id); + if (entity == null) + return ServiceResult.OprateFailed("无效的简历ID!"); - //if (record.ReceiverIds.IsNotEmptyOrNull()) - //{ - // var staffs = JsonHelper.JsonToObj>(record.ReceiverIds); - // await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); - //} + if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer) + return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!"); - var usser = await GetUser(); - await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); + if (order != null) { - OrderId = order.Id, - RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待已发offer提醒!" - }); + //var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id); + + //if (record.ReceiverIds.IsNotEmptyOrNull()) + //{ + // var staffs = JsonHelper.JsonToObj>(record.ReceiverIds); + // await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); + //} + + var usser = await GetUser(); + await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + { + OrderId = order.Id, + RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】发送待已发offer提醒!" + }); + } } return ServiceResult.OprateSuccess(); @@ -1736,36 +1752,40 @@ END"; #endregion #region 变更是否报道 - public async Task ModifyIsOffer(long id, bool isOffer) + public async Task ModifyIsOffer(List ids, bool isOffer) { - var entity = await base.QueryById(id); - if (entity == null) - return ServiceResult.OprateFailed("无效的简历ID!"); + for (int i = 0; i < ids.Count; i++) + { + var id = ids[i]; + var entity = await base.QueryById(id); + if (entity == null) + return ServiceResult.OprateFailed("无效的简历ID!"); - //if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer) - // return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!"); + //if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasSendOffer) + // return ServiceResult.OprateFailed("非【已发offer】状态下简历不可发送提醒!"); - 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); - if (isOffer) + var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); + if (order != null) { - entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; - order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; - records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer); - } + var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id); + if (isOffer) + { + entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; + order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; + records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer); + } - await Update(entity, ["Status"]); - await _ghrh_InterviewOrderServices.Update(order, ["Status"]); - await _ghrh_InterviewRecordServices.Update(records, ["Status"]); + await Update(entity, ["Status"]); + await _ghrh_InterviewOrderServices.Update(order, ["Status"]); + await _ghrh_InterviewRecordServices.Update(records, ["Status"]); - var usser = await GetUser(); - await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() - { - OrderId = order.Id, - RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更是否报道!" - }); + var usser = await GetUser(); + await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() + { + OrderId = order.Id, + RemarkSz = $"用户【{usser?.UserName ?? App.User.ID.ToString()}】变更是否报道!" + }); + } } return ServiceResult.OprateSuccess(); diff --git a/Tiobon.Core/Tiobon.Core.xml b/Tiobon.Core/Tiobon.Core.xml index b0ea275b..380c4310 100644 --- a/Tiobon.Core/Tiobon.Core.xml +++ b/Tiobon.Core/Tiobon.Core.xml @@ -1367,7 +1367,7 @@ - 面试官约面 + 安排面试 简历Id @@ -1381,11 +1381,11 @@ 时间段,2024/10/12 10:00~2024/10/12 11:00 - + 待面试提醒 - 简历Id + 简历Id,列表 @@ -1420,21 +1420,21 @@ 面试官列表 - + 发offer - 简历Id + 简历Id,列表 - + 已发offer提醒 - 简历Id + 简历Id,列表 - + 已报到/未报道接口 @@ -1453,6 +1453,7 @@ ESS端查询面试记录 + body 状态