diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index 475f184a..355a4fb3 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -28277,6 +28277,11 @@ 是否可以取消 + + + 是否为主面试官 + + 教育背景(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 6f5a8fe5..0a69a0d2 100644 --- a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs +++ b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs @@ -267,4 +267,9 @@ public class Ghrh_ResumeDto : Ghrh_Resume /// public bool IsAllowCancel { get; set; } = false; + /// + /// 是否为主面试官 + /// + public bool IsPrimary { get; set; } = true; + } diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs index cf099542..65ed7601 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs @@ -338,6 +338,26 @@ public class Ghre_CourseServices : BaseServices().Where(x => x.CourseIds.Contains(id.ToString()) && x.Id != id).ToListAsync(); + for (int j = 0; j < wares.Count; j++) + { + var courseIds2 = new List(); + if (!string.IsNullOrWhiteSpace(wares[j].CourseIds)) + courseIds2 = JsonConvert.DeserializeObject>(wares[j].CourseIds); + courseIds2 = courseIds2.Where(x => x != id).ToList(); + wares[j].CourseIds = JsonConvert.SerializeObject(courseIds2); + } + await Db.Updateable(wares).UpdateColumns(it => new { it.CourseIds }).ExecuteCommandAsync(); + + } + #endregion + } #endregion if (entity.Status == Consts.DIC_COURSE_STATUS.RELEASED) diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs index b5d1af81..2f5eac1e 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseWareServices.cs @@ -29,12 +29,15 @@ public class Ghre_CourseWareServices : BaseServices Add(InsertGhre_CourseWareInput entity) { + if (await base.AnyAsync(x => x.CourseWareName == entity.CourseWareName && x.VersionNo == entity.VersionNo)) + throw new Exception("已存在相同课名称和版本号数据!"); if (entity.CourseIds2.Any()) { entity.CourseIds = JsonConvert.SerializeObject(entity.CourseIds2); var courses = await _ghre_CourseServices.Query(x => entity.CourseIds2.Contains(x.Id)); entity.CourseNames = string.Join(",", courses.Select(x => x.CourseName)); } + var result = await base.Add(entity); entity.Attachments.ForEach(x => { @@ -47,6 +50,9 @@ public class Ghre_CourseWareServices : BaseServices Update(long Id, EditGhre_CourseWareInput editModel) { + if (await base.AnyAsync(x => x.CourseWareName == editModel.CourseWareName && x.VersionNo == editModel.VersionNo && x.Id != Id)) + throw new Exception("已存在相同课名称和版本号数据!"); + if (editModel.CourseIds2.Any()) { editModel.CourseIds = JsonConvert.SerializeObject(editModel.CourseIds2); diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index b50eb6c1..b282c17d 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -1875,7 +1875,7 @@ END"; record.InterviewAddress = body.InterviewAddress; }); - await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status", "UpdateTime", "UpdateBy"]); + await _ghrh_InterviewRecordServices.Update(records, ["InterviewTime", "InterviewBeginTime", "InterviewEndTime", "Status", "InterviewStepName", "RemarkSz", "InterviewAddress", "UpdateTime", "UpdateBy"]); await _ghrh_InterviewOrderServices.Update(order, ["InterviewStepName", "UpdateTime", "UpdateBy"]); await LogRecord(order.Id, $"安排面试,面试时间:{body.Time},面试地点:{body.InterviewAddress},面试备注:{body.Remark ?? "无"}", id, records[0].Id, "ScheduleInterview", true); @@ -2234,7 +2234,7 @@ END"; if (order != null) { await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); - await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); + //await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.HasSendOffer); await _ghrh_InterviewLogServices.Add(new InsertGhrh_InterviewLogInput() { @@ -2441,7 +2441,7 @@ END"; await Update(entity, ["Status"]); await _ghrh_InterviewOrderServices.Update(order, ["Status"]); - await _ghrh_InterviewRecordServices.Update(records, ["Status"]); + //await _ghrh_InterviewRecordServices.Update(records, ["Status"]); await LogRecord(order.Id, isOffer == true ? "标记为已报到!" : "标记为未报到!", id, null, "CheckIn"); } else @@ -2552,7 +2552,7 @@ END"; { await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); - await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); + //await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer"); } } @@ -2661,13 +2661,16 @@ END"; C.CancelReason, CONVERT (BIT, CASE B.[Round] WHEN C.[Round] THEN 'true' ELSE 'false' END) AS IsAllowAssess, - ISNULL(A.UpdateTime, A.CreateTime) CreateTime1 + ISNULL(A.UpdateTime, A.CreateTime) CreateTime1, + C.IsPrimary FROM Ghrh_Resume A JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId JOIN Ghrh_InterviewRecord C ON B.ID = C.OrderId AND B.[Round] = C.[Round] -WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = 1"; +WHERE A.IsEnable = 1 AND C.IsEnable = 1 +-- AND C.Status = A.Status AND B.IsEnable = 1 +"; if (string.IsNullOrWhiteSpace(filter.orderBy)) filter.orderBy = "CreateTime1 ASC"; @@ -2703,11 +2706,14 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = break; case "WaitInterview": if (jsonParam.columnValue.ObjToInt() == 1) - sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'"; + sql += $" AND B.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'"; break; case "HasInterview": if (jsonParam.columnValue.ObjToInt() == 1) - sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR C.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')"; + { + sql += $" AND (B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')"; + sql += $" AND (C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}' OR B.Status = '{DIC_INTERVIEW_ORDER_STATUS.InterviewFail}')"; + } break; case "WaitSendOffer": if (jsonParam.columnValue.ObjToInt() == 1) @@ -3517,12 +3523,18 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = if (records[j].Round == order.Round && assessConfigId.ObjToString() == "IsPass") { if (assessContent == "1") + { isPass = true; + records[j].IsPass = true; + } } if (records[j].Round == order.Round && assessConfigId.ObjToString() == "EvaluateContent") { evaluateContent = assessContent; + records[j].InterviewResult = isPass == records[j].IsPass == false ? "面试不通过" : "面试通过"; + records[j].InterviewResultRemark = evaluateContent; } + records[j].AssessTime = DateTime.Now; await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput() { InterviewAssessId = interviewAssessId, @@ -3555,22 +3567,17 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = if (source == "ess") { - var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); - record.InterviewResult = InterviewResult; - record.InterviewResultRemark = evaluateContent; - record.IsPass = isPass; - record.AssessTime = DateTime.Now; - record.Status = Status; - await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]); + var record = records.Where(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()).FirstOrDefault(); + if (record != null) + { + record.Status = Status; + await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]); + } } else { records.ForEach(record => { - record.InterviewResult = InterviewResult; - record.InterviewResultRemark = evaluateContent; - record.IsPass = isPass; - record.AssessTime = DateTime.Now; record.Status = Status; }); await _ghrh_InterviewRecordServices.Update(records, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark", "UpdateTime", "UpdateBy"]); diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml index 475f184a..355a4fb3 100644 --- a/Tiobon.Core/Tiobon.Core.Model.xml +++ b/Tiobon.Core/Tiobon.Core.Model.xml @@ -28277,6 +28277,11 @@ 是否可以取消 + + + 是否为主面试官 + + 教育背景(Dto.View1)