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 e8ebf771..43b76c2f 100644
--- a/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
+++ b/Tiobon.Core.Model/View/Ghrh/Ghrh_Resume.Dto.View.cs
@@ -149,6 +149,9 @@ public class Ghrh_ResumeDto : Ghrh_Resume
///
public string InterviewResult { get; set; }
+
+ public string InterviewResultRemark { get; set; }
+
///
/// 是否通过
///
diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs
index 386c7ca2..8c12a491 100644
--- a/Tiobon.Core.Services/BASE/BaseServices.cs
+++ b/Tiobon.Core.Services/BASE/BaseServices.cs
@@ -1994,7 +1994,7 @@ ORDER BY SortNo ASC";
//}
#region 发送站内信
- public async Task SendMessage(List staffIds, string title, string content)
+ public async Task SendMessage(List staffIds, string title, string content, string webUrl = null)
{
for (int i = 0; i < staffIds.Count; i++)
{
@@ -2010,7 +2010,10 @@ ORDER BY SortNo ASC";
Content = content,
SortNo = 0,
IsDefault = 0,
- IsEnable = 1
+ IsEnable = 1,
+ WEBUrl = webUrl,
+ Tag = "Resume",
+ JumpType = webUrl == null ? "text" : "link"
}).ExecuteReturnIdentityAsync();
await Db.Insertable(new Ghrm_MessageUser()
{
diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
index e437172c..9d4c7751 100644
--- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
+++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
@@ -316,6 +316,12 @@ public class Ghrh_ResumeServices : BaseServices x.GroupType == "Family").Select(x => x.ColumnName).ToList();
columnNames = columnNames.Distinct().ToList();
- columnNames.ForEach(x =>
+
+ familys.ForEach(family =>
{
- var value = entity.GetPropertyValue(x);
- if (value != null)
- notNUllCount++;
+ columnNames.ForEach(x =>
+ {
+ var value = family.GetPropertyValue(x);
+ if (value != null)
+ notNUllCount++;
+ });
});
familyPercent = (decimal)notNUllCount / (columnNames.Count * familys.Count) * 100;
completionDegree += familyPercent;
@@ -1250,12 +1260,16 @@ END";
notNUllCount = 0;
columnNames = formColumns.Where(x => x.GroupType == "Education").Select(x => x.ColumnName).ToList();
columnNames = columnNames.Distinct().ToList();
- columnNames.ForEach(x =>
+
+ educations.ForEach(education =>
{
- var value = entity.GetPropertyValue(x);
- if (value != null)
- notNUllCount++;
+ columnNames.ForEach(x =>
+ {
+ var value = education.GetPropertyValue(x);
+ if (value != null)
+ notNUllCount++;
+ });
});
educationPercent = (decimal)notNUllCount / (columnNames.Count * educations.Count) * 100;
completionDegree += educationPercent;
@@ -1270,12 +1284,15 @@ END";
notNUllCount = 0;
columnNames = formColumns.Where(x => x.GroupType == "WorkExp").Select(x => x.ColumnName).ToList();
columnNames = columnNames.Distinct().ToList();
- columnNames.ForEach(x =>
+ workExps.ForEach(workExp =>
{
- var value = entity.GetPropertyValue(x);
- if (value != null)
- notNUllCount++;
+ columnNames.ForEach(x =>
+ {
+ var value = workExp.GetPropertyValue(x);
+ if (value != null)
+ notNUllCount++;
+ });
});
workExpPercent = (decimal)notNUllCount / (columnNames.Count * workExps.Count) * 100;
completionDegree += workExpPercent;
@@ -1290,12 +1307,16 @@ END";
notNUllCount = 0;
columnNames = formColumns.Where(x => x.GroupType == "Licence").Select(x => x.ColumnName).ToList();
columnNames = columnNames.Distinct().ToList();
- columnNames.ForEach(x =>
+
+ licences.ForEach(licence =>
{
- var value = entity.GetPropertyValue(x);
- if (value != null)
- notNUllCount++;
+ columnNames.ForEach(x =>
+ {
+ var value = licence.GetPropertyValue(x);
+ if (value != null)
+ notNUllCount++;
+ });
});
licencePercent = (decimal)notNUllCount / (columnNames.Count * licences.Count) * 100;
completionDegree += licencePercent;
@@ -1310,12 +1331,16 @@ END";
notNUllCount = 0;
columnNames = formColumns.Where(x => x.GroupType == "Training").Select(x => x.ColumnName).ToList();
columnNames = columnNames.Distinct().ToList();
- columnNames.ForEach(x =>
+
+ trainings.ForEach(training =>
{
- var value = entity.GetPropertyValue(x);
- if (value != null)
- notNUllCount++;
+ columnNames.ForEach(x =>
+ {
+ var value = training.GetPropertyValue(x);
+ if (value != null)
+ notNUllCount++;
+ });
});
trainingPercent = (decimal)notNUllCount / (columnNames.Count * trainings.Count) * 100;
completionDegree += trainingPercent;
@@ -1501,6 +1526,7 @@ END";
Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended,
StaffId = recommend.InterviewStaffs[i].StaffId,
});
+ await SendMessage(recommend.InterviewStaffs.Where(x => x.StaffId != null).Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
var entity = await base.QueryById(id);
entity.Status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
@@ -1533,8 +1559,8 @@ END";
for (int i = 0; i < records.Count; i++)
{
- if (records[i].FirstViewTime.IsNotEmptyOrNull())
- await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!");
+ if (records[i].FirstViewTime.IsNullOrEmpty())
+ await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历推荐,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
}
await LogRecord(order.Id, $"发送简历推荐提醒");
}
@@ -1744,7 +1770,7 @@ END";
for (int i = 0; i < records.Count; i++)
{
if (records[i].FirstViewTime.IsNotEmptyOrNull())
- await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!");
+ await SendMessage([records[i].StaffId.Value], "简历提醒", "您有个简历【待面试】,请及时查看面试时间!", "/M_ESS_Recruit/F_ESS_Interview");
}
await LogRecord(order.Id, $"发送待面试提醒");
}
@@ -1806,7 +1832,7 @@ END";
await Update(entity, ["Status"]);
if (input.InterviewStaffs.IsNotEmptyOrNull())
- await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!");
+ await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的邀约面试,请及时查看!", "/M_ESS_Recruit/F_ESS_Interview");
}
@@ -1833,7 +1859,7 @@ END";
});
if (input.InterviewStaffs.IsNotEmptyOrNull())
- await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!");
+ await SendMessage(input.InterviewStaffs.Select(x => x.StaffId.Value).ToList(), "简历提醒", "您有个新的推荐简历,请及时查看!", "/M_ESS_Recruit/F_ESS_Candidate");
}
}
return ServiceResult.OprateSuccess();