diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index 8d7ac356..03115e3c 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -29432,6 +29432,16 @@ 人力需求单Id + + + FlowSignID + + + + + workId + + 附件 diff --git a/Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs b/Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs index b3c658a9..81ebb658 100644 --- a/Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs +++ b/Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs @@ -365,6 +365,16 @@ public class ResumeLogItem /// public long? RequestId { get; set; } + /// + /// FlowSignID + /// + public long? FlowSignID { get; set; } + + /// + /// workId + /// + public long? WorkId { get; set; } + /// /// 附件 /// diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_OfferApplyOrderServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_OfferApplyOrderServices.cs index 58aac00a..8e48a0dc 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_OfferApplyOrderServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_OfferApplyOrderServices.cs @@ -1,4 +1,6 @@ -namespace Tiobon.Core.Services; +using Tiobon.Core.IServices; + +namespace Tiobon.Core.Services; /// /// 录用审批单 (服务) @@ -150,6 +152,22 @@ public class Ghrh_OfferApplyOrderServices : BaseServices().FirstAsync(x => x.ResumeId == entity.ResumeId); + + var dict = new Dictionary + { + { "Id", SnowFlakeSingle.Instance.NextId() }, + { "CreateBy", App.User.ID }, + { "CreateTime", DateTime.Now }, + { "InterviewOrderId", order.Id }, + { "ResumeId", entity.ResumeId }, + { "Source", "ApplyOffer" }, + { "UserId", App.User.ID }, + { "UserName", App.User.Name }, + { "RemarkSz", "发起录用审批!" }, + { "ReverseI2", id } + }; + await Db.Insertable(dict).AS("Ghrh_InterviewLog").ExecuteCommandAsync(); #endregion return id; diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index 2a476e5a..c728bf76 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -2368,7 +2368,7 @@ END"; } #endregion - #region 发起录用审批 + #region 发起录用审批-作废 public async Task ApplyOfferApproval(List ids) { for (int i = 0; i < ids.Count; i++) @@ -2951,10 +2951,11 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; var order = new Ghrh_InterviewOrder(); if (orderId is null) { - order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); if (order == null) return ServiceResult.OprateFailed("无效的简历ID!"); + + orderId = order.Id; } else order = await Db.Ado.SqlQuerySingleAsync($"SELECT * from Ghrh_InterviewOrder where Id={orderId} "); @@ -3360,7 +3361,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; await UpdateResumeStatus(entity, Status); - await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); + await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "TempAssessInterview"); } else await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!", id, null, "AssessInterview"); @@ -3553,28 +3554,40 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; var interviewLog = interviewLogs[j]; var attachments = new List(); - + var item = new ResumeLogItem() + { + Time = interviewLog.CreateTime, + Operator = interviewLog.UserName, + Content = interviewLog.RemarkSz, + Source = interviewLog.Source, + Attachments = attachments, + }; switch (interviewLog.Source) { case "Recommended": attachments = await Db.Queryable().Where(x => x.TableName == interviewLog.InterviewOrderId.ObjToString()).ToListAsync(); + item.RequestId = interviewLog.Source == "Recommended" ? orders[i].RequestId : null; break; case "ScheduleInterview": attachments = await Db.Queryable().Where(x => x.TableName == interviewLog.InterviewRecordId.ObjToString()).ToListAsync(); + break; + case "ApplyOffer": + if (interviewLog.ReverseI2 != null && interviewLog.ReverseI2 != 0) + { + var order = await Db.Queryable().FirstAsync(x => x.Id == interviewLog.ReverseI2); + if (order != null) + { + item.WorkId = order.WorkID; + item.FlowSignID = await Db.Ado.GetIntAsync($"Select FlowSignID from Ghrw_FlowSign where WorkID ={order.WorkID} and IsBegin=1"); + } + } + break; default: break; } - items.Add(new ResumeLogItem() - { - Time = interviewLog.CreateTime, - Operator = interviewLog.UserName, - Content = interviewLog.RemarkSz, - Source = interviewLog.Source, - Attachments = attachments, - RequestId = interviewLog.Source == "Recommended" ? orders[i].RequestId : null - }); + items.Add(item); } logs.Add(new ResumeLog() { diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs index 15377073..5b5c9493 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs @@ -20,6 +20,17 @@ public class Ghrh_YearHumanSettingsServices : BaseServices Add(InsertGhrh_YearHumanSettingsInput entity) + { + entity.WorkState = 1; + + var result = await base.Add(entity); + + return result; + } + public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { var result = await base.QueryFilterPage(filter, "WorkState = 1", IsEnable); @@ -118,8 +129,8 @@ public class Ghrh_YearHumanSettingsServices : BaseServices> ImportExcel(IFormFile file)