From a48ea71b428a18412db3ee07cad666d6d29e75b1 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Mon, 9 Dec 2024 16:31:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=B8=96=E5=8D=8E=E3=80=91=E3=80=90?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E3=80=91=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81=E4=BC=81=E5=BE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tiobon.Core.Api/Tiobon.Core.Model.xml | 5 ++ .../View/Ghrh/Ghrh_Resume.Dto.View.cs | 5 +- Tiobon.Core.Services/BASE/BaseServices.cs | 21 +++++++++ .../Ghrh/Ghrh_InterviewOrderServices.cs | 2 +- .../Ghrh/Ghrh_ResumeServices.cs | 47 ++++++++++++------- Tiobon.Core/Tiobon.Core.Model.xml | 5 ++ 6 files changed, 67 insertions(+), 18 deletions(-) diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index a3653cca..fe6f3daa 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -26252,6 +26252,11 @@ 已报到转入人事资料类型,Fast,快速入职;Normal,正常入职 + + + 面试环节 + + 教育背景(Dto.View1) diff --git a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs index 0415ffcc..1f455121 100644 --- a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs +++ b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs @@ -242,6 +242,9 @@ public class Ghrh_ResumeDto : Ghrh_Resume /// public string TransferStaffType { get; set; } - + /// + /// 面试环节 + /// + public string InterviewStepName { get; set; } } diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs index 89e131cb..45b00310 100644 --- a/Tiobon.Core.Services/BASE/BaseServices.cs +++ b/Tiobon.Core.Services/BASE/BaseServices.cs @@ -2028,7 +2028,28 @@ ORDER BY SortNo ASC"; } + await SendQYWechateMessage(staffIds, title, content); + } + public async Task SendQYWechateMessage(List staffIds, string title, string content, string webUrl = null) + { + string sql = @$"Declare @Json nvarchar(max) = '' + set @Json = (select '{title}' title, + 'textcard' msgtype, + '
'+CONVERT(nvarchar(16),getdate(),121)+'
+
{content}
+
' [description] , + '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 + for json path) + -- select @Json + exec [dbo].[PS_CreateWorkwxMsg] @Json,'Resume'"; + + await Db.Ado.ExecuteCommandAsync(sql); + } + #endregion #endregion diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_InterviewOrderServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_InterviewOrderServices.cs index 37878dd7..cfbaf216 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_InterviewOrderServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_InterviewOrderServices.cs @@ -47,7 +47,7 @@ public class Ghrh_InterviewOrderServices : BaseServices { - var record = records.Where(o => x.Round == o.Round).FirstOrDefault(); + var record = records.Where(o => x.Round == o.Round && o.OrderId == x.Id).FirstOrDefault(); if (record != null) { diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index fc7cb3b3..97448b08 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -269,6 +269,7 @@ public class Ghrh_ResumeServices : BaseServices new { UpdateTime = SqlFunc.Desc(it.UpdateTime), CreateTime = SqlFunc.Desc(it.CreateTime) }) .ToPageListAsync(filter.pageNum, filter.pageSize, total); var result = new ServicePageResult(filter.pageNum, total, filter.pageSize, Mapper.Map(entitys).ToANew>()); var list = result.result.DT_TableDataT1; @@ -324,6 +325,7 @@ public class Ghrh_ResumeServices : BaseServices 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"; @@ -1716,13 +1725,20 @@ END"; record.InterviewAddress = body.InterviewAddress; }); - await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status"]); - await _ghrh_InterviewOrderServices.Update(order, ["InterviewStepName"]); + 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}"); entity.Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview; - await Update(entity, ["Status"]); + await Update(entity, ["Status", "UpdateTime", "UpdateBy"]); + + for (int i = 0; i < records.Count; i++) + { + await SendMessage([records[i].StaffId.Value], "面试提醒", $"您有个简历待面试,面试时间:{body.Time},请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate"); + + } + } return ServiceResult.OprateSuccess(); @@ -2067,13 +2083,14 @@ END"; var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); if (order != null) { - //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); //if (record.ReceiverIds.IsNotEmptyOrNull()) //{ // var staffs = JsonHelper.JsonToObj>(record.ReceiverIds); - // await SendMessage(staffs.Select(x => x.StaffId).ToList(), "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); //} + await SendMessage([record.StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!"); + await LogRecord(order.Id, "发送待已发offer提醒!"); } @@ -2107,7 +2124,6 @@ END"; order.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer; records.ForEach(record => record.Status = DIC_INTERVIEW_ORDER_STATUS.HasOffer); - await SyncToStaff(id); } else @@ -2306,7 +2322,8 @@ END"; C.StaffId, C.CancelReason, CONVERT - (BIT, CASE B.[Round] WHEN C.[Round] THEN 'true' ELSE 'false' END) AS IsAllowAssess + (BIT, CASE B.[Round] WHEN C.[Round] THEN 'true' ELSE 'false' END) AS IsAllowAssess, + ISNULL(A.UpdateTime, A.CreateTime) CreateTime1 FROM Ghrh_Resume A JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId JOIN Ghrh_InterviewRecord C @@ -2315,7 +2332,7 @@ FROM Ghrh_Resume A WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; if (string.IsNullOrWhiteSpace(filter.orderBy)) - filter.orderBy = "CreateTime ASC"; + filter.orderBy = "CreateTime1 ASC"; sql += $" AND C.StaffId={staffId}"; @@ -3200,12 +3217,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; public async Task UpdateResumeStatus(Ghrh_Resume entity, string Status) { entity.Status = Status; - await Update(entity, ["Status"]); + await Update(entity, ["Status", "UpdateTime", "UpdateBy"]); } public async Task UpdateInterviewOrderStatus(Ghrh_InterviewOrder order, string Status) { order.Status = Status; - await _ghrh_InterviewOrderServices.Update(order, ["Status"]); + await _ghrh_InterviewOrderServices.Update(order, ["Status", "UpdateTime", "UpdateBy"]); } /// /// 修改面试记录状态 @@ -3217,7 +3234,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"]); + await _ghrh_InterviewRecordServices.Update(records, ["Status", "UpdateTime", "CreateBy"]); } /// /// 同步数据进入认识资料 @@ -3288,8 +3305,6 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; staff.IsEnable = 1; #endregion - - var applyOrder = await Db.Queryable().Where(x => x.ResumeId == id).FirstAsync(); if (applyOrder != null) { diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml index a3653cca..fe6f3daa 100644 --- a/Tiobon.Core/Tiobon.Core.Model.xml +++ b/Tiobon.Core/Tiobon.Core.Model.xml @@ -26252,6 +26252,11 @@ 已报到转入人事资料类型,Fast,快速入职;Normal,正常入职 + + + 面试环节 + + 教育背景(Dto.View1)