diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index af9576bf..7e6666ac 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -2652,7 +2652,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; #region Body var staffId = GetStaffId(); - var assessDetails = await _ghrh_InterviewAssessDetailServices.Query(x => x.InterviewAssessId == assess.Id); + var assessDetails = new List(); + + if (assess != null) + assessDetails = await _ghrh_InterviewAssessDetailServices.Query(x => x.InterviewAssessId == assess.Id); var body = new JArray(); assessConfigs.ForEach(x => { @@ -2671,7 +2674,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); else obj.Add(new JProperty("Score" + (i + 1), null)); - if (record.StaffId == staffId) + if (record.StaffId == staffId && record.Round == order.Round) obj.Add(new JProperty("CanEdit" + (i + 1), true)); else obj.Add(new JProperty("CanEdit" + (i + 1), false)); @@ -2694,7 +2697,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); else obj.Add(new JProperty("Score" + (i + 1), null)); - if (record.StaffId == staffId) + if (record.StaffId == staffId && record.Round == order.Round) obj.Add(new JProperty("CanEdit" + (i + 1), true)); else obj.Add(new JProperty("CanEdit" + (i + 1), false)); @@ -2715,7 +2718,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent)); else obj.Add(new JProperty("Score" + (i + 1), null)); - if (record.StaffId == staffId) + if (record.StaffId == staffId && record.Round == order.Round) obj.Add(new JProperty("CanEdit" + (i + 1), true)); else obj.Add(new JProperty("CanEdit" + (i + 1), false)); @@ -2787,7 +2790,8 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; var staffId = GetStaffId(); var records = await _ghrh_InterviewRecordServices.Query(x => x.OrderId == order.Id, "Round ASC"); - + var isPass = false; + var evaluateContent = string.Empty; await _ghrh_InterviewAssessDetailServices.Delete(x => x.InterviewAssessId == interviewAssessId && x.StaffId == staffId); for (int i = 0; i < input.Count; i++) { @@ -2800,8 +2804,16 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; { if (dic["CanEdit" + (j + 1)].ObjToBool() != true) continue; - var assessContent = dic["Score" + (j + 1)].ObjToString(); + if (records[j].Round == order.Round && assessConfigId.ObjToString() == "IsPass") + { + if (assessContent == "1") + isPass = true; + } + if (records[j].Round == order.Round && assessConfigId.ObjToString() == "EvaluateContent") + { + evaluateContent = assessContent; + } await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput() { InterviewAssessId = interviewAssessId, @@ -2813,30 +2825,30 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; } } + if (order.Status == DIC_INTERVIEW_ORDER_STATUS.InterviewFail || order.Status == DIC_INTERVIEW_ORDER_STATUS.HasInterview) + return ServiceResult.OprateSuccess(); + string Status = isPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; + string InterviewResult = isPass == false ? "面试不通过" : "面试通过"; - //string Status = input.IsPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; - //string InterviewResult = input.IsPass == false ? "面试不通过" : "面试通过"; - - //var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); - //order.Status = Status; - //order.IsPass = input.IsPass; - //order.InterviewResult = InterviewResult; - //order.InterviewContent = input.Content; - //order.InterviewResultRemark = input.Content; - //await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); + order.Status = Status; + order.IsPass = isPass; + order.InterviewResult = InterviewResult; + order.InterviewContent = evaluateContent; + order.InterviewResultRemark = evaluateContent; + await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); - //var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); - //record.InterviewResult = InterviewResult; - //record.InterviewResultRemark = input.Content; - //record.IsPass = input.IsPass; - //record.AssessTime = DateTime.Now; - //record.Status = Status; - //await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark"]); + 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"]); - //await UpdateResumeStatus(entity, Status); + await UpdateResumeStatus(entity, Status); - //await LogRecord(order.Id, $"填写了面试评估,轮数:{order.Round},是否通过:{(input.IsPass == true ? "通过" : "不通过")},内容:{input.Content}!"); + await LogRecord(order.Id, $"填写了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "通过" : "不通过")},内容:{evaluateContent}!"); return ServiceResult.OprateSuccess(); }