master
xiaochanghai 6 months ago
parent ac7fbca7b0
commit 56abc6fd0b
  1. 882
      Model/Tiobon.Web.pdm
  2. 13
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  3. 9
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 7
      Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs
  5. 2
      Tiobon.Core.Model/Models/Ghrz/Ghrz_Shihua_OA_Employment.cs
  6. 6
      Tiobon.Core.Model/ViewModels/Extend/ResumeViewTab.cs
  7. 85
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  8. 86
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  9. 9
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -312,11 +312,12 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// <param name="id">简历Id</param> /// <param name="id">简历Id</param>
/// <param name="input">input</param> /// <param name="input">input</param>
/// <param name="status">状态,0:暂存;1:提交</param> /// <param name="status">状态,0:暂存;1:提交</param>
/// <param name="source">input</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("AssessInterview/{id}/{status}/{menuName}")] [HttpPost, Route("AssessInterview/{id}/{status}/{source}")]
public async Task<ServiceResult> AssessInterview(long id, int status, [FromBody] List<Dictionary<string, object>> input) public async Task<ServiceResult> AssessInterview(long id, int status, [FromBody] List<Dictionary<string, object>> input, string source)
{ {
return await _service.AssessInterview(id, status, input); return await _service.AssessInterview(id, status, input, source);
} }
#endregion #endregion
@ -473,18 +474,20 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// 获取评估信息 /// 获取评估信息
/// </summary> /// </summary>
/// <param name="id">简历ID</param> /// <param name="id">简历ID</param>
/// <param name="assessForm">assessForm</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("QueryAssessForm/{id}")] [HttpPost, Route("QueryAssessForm/{id}")]
public async Task<ServiceResult<dynamic>> QueryAssessForm(long id) => await _service.QueryAssessForm(id); public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, [FromBody] ResumeAssessForm assessForm) => await _service.QueryAssessForm(id, null, assessForm);
/// <summary> /// <summary>
/// 获取评估信息 /// 获取评估信息
/// </summary> /// </summary>
/// <param name="id">简历ID</param> /// <param name="id">简历ID</param>
/// <param name="orderId">面试单ID</param> /// <param name="orderId">面试单ID</param>
/// <param name="assessForm">assessForm</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("QueryAssessForm/{id}/{orderId}")] [HttpPost, Route("QueryAssessForm/{id}/{orderId}")]
public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long orderId) => await _service.QueryAssessForm(id, orderId); public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long orderId, [FromBody] ResumeAssessForm assessForm) => await _service.QueryAssessForm(id, orderId, assessForm);
#endregion #endregion

@ -1505,13 +1505,14 @@
<param name="input">input</param> <param name="input">input</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.AssessInterview(System.Int64,System.Int32,System.Collections.Generic.List{System.Collections.Generic.Dictionary{System.String,System.Object}})"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.AssessInterview(System.Int64,System.Int32,System.Collections.Generic.List{System.Collections.Generic.Dictionary{System.String,System.Object}},System.String)">
<summary> <summary>
面试评估(主管填写) 面试评估(主管填写)
</summary> </summary>
<param name="id">简历Id</param> <param name="id">简历Id</param>
<param name="input">input</param> <param name="input">input</param>
<param name="status">状态,0:暂存;1:提交</param> <param name="status">状态,0:暂存;1:提交</param>
<param name="source">input</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyInterviewer(System.Int64,System.Collections.Generic.List{Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendFormStaff})"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyInterviewer(System.Int64,System.Collections.Generic.List{Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendFormStaff})">
@ -1598,19 +1599,21 @@
<param name="ids">简历ID</param> <param name="ids">简历ID</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeAssessForm)">
<summary> <summary>
获取评估信息 获取评估信息
</summary> </summary>
<param name="id">简历ID</param> <param name="id">简历ID</param>
<param name="assessForm">assessForm</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeAssessForm)">
<summary> <summary>
获取评估信息 获取评估信息
</summary> </summary>
<param name="id">简历ID</param> <param name="id">简历ID</param>
<param name="orderId">面试单ID</param> <param name="orderId">面试单ID</param>
<param name="assessForm">assessForm</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.Log(System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.Log(System.Int64)">

@ -1,4 +1,5 @@
using Tiobon.Core.Common; using Microsoft.AspNetCore.Mvc;
using Tiobon.Core.Common;
using Tiobon.Core.IServices.BASE; using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Tiobon.Core.Model.Models; using Tiobon.Core.Model.Models;
@ -48,7 +49,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> RescheduleInterview(long id, ResumeRescheduleInterviewForm input, string type); Task<ServiceResult> RescheduleInterview(long id, ResumeRescheduleInterviewForm input, string type);
Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input); Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input, string source);
Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs); Task<ServiceResult> ModifyInterviewer(long id, List<ResumeRecommendFormStaff> InterviewStaffs);
@ -72,7 +73,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> OverTimeDeleteResume(); Task<ServiceResult> OverTimeDeleteResume();
Task<ServiceResult<string>> Download(List<long> ids); Task<ServiceResult<string>> Download(List<long> ids);
Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null); Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null, [FromBody] ResumeAssessForm assessForm = null);
Task Shihua_OA_Sync(); Task Shihua_OA_Sync();

