ESS端查询面试记录接口

master
xiaochanghai 7 months ago
parent a067e47ead
commit 1eaf30332b
  1. 22
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  2. 130
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -393,27 +393,7 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
[HttpPost, Route("QueryESS")] [HttpPost, Route("QueryESS")]
public async Task<ServicePageResult<object>> QueryESS([FromBody] QueryBody body) public async Task<ServicePageResult<object>> QueryESS([FromBody] QueryBody body)
{ {
var condition = "1!=1"; var condition = "1=1";
string status = DIC_INTERVIEW_ORDER_STATUS.HasRecommended;
switch (status)
{
//case DIC_INTERVIEW_ORDER_STATUS.HasRecommended://待筛选
// condition = $"A.Status ='{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}'";
// break;
//case DIC_INTERVIEW_ORDER_STATUS.WaitAppointment://待预约
// condition = $"Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitAppointment}' ";
// break;
//case "Fail"://不合适
// condition = $"(A.Status ='{status}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}' OR Status ='{DIC_INTERVIEW_ORDER_STATUS.HasOffer}')";
// break;
//case DIC_INTERVIEW_ORDER_STATUS.WaitInterview://待面试
// condition = $"Status ='{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}' ";
// break;
default:
condition = $"A.Status ='{status}' ";
break;
}
return await _service.QueryESS(body, condition); return await _service.QueryESS(body, condition);
} }
#endregion #endregion

@ -1826,7 +1826,7 @@ END";
int? staffId = GetStaffId(); int? staffId = GetStaffId();
RefAsync<int> totalCount = 0; RefAsync<int> totalCount = 0;
var dt = DateTime.Now.Date; var dt = DateTime.Now.Date;
string sql = @$"SELECT B.Id, string sql = @$"SELECT C.Id,
A.Id ResumeId, A.Id ResumeId,
A.CreateBy, A.CreateBy,
C.CreateTime, C.CreateTime,
@ -1920,13 +1920,139 @@ END";
FROM Ghrh_Resume A FROM Ghrh_Resume A
JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId JOIN Ghrh_InterviewOrder B ON A.ID = B.ResumeId
JOIN Ghrh_InterviewRecord C JOIN Ghrh_InterviewRecord C
ON B.ID = C.OrderId AND B.[Round] = C.[Round] ON B.ID = C.OrderId
-- AND B.[Round] = C.[Round]
WHERE A.IsEnable = 1 AND C.IsEnable = 1"; WHERE A.IsEnable = 1 AND C.IsEnable = 1";
if (string.IsNullOrWhiteSpace(filter.orderBy)) if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime ASC"; filter.orderBy = "CreateTime ASC";
sql += $" AND C.StaffId={staffId}"; sql += $" AND C.StaffId={staffId}";
#region 处理查询条件
//Expression<Func<Ghrh_Resume, bool>> whereExpression = new Expression<Func<Ghrh_Resume, bool>>();
var whereExpression = Expressionable.Create<Ghrh_Resume>();
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
if (value.IsNotEmptyOrNull())
{
var jsonParam = JsonHelper.JsonToObj<JsonParam>(value);
switch (name)
{
case "WaitRecommend":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitRecommended}'";
break;
case "HasRecommended":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}'";
break;
case "WaitAppointment":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitAppointment}'";
break;
case "WaitInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitInterview}'";
break;
case "HasInterview":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasInterview}'";
break;
case "WaitSendOffer":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer}'";
break;
case "HasSendOffer":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasSendOffer}'";
break;
case "HasOffer":
if (jsonParam.columnValue.ObjToInt() == 1)
sql += $"C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasOffer}'";
break;
case "SalaryPeriod":
case "Education":
case "ApplyStatus":
case "Gender":
//if (jsonParam.columnValue.IsNotEmptyOrNull())
//{
// var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
// if (!ids1.Any(x => x == "NoFliter"))
// whereExpression.And(x => ids1.Contains(x.Education));
//}
if (jsonParam.columnValue != null)
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
if (!ids1.Any(x => x == "NoFliter"))
condition += $" AND {name} IN ({string.Join(",", ids1.Select(id => "'" + id + "'"))})";
}
break;
case "WorkYears":
case "Age":
if (jsonParam.columnValue.IsNotEmptyOrNull())
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
if (!ids1.Any(x => x == "NoFliter"))
{
var i = 0;
condition += " AND (";
ids1.ForEach(x =>
{
var arr = x.Split(['-']);
if (i == 0)
condition += $"({name} >= {arr[0]} AND {name} <={arr[1]})";
else
condition += $" OR ({name} >= {arr[0]} AND {name} <={arr[1]})";
i++;
});
condition += ")";
}
}
break;
case "Tags":
if (jsonParam.columnValue.IsNotEmptyOrNull())
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
if (!ids1.Any(x => x == "NoFliter"))
{
var i = 0;
condition += " AND (";
ids1.ForEach(x =>
{
var arr = x.Split(['-']);
if (i == 0)
condition += $"({name} like '%{x}%')";
else
condition += $" OR ({name} like '%{x}%')";
i++;
});
condition += ")";
}
}
break;
case "Keywords":
if (jsonParam.columnValue.IsNotEmptyOrNull())
whereExpression.And(x => (x.StaffName.Contains(jsonParam.columnValue.ToString()) ||
x.StaffEname.Contains(jsonParam.columnValue.ToString()) ||
x.Tags.Contains(jsonParam.columnValue.ToString()) ||
x.RemarkSz.Contains(jsonParam.columnValue.ToString()) ||
x.School.Contains(jsonParam.columnValue.ToString())));
break;
default:
break;
}
}
}
#endregion
sql += " AND " + condition; sql += " AND " + condition;
if (filter.pageSize == 0) if (filter.pageSize == 0)
filter.pageSize = 10000; filter.pageSize = 10000;

Loading…
Cancel
Save