@ -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 = 1 0 0 0 0 ;
filter . pageSize = 1 0 0 0 0 ;