@ -21,7 +21,7 @@ namespace Tiobon.Core.Model.Models;
/// Ghrz_Shihua_OA_Employment (Model) /// Ghrz_Shihua_OA_Employment (Model)
/// </summary> /// </summary>
[SugarTable("Ghrz_Shihua_OA_Employment", "Ghrz_Shihua_OA_Employment"), Entity(TableCnName = "Ghrz_Shihua_OA_Employment", TableName = "Ghrz_Shihua_OA_Employment")] [SugarTable("Ghrz_Shihua_OA_Employment", "Ghrz_Shihua_OA_Employment"), Entity(TableCnName = "Ghrz_Shihua_OA_Employment", TableName = "Ghrz_Shihua_OA_Employment")]
public class Ghrz_Shihua_OA_Employment : BasePoco public class Ghrz_Shihua_OA_Employment : BasePoco1
{ {
/// <summary> /// <summary>

@ -296,6 +296,12 @@ public class ResumeCancelInterviewForm
} }
public class ResumeAssessForm
{
public string ghrOrEss { get; set; }
}
public class ResumeAttachment public class ResumeAttachment
{ {
public long? AttachmentID { get; set; } public long? AttachmentID { get; set; }

@ -1,19 +1,4 @@
 using NPOI.SS.UserModel;
using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Common.Caches;
using Tiobon.Core.Common;
using Tiobon.Core.Model;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Newtonsoft.Json;
using System.Data;
using Microsoft.AspNetCore.Http;
using Tiobon.Core.Common.UserManager;
using Tiobon.Core.Common.Helper;
using AgileObjects.AgileMapper;
using static Tiobon.Core.Model.Consts; using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Services; namespace Tiobon.Core.Services;
@ -617,6 +602,74 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
return ServiceResult<ExcelData>.OprateSuccess("导出成功", result); return ServiceResult<ExcelData>.OprateSuccess("导出成功", result);
} }
public override async Task<ServiceResult<string>> DownloadExcel(string menuName)
{
var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot";
var path = $"{$"{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}ExcelTemplate{Path.DirectorySeparatorChar}"}";
if (!Directory.Exists(physicsPath + path))
Directory.CreateDirectory(physicsPath + path);
Type entityType = typeof(Ghre_Course);
var fileName = entityType.GetEntityTableName() + ".xlsx";
//physicsPath = physicsPath + path + fileName;
IWorkbook hssfworkbook;
ISheet sheet;
using (FileStream file = new FileStream(physicsPath + path + fileName, FileMode.Open, FileAccess.Read))
{
//hssfworkbook = new HSSFWorkbook(file);
//hssfworkbook = new XSSFWorkbook(file);
hssfworkbook = WorkbookFactory.Create(file);
}
ISheet sheet2 = hssfworkbook.CreateSheet("下拉数据");
var newFileName = Guid.NewGuid() + ".xlsx";
int listColIndex = 0;
//string sql = @"select 'Course' field, Id id, CourseNo no, CourseName name from Ghre_Course where IsEnable=1 and Status='Released'";
//var dataSourceLists = await Db.Ado.SqlQueryAsync<DataSourceList>(sql);
//if (dataSourceLists.Any())
//{
// var types = new List<string>
// {
// "学习记录"
// };
// types.ForEach(sheetName =>
// {
// int sheetIndex = hssfworkbook.GetSheetIndex(sheetName);
// if (sheetIndex >= 0)
// {
// sheet = hssfworkbook.GetSheetAt(sheetIndex);
// SetCellDropdownList(sheet, 0, 0, dataSourceLists.Select(x => x.name).ToArray());
// }
// });
// MemoryStream ms;
// using (ms = new MemoryStream())
// {
// hssfworkbook.Write(ms);
// ms.Flush();
// hssfworkbook.Dispose();
// //ms.Position = 0;
// //return ms;
// }
// using (FileStream fs = new FileStream(physicsPath + path + newFileName, FileMode.Create, FileAccess.Write))
// {
// byte[] data = ms.ToArray();
// fs.Write(data, 0, data.Length);
// fs.Flush();
// }
//}
var physicsPath1 = physicsPath + path + fileName;
//if (dataSourceLists.Any())
// physicsPath1 = physicsPath + path + newFileName;
var result = ServiceResult<string>.OprateSuccess("课程管理_" + DateTimeHelper.ConvertToSecondString1(DateTime.Now) + ".xlsx", physicsPath1);
return result;
}
#region 获取公开课查询条件 #region 获取公开课查询条件
public async Task<ServiceResult<CoursePublicSearch>> QueryPublicSearchFields(QueryBody body) public async Task<ServiceResult<CoursePublicSearch>> QueryPublicSearchFields(QueryBody body)
{ {

@ -1,8 +1,8 @@
using DinkToPdf; using DinkToPdf;
using DinkToPdf.Contracts; using DinkToPdf.Contracts;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.ComponentModel.Design;
using System.IO.Compression; using System.IO.Compression;
using static Tiobon.Core.Model.Consts; using static Tiobon.Core.Model.Consts;
@ -399,6 +399,7 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins
//x.InterviewResult = "推荐中"; //x.InterviewResult = "推荐中";
x.TransferStaffType = sendOfferConfig?.ConfigValue ?? "System"; x.TransferStaffType = sendOfferConfig?.ConfigValue ?? "System";
} }
x.IsAllowAssess = true;
}); });
return result; return result;
@ -2666,7 +2667,7 @@ FROM Ghrh_Resume A
JOIN Ghrh_InterviewRecord C JOIN Ghrh_InterviewRecord C
ON B.ID = C.OrderId ON B.ID = C.OrderId
AND B.[Round] = C.[Round] AND B.[Round] = C.[Round]
WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status"; WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status AND B.IsEnable = 1";
if (string.IsNullOrWhiteSpace(filter.orderBy)) if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime1 ASC"; filter.orderBy = "CreateTime1 ASC";
@ -3134,7 +3135,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
#endregion #endregion
#region 获取评估单表单信息 #region 获取评估单表单信息
public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null) public async Task<ServiceResult<dynamic>> QueryAssessForm(long id, long? orderId = null, [FromBody] ResumeAssessForm assessForm = null)
{ {
dynamic result = new ExpandoObject(); dynamic result = new ExpandoObject();
@ -3229,12 +3230,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if (assessDetail != null) if (assessDetail != null)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3252,12 +3253,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if (assessDetail != null) if (assessDetail != null)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3273,12 +3274,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if (assessDetail != null) if (assessDetail != null)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent)); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3294,12 +3295,12 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if (assessDetail != null) if (assessDetail != null)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3355,7 +3356,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ObjToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == x.Id.ObjToString() && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null)
continue; continue;
@ -3363,7 +3364,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3381,7 +3382,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "TotalScore" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null)
continue; continue;
@ -3390,7 +3391,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt())); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3406,7 +3407,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "EvaluateContent" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null)
continue; continue;
@ -3415,7 +3416,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent)); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3431,7 +3432,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < records.Count; i++) for (int i = 0; i < records.Count; i++)
{ {
var record = records[i]; var record = records[i];
var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).SingleOrDefault(); var assessDetail = assessDetails.Where(o => o.AssessConfigId == "IsPass" && o.StaffId == record.StaffId && o.InterviewRecordId == record.Id).FirstOrDefault();
if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null) if ((assessDetail != null && assessDetail.Status != 1 && assessDetail.InterviewRecordId == record.Id) || assessDetail is null)
continue; continue;
@ -3441,7 +3442,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt() == 1 ? "通过" : "不通过")); obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt() == 1 ? "通过" : "不通过"));
else else
obj.Add(new JProperty("Score" + (i + 1), null)); obj.Add(new JProperty("Score" + (i + 1), null));
if (record.StaffId == staffId && record.Round == order.Round) if ((record.StaffId == staffId && record.Round == order.Round) || assessForm.ghrOrEss == "ghr")
obj.Add(new JProperty("CanEdit" + (i + 1), true)); obj.Add(new JProperty("CanEdit" + (i + 1), true));
else else
obj.Add(new JProperty("CanEdit" + (i + 1), false)); obj.Add(new JProperty("CanEdit" + (i + 1), false));
@ -3456,7 +3457,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
#endregion #endregion
#region 面试评估 #region 面试评估
public async Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input) public async Task<ServiceResult> AssessInterview(long id, int status, List<Dictionary<string, object>> input, string source)
{ {
if (status > 1 || status < 0) if (status > 1 || status < 0)
status = 0; status = 0;
@ -3468,6 +3469,11 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
if (order == null) if (order == null)
return ServiceResult.OprateFailed("无效的简历ID!"); return ServiceResult.OprateFailed("无效的简历ID!");
//【简历库-录用-已发offer】配置按钮
var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Assess_Mode").FirstAsync();
string assessMode = config?.ConfigValue ?? "OR";
long interviewAssessId = 0; long interviewAssessId = 0;
var assess = await _ghrh_InterviewAssessServices.QuerySingle(x => x.OrderId == order.Id); var assess = await _ghrh_InterviewAssessServices.QuerySingle(x => x.OrderId == order.Id);
if (assess is null) if (assess is null)
@ -3520,7 +3526,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput() await _ghrh_InterviewAssessDetailServices.Add(new InsertGhrh_InterviewAssessDetailInput()
{ {
InterviewAssessId = interviewAssessId, InterviewAssessId = interviewAssessId,
StaffId = staffId, StaffId = records[j].StaffId,
InterviewRecordId = records[j].Id, InterviewRecordId = records[j].Id,
AssessConfigId = assessConfigId.ObjToString(), AssessConfigId = assessConfigId.ObjToString(),
AssessContent = assessContent, AssessContent = assessContent,
@ -3535,6 +3541,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
return ServiceResult.OprateSuccess(); return ServiceResult.OprateSuccess();
string Status = isPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview; string Status = isPass == false ? DIC_INTERVIEW_ORDER_STATUS.InterviewFail : DIC_INTERVIEW_ORDER_STATUS.HasInterview;
if (assessMode != "OR" && source == "ess")
Status = DIC_INTERVIEW_ORDER_STATUS.WaitInterview;
string InterviewResult = isPass == false ? "面试不通过" : "面试通过"; string InterviewResult = isPass == false ? "面试不通过" : "面试通过";
order.Status = Status; order.Status = Status;
@ -3544,20 +3553,44 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
order.InterviewResultRemark = evaluateContent; order.InterviewResultRemark = evaluateContent;
await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]); await _ghrh_InterviewOrderServices.Update(order, ["Status", "IsPass", "InterviewResult", "InterviewContent", "InterviewResultRemark"]);
if (source == "ess")
{
var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId()); var record = await _ghrh_InterviewRecordServices.QuerySingle(x => x.Round == order.Round && x.OrderId == order.Id && x.StaffId == GetStaffId());
record.InterviewResult = InterviewResult; record.InterviewResult = InterviewResult;
record.InterviewResultRemark = evaluateContent; record.InterviewResultRemark = evaluateContent;
record.IsPass = isPass; record.IsPass = isPass;
record.AssessTime = DateTime.Now; record.AssessTime = DateTime.Now;
record.Status = Status; record.Status = Status;
await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark"]); 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"]);
}
if (entity.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview)
await UpdateResumeStatus(entity, Status); await UpdateResumeStatus(entity, Status);
if (source == "ess")
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "AssessInterview"); await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "AssessInterview");
else
await LogRecord(order.Id, $"【后台】提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "AssessInterview");
} }
else else
{
if (source == "ess")
await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "TempAssessInterview"); await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "TempAssessInterview");
else
await LogRecord(order.Id, $"【后台】暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "TempAssessInterview");
}
return ServiceResult.OprateSuccess(); return ServiceResult.OprateSuccess();
} }
@ -3567,6 +3600,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
#region 世华OA同步 #region 世华OA同步
public async Task Shihua_OA_Sync() public async Task Shihua_OA_Sync()
{ {
try
{
var list = await Db.Queryable<Ghrz_Shihua_OA_Employment>().Where(x => x.CreateTime.Value.Date == DateTime.Now).ToListAsync(); var list = await Db.Queryable<Ghrz_Shihua_OA_Employment>().Where(x => x.CreateTime.Value.Date == DateTime.Now).ToListAsync();
for (int i = 0; i < list.Count; i++) for (int i = 0; i < list.Count; i++)
@ -3730,6 +3767,11 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync(); await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync();
} }
} }
catch (Exception)
{
}
}
#endregion #endregion
#region 面试日志 #region 面试日志

@ -1505,13 +1505,14 @@
<param name="input">input</param> <param name="input">input</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.AssessInterview(System.Int64,System.Int32,System.Collections.Generic.List{System.Collections.Generic.Dictionary{System.String,System.Object}})"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.AssessInterview(System.Int64,System.Int32,System.Collections.Generic.List{System.Collections.Generic.Dictionary{System.String,System.Object}},System.String)">
<summary> <summary>
面试评估(主管填写) 面试评估(主管填写)
</summary> </summary>
<param name="id">简历Id</param> <param name="id">简历Id</param>
<param name="input">input</param> <param name="input">input</param>
<param name="status">状态,0:暂存;1:提交</param> <param name="status">状态,0:暂存;1:提交</param>
<param name="source">input</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyInterviewer(System.Int64,System.Collections.Generic.List{Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendFormStaff})"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.ModifyInterviewer(System.Int64,System.Collections.Generic.List{Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendFormStaff})">
@ -1598,19 +1599,21 @@
<param name="ids">简历ID</param> <param name="ids">简历ID</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeAssessForm)">
<summary> <summary>
获取评估信息 获取评估信息
</summary> </summary>
<param name="id">简历ID</param> <param name="id">简历ID</param>
<param name="assessForm">assessForm</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.QueryAssessForm(System.Int64,System.Int64,Tiobon.Core.Model.ViewModels.Extend.ResumeAssessForm)">
<summary> <summary>
获取评估信息 获取评估信息
</summary> </summary>
<param name="id">简历ID</param> <param name="id">简历ID</param>
<param name="orderId">面试单ID</param> <param name="orderId">面试单ID</param>
<param name="assessForm">assessForm</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.Log(System.Int64)"> <member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.Log(System.Int64)">

Loading…
Cancel
Save