|
|
|
@ -1,4 +1,6 @@ |
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
using MySqlX.XDevAPI.Common; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 面试工单 (服务) |
|
|
|
@ -67,18 +69,10 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr |
|
|
|
|
|
|
|
|
|
Type entityType = typeof(Ghrh_InterviewOrder); |
|
|
|
|
|
|
|
|
|
var countSql = @$" SELECT COUNT(1) FROM {entityType.GetEntityTableName()}"; |
|
|
|
|
var countSql = @$" SELECT COUNT(1) FROM Ghrh_InterviewOrder_V"; |
|
|
|
|
var sql1 = @$"DECLARE @langId INT = {filter.langId};"; |
|
|
|
|
var sql = @$" SELECT *,
|
|
|
|
|
ISNULL ((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END |
|
|
|
|
FROM Ghrs_User B |
|
|
|
|
WHERE B.UserId = A.CreateBy), |
|
|
|
|
'') CreateDataInfo, |
|
|
|
|
ISNULL ((SELECT CASE WHEN @langId = 1 THEN UserName ELSE UserEname END |
|
|
|
|
FROM Ghrs_User B |
|
|
|
|
WHERE B.UserId = A.UpdateBy), |
|
|
|
|
'') UpdateDataInfo, ISNULL(A.UpdateTime, A.CreateTime) CreateTime1 |
|
|
|
|
FROM {entityType.GetEntityTableName()} A";
|
|
|
|
|
var sql = @$" SELECT *
|
|
|
|
|
FROM Ghrh_InterviewOrder_V A";
|
|
|
|
|
|
|
|
|
|
string conditions = " WHERE 1=1 "; |
|
|
|
|
|
|
|
|
@ -97,7 +91,7 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr |
|
|
|
|
{ |
|
|
|
|
var name = jProperty.Name; |
|
|
|
|
var value = jProperty.Value.ToString(); |
|
|
|
|
if (name == "page" || name == "pageSize" ) |
|
|
|
|
if (name == "page" || name == "pageSize") |
|
|
|
|
continue; |
|
|
|
|
if (!string.IsNullOrWhiteSpace(value)) |
|
|
|
|
conditions = DealConditions(conditions, name, value); |
|
|
|
@ -117,20 +111,12 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr |
|
|
|
|
var result = new ServicePageResult<Ghrh_InterviewOrderDto>(filter.pageNum, total, filter.pageSize, entitys); |
|
|
|
|
|
|
|
|
|
var list = result.result.DT_TableDataT1; |
|
|
|
|
|
|
|
|
|
var resumeIds = list.Where(x => x.ResumeId != null).Select(x => x.ResumeId).ToList(); |
|
|
|
|
var requestIds = list.Where(x => x.RequestId != null).Select(x => x.RequestId).ToList(); |
|
|
|
|
|
|
|
|
|
var resumes = await Db.Queryable<Ghrh_Resume>().Where(x => resumeIds.Contains(x.Id)).ToListAsync(); |
|
|
|
|
var requests = await Db.Queryable<Ghrh_HumanRequest>().Where(x => requestIds.Contains(x.Id)).ToListAsync(); |
|
|
|
|
var titleIds = resumes.Where(x => x.TitleId != null).Select(x => x.TitleId.Value).Distinct().ToList(); |
|
|
|
|
var titles = await Db.Queryable<Ghra_Title>().Where(x => x.TitleID != null && titleIds.Contains(x.TitleID.Value)).ToListAsync(); |
|
|
|
|
var tagIds = new List<long>(); |
|
|
|
|
|
|
|
|
|
resumes.ForEach(x => |
|
|
|
|
list.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
if (x.Tags.IsNotEmptyOrNull()) |
|
|
|
|
tagIds.AddRange(JsonHelper.JsonToObj<List<long>>(x.Tags)); |
|
|
|
|
if (x.Tag.IsNotEmptyOrNull()) |
|
|
|
|
tagIds.AddRange(JsonHelper.JsonToObj<List<long>>(x.Tag)); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
tagIds = tagIds.Distinct().ToList(); |
|
|
|
@ -138,57 +124,44 @@ public class Ghrh_InterviewOrderServices : BaseServices<Ghrh_InterviewOrder, Ghr |
|
|
|
|
for (int i = 0; i < list.Count; i++) |
|
|
|
|
{ |
|
|
|
|
var entity = list[i]; |
|
|
|
|
var resume = resumes.Where(x => x.Id == entity.ResumeId).FirstOrDefault(); |
|
|
|
|
if (resume != null) |
|
|
|
|
{ |
|
|
|
|
entity.StaffName = resume.StaffName; |
|
|
|
|
entity.IdCardNo = resume.IdCardNo; |
|
|
|
|
entity.CertificateType = await GetParaLabel("D51", resume.CertificateType); |
|
|
|
|
entity.EduDegree = await GetParaLabel("EducationalBGLevel", resume.EduDegree); |
|
|
|
|
entity.Gender = await GetParaLabel("Gender", resume.Gender); |
|
|
|
|
if (resume.TitleId != null) entity.TitleName = titles.Where(o => o.TitleID == resume.TitleId).FirstOrDefault()?.TitleName; |
|
|
|
|
|
|
|
|
|
if (resume.Tags.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var tagIds1 = JsonHelper.JsonToObj<List<long>>(resume.Tags); |
|
|
|
|
entity.CertificateType = await GetParaLabel("D51", entity.CertificateType); |
|
|
|
|
entity.EduDegree = await GetParaLabel("EducationalBGLevel", entity.EduDegree); |
|
|
|
|
entity.Gender = await GetParaLabel("Gender", entity.Gender); |
|
|
|
|
|
|
|
|
|
var TagList = tags.Where(o => tagIds1.Contains(o.Id)).Select(o => o.TagName).ToList(); |
|
|
|
|
entity.Tag = string.Join(",", TagList); |
|
|
|
|
} |
|
|
|
|
if (entity.Tag.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
var tagIds1 = JsonHelper.JsonToObj<List<long>>(entity.Tag); |
|
|
|
|
|
|
|
|
|
#region 计算年龄 |
|
|
|
|
if (resume.Birthday != null && resume.Birthday > DateTime.MinValue) |
|
|
|
|
{ |
|
|
|
|
DateTime birthdate = (DateTime)resume.Birthday; |
|
|
|
|
DateTime now = DateTime.Now; |
|
|
|
|
int age = now.Year - birthdate.Year; |
|
|
|
|
if (now.Month < birthdate.Month || (now.Month == birthdate.Month && now.Day < birthdate.Day)) |
|
|
|
|
age--; |
|
|
|
|
entity.Age = age; |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
var TagList = tags.Where(o => tagIds1.Contains(o.Id)).Select(o => o.TagName).ToList(); |
|
|
|
|
entity.Tag = string.Join(",", TagList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (entity.Status) |
|
|
|
|
{ |
|
|
|
|
case "Fail": |
|
|
|
|
entity.StatusLabel = "不合适"; |
|
|
|
|
break; |
|
|
|
|
case "HasRecommended": |
|
|
|
|
entity.StatusLabel = "待预约"; |
|
|
|
|
break; |
|
|
|
|
case "Hire": |
|
|
|
|
entity.StatusLabel = "不合适"; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
entity.StatusLabel = "已约面"; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
#region 计算年龄 |
|
|
|
|
if (entity.Birthday != null && entity.Birthday > DateTime.MinValue) |
|
|
|
|
{ |
|
|
|
|
DateTime birthdate = (DateTime)entity.Birthday; |
|
|
|
|
DateTime now = DateTime.Now; |
|
|
|
|
int age = now.Year - birthdate.Year; |
|
|
|
|
if (now.Month < birthdate.Month || (now.Month == birthdate.Month && now.Day < birthdate.Day)) |
|
|
|
|
age--; |
|
|
|
|
entity.Age = age; |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
if (entity.RequestId != null) |
|
|
|
|
switch (entity.Status) |
|
|
|
|
{ |
|
|
|
|
var request = requests.Where(x => x.Id == entity.RequestId).FirstOrDefault(); |
|
|
|
|
entity.RequestNo = request.RequestNo; |
|
|
|
|
case "Fail": |
|
|
|
|
entity.StatusLabel = "不合适"; |
|
|
|
|
break; |
|
|
|
|
case "HasRecommended": |
|
|
|
|
entity.StatusLabel = "待预约"; |
|
|
|
|
break; |
|
|
|
|
case "Hire": |
|
|
|
|
entity.StatusLabel = "已逾期"; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
entity.StatusLabel = "已约面"; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
if (entity.IdCardNo.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|