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. 386
      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="input">input</param>
/// <param name="status">状态,0:暂存;1:提交</param>
/// <param name="source">input</param>
/// <returns></returns>
[HttpPost, Route("AssessInterview/{id}/{status}/{menuName}")]
public async Task<ServiceResult> AssessInterview(long id, int status, [FromBody] List<Dictionary<string, object>> input)
[HttpPost, Route("AssessInterview/{id}/{status}/{source}")]
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
@ -473,18 +474,20 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
/// 获取评估信息
/// </summary>
/// <param name="id">简历ID</param>
/// <param name="assessForm">assessForm</param>
/// <returns></returns>
[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>
/// <param name="id">简历ID</param>
/// <param name="orderId">面试单ID</param>
/// <param name="assessForm">assessForm</param>
/// <returns></returns>
[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

@ -1505,13 +1505,14 @@
<param name="input">input</param>
<returns></returns>
</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>
<param name="id">简历Id</param>
<param name="input">input</param>
<param name="status">状态,0:暂存;1:提交</param>
<param name="source">input</param>
<returns></returns>
</member>
<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>
<returns></returns>
</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>
<param name="id">简历ID</param>
<param name="assessForm">assessForm</param>
<returns></returns>
</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>
<param name="id">简历ID</param>
<param name="orderId">面试单ID</param>
<param name="assessForm">assessForm</param>
<returns></returns>
</member>
<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.Model;
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> 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);
@ -72,7 +73,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult> OverTimeDeleteResume();
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();

@ -21,7 +21,7 @@ namespace Tiobon.Core.Model.Models;
/// Ghrz_Shihua_OA_Employment (Model)
/// </summary>
[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>

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

@ -1,19 +1,4 @@

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 NPOI.SS.UserModel;
using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Services;
@ -617,6 +602,74 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
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 获取公开课查询条件
public async Task<ServiceResult<CoursePublicSearch>> QueryPublicSearchFields(QueryBody body)
{

@ -1,8 +1,8 @@
using DinkToPdf;
using DinkToPdf.Contracts;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
using System.ComponentModel.Design;
using System.IO.Compression;
using static Tiobon.Core.Model.Consts;
@ -399,6 +399,7 @@ public class Ghrh_ResumeServices : BaseServices<Ghrh_Resume, Ghrh_ResumeDto, Ins
//x.InterviewResult = "推荐中";
x.TransferStaffType = sendOfferConfig?.ConfigValue ?? "System";
}
x.IsAllowAssess = true;
});
return result;
@ -2666,7 +2667,7 @@ FROM Ghrh_Resume A
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";
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";
@ -3134,7 +3135,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
#endregion
#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();
@ -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++)
{
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)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else
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));
else
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++)
{
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)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else
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));
else
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++)
{
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)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent));
else
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));
else
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++)
{
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)
obj.Add(new JProperty("Score" + (i + 1), assessDetail.AssessContent.ObjToInt()));
else
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));
else
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++)
{
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)
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()));
else
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));
else
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++)
{
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)
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()));
else
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));
else
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++)
{
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)
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));
else
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));
else
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++)
{
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)
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 ? "通过" : "不通过"));
else
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));
else
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
#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)
status = 0;
@ -3468,6 +3469,11 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
if (order == null)
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;
var assess = await _ghrh_InterviewAssessServices.QuerySingle(x => x.OrderId == order.Id);
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()
{
InterviewAssessId = interviewAssessId,
StaffId = staffId,
StaffId = records[j].StaffId,
InterviewRecordId = records[j].Id,
AssessConfigId = assessConfigId.ObjToString(),
AssessContent = assessContent,
@ -3535,6 +3541,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
return ServiceResult.OprateSuccess();
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 ? "面试不通过" : "面试通过";
order.Status = Status;
@ -3544,20 +3553,44 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
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 = evaluateContent;
record.IsPass = isPass;
record.AssessTime = DateTime.Now;
record.Status = Status;
await _ghrh_InterviewRecordServices.Update(record, ["AssessTime", "Status", "IsPass", "InterviewResult", "InterviewResultRemark"]);
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"]);
}
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"]);
}
await UpdateResumeStatus(entity, Status);
if (entity.Status == DIC_INTERVIEW_ORDER_STATUS.WaitInterview)
await UpdateResumeStatus(entity, Status);
await LogRecord(order.Id, $"提交了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "AssessInterview");
if (source == "ess")
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
await LogRecord(order.Id, $"暂存了面试评估,轮数:{order.Round},是否通过:{(isPass == true ? "" : "")},内容:{evaluateContent}!", id, null, "TempAssessInterview");
{
if (source == "ess")
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();
}
@ -3567,167 +3600,176 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
#region 世华OA同步
public async Task Shihua_OA_Sync()
{
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++)
try
{
var data = list[i];
if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.IdCardNo == data.IDCardNo))
continue;
var deptId = (await Db.Queryable<Ghro_Dept>().Where(x => x.DeptNo == data.DeptNo).FirstAsync())?.DeptID;
var titleId = (await Db.Queryable<Ghra_Title>().Where(x => x.TitleNo == data.TitleNo).FirstAsync())?.TitleID;
var gradeId = (await Db.Queryable<Ghra_Grade>().Where(x => x.GradeNo == data.GradeNo).FirstAsync())?.GradeID;
var workAddress = (await Db.Queryable<Ghra_Zone>().Where(x => x.ZoneNo == data.ZoneNo).FirstAsync())?.ZoneName;
var periodMasterId = (await Db.Queryable<Ghrc_PeriodMaster>().Where(x => x.PeriodMasterNo == data.PeriodMasterNo).FirstAsync())?.PeriodMasterID;
var list = await Db.Queryable<Ghrz_Shihua_OA_Employment>().Where(x => x.CreateTime.Value.Date == DateTime.Now).ToListAsync();
var items = new List<Ghrh_OfferApplyOrderSalary>();
var insert = new Ghrh_OfferApplyOrder()
for (int i = 0; i < list.Count; i++)
{
OrderNo = data.WorkNo,
DeptId = deptId,
TitleId = titleId,
Channel = data.RecruitFrom,
StaffName = data.EmployName,
IdCardNo = data.IDCardNo,
InDate = data.InDate,
StaffType = data.StaffType,
GradeId = gradeId,
WorkAddress = workAddress,
ProbationSalary = data.TotalAmount,
PeriodMasterId = periodMasterId,
};
long id = await Db.Insertable(insert).ExecuteReturnSnowflakeIdAsync();
var data = list[i];
#region 处理薪资项目
if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.IdCardNo == data.IDCardNo))
continue;
var currencyId = await Db.Ado.GetIntAsync("SELECT top 1 CurrencyID FROM Ghrc_Currency where CurrencyNo='RMB'");
if (data.S02.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S02").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var deptId = (await Db.Queryable<Ghro_Dept>().Where(x => x.DeptNo == data.DeptNo).FirstAsync())?.DeptID;
var titleId = (await Db.Queryable<Ghra_Title>().Where(x => x.TitleNo == data.TitleNo).FirstAsync())?.TitleID;
var gradeId = (await Db.Queryable<Ghra_Grade>().Where(x => x.GradeNo == data.GradeNo).FirstAsync())?.GradeID;
var workAddress = (await Db.Queryable<Ghra_Zone>().Where(x => x.ZoneNo == data.ZoneNo).FirstAsync())?.ZoneName;
var periodMasterId = (await Db.Queryable<Ghrc_PeriodMaster>().Where(x => x.PeriodMasterNo == data.PeriodMasterNo).FirstAsync())?.PeriodMasterID;
var items = new List<Ghrh_OfferApplyOrderSalary>();
var insert = new Ghrh_OfferApplyOrder()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S02,
CurrencyId = currencyId
});
}
OrderNo = data.WorkNo,
DeptId = deptId,
TitleId = titleId,
Channel = data.RecruitFrom,
StaffName = data.EmployName,
IdCardNo = data.IDCardNo,
InDate = data.InDate,
StaffType = data.StaffType,
GradeId = gradeId,
WorkAddress = workAddress,
ProbationSalary = data.TotalAmount,
PeriodMasterId = periodMasterId,
};
long id = await Db.Insertable(insert).ExecuteReturnSnowflakeIdAsync();
if (data.S03.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S03").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
#region 处理薪资项目
var currencyId = await Db.Ado.GetIntAsync("SELECT top 1 CurrencyID FROM Ghrc_Currency where CurrencyNo='RMB'");
if (data.S02.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S03,
CurrencyId = currencyId
});
}
if (data.S04.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S04").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S02").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S02,
CurrencyId = currencyId
});
}
if (data.S03.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S04,
CurrencyId = currencyId
});
}
if (data.S05.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S05").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S03").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S03,
CurrencyId = currencyId
});
}
if (data.S04.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S05,
CurrencyId = currencyId
});
}
if (data.S06.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S06").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S04").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S04,
CurrencyId = currencyId
});
}
if (data.S05.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S06,
CurrencyId = currencyId
});
}
if (data.S21.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S21").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S05").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S05,
CurrencyId = currencyId
});
}
if (data.S06.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S21,
CurrencyId = currencyId
});
}
if (data.S22.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S22").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S06").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S06,
CurrencyId = currencyId
});
}
if (data.S21.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S22,
CurrencyId = currencyId
});
}
if (data.S23.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S23").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S21").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S21,
CurrencyId = currencyId
});
}
if (data.S22.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S23,
CurrencyId = currencyId
});
}
if (data.S66.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S66").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S22").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S22,
CurrencyId = currencyId
});
}
if (data.S23.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S66,
CurrencyId = currencyId
});
}
if (data.S68.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S68").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S23").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S23,
CurrencyId = currencyId
});
}
if (data.S66.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S68,
CurrencyId = currencyId
});
}
if (data.S70.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S70").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S66").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S66,
CurrencyId = currencyId
});
}
if (data.S68.IsNotEmptyOrNull())
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S70,
CurrencyId = currencyId
});
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S68").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S68,
CurrencyId = currencyId
});
}
if (data.S70.IsNotEmptyOrNull())
{
var salaryItemId = (await Db.Queryable<Ghrc_SalaryItem>().Where(x => x.SalaryItemNo == "S70").FirstAsync())?.SalaryItemID;
items.Add(new Ghrh_OfferApplyOrderSalary()
{
OrderId = id,
SalaryItemId = salaryItemId,
Amount = data.S70,
CurrencyId = currencyId
});
}
#endregion
if (items.Any())
await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync();
}
#endregion
if (items.Any())
await Db.Insertable(items).ExecuteReturnSnowflakeIdAsync();
}
catch (Exception)
{
}
}
#endregion

@ -1505,13 +1505,14 @@
<param name="input">input</param>
<returns></returns>
</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>
<param name="id">简历Id</param>
<param name="input">input</param>
<param name="status">状态,0:暂存;1:提交</param>
<param name="source">input</param>
<returns></returns>
</member>
<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>
<returns></returns>
</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>
<param name="id">简历ID</param>
<param name="assessForm">assessForm</param>
<returns></returns>
</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>
<param name="id">简历ID</param>
<param name="orderId">面试单ID</param>
<param name="assessForm">assessForm</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrh_ResumeController.Log(System.Int64)">

Loading…
Cancel
Save