/// <summary>
/// 分页查询任务列表
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public PageModel<TaskModel> GetListByPageView(TaskSearchModel where)
{
int rowCount = 0;
try
{
var sql = new StringBuilder(@"SELECT DISTINCT t.*
FROM Task t WITH(NOLOCK)
LEFT JOIN TaskExecute te WITH(NOLOCK) ON t.Id = te.TaskId AND te.RowStatus=1
Where 1=1 AND t.RowStatus=1");
var parameters = new List<SqlParameter>();
if (!string.IsNullOrEmpty(where.No))
{
sql.AppendFormat(" AND t.No=@No");
parameters.Add(new SqlParameter("@No", where.No));
}
if (!string.IsNullOrEmpty(where.NameLike))
{
sql.AppendFormat(" AND t.Name LIKE '%{0}%'", where.NameLike);
//parameters.Add(new SqlParameter("@Name", where.NameLike));
}
if (where.ProjectId > 0)
{
sql.AppendFormat(" AND t.ProjectId=@ProjectId");
parameters.Add(new SqlParameter("@ProjectId", where.ProjectId));
}
if (where.ModuleId > 0)
{
sql.AppendFormat(" AND t.ModuleId=@ModuleId");
parameters.Add(new SqlParameter("@ModuleId", where.ModuleId));
}
if (where.VersionsId > 0)
{
sql.AppendFormat(" AND t.VersionsId=@VersionsId");
parameters.Add(new SqlParameter("@VersionsId", where.VersionsId));
}
if (where.DemandId > 0)
{
sql.AppendFormat(" AND t.DemandId=@DemandId");
parameters.Add(new SqlParameter("@DemandId", where.DemandId));
}
if (where.State >= 0)
{
sql.AppendFormat(" AND t.State=@State");
parameters.Add(new SqlParameter("@State", where.State));
}
if (where.QATestState >= 0)
{
sql.AppendFormat(" AND t.QATestState=@QATestState");
parameters.Add(new SqlParameter("@QATestState", where.QATestState));
}
if (where.PrincipalId > 0)
{
sql.AppendFormat(" AND te.PrincipalId=@PrincipalId");
parameters.Add(new SqlParameter("@PrincipalId", where.PrincipalId));
}
if (where.ScheduledStartTime.HasValue)
{
//sql.AppendFormat(" AND te.ScheduledStartTime >= @ScheduledStartTime");
sql.AppendFormat(" AND t.ScheduledStartTime >= @ScheduledStartTime");
parameters.Add(new SqlParameter("@ScheduledStartTime", where.ScheduledStartTime.Value.Date));
}
if (where.ScheduledEndTime.HasValue)
{
//sql.AppendFormat(" AND te.ScheduledEndTime <= @ScheduledEndTime");
sql.AppendFormat(" AND t.ScheduledEndTime <= @ScheduledEndTime");
parameters.Add(new SqlParameter("@ScheduledEndTime", where.ScheduledEndTime.Value.Date.GetDayLastTime()));
}
if (where.ActualStartTime.HasValue)
{
sql.AppendFormat(" AND te.ActualStartTime >= @ActualStartTime");
parameters.Add(new SqlParameter("@ActualStartTime", where.ActualStartTime.Value.Date));
}
if (where.ActualEndTime.HasValue)
{
sql.AppendFormat(" AND te.ActualEndTime <= @ActualEndTime");
parameters.Add(new SqlParameter("@ActualEndTime", where.ActualEndTime.Value.Date.GetDayLastTime()));
}
var exeSql = CommonHelpLD.GetRowIdSql("CreatedOn") + " * FROM (" + sql.ToString() + ")TableTEMP";
exeSql = SqlUtility.GetLimitPageSqlCommandSqlServer(exeSql, where.PageIndex, where.PageSize);
var typeModel = typeof(TaskModel);
var modelProperties = MfModelInfo.GetProperties(typeModel);
var dataList = SqlUtility.GetExeResultToList<TaskModel, SqlParameter, SqlDataReader>(dbHelper, DataBaseName, exeSql, parameters, modelProperties, out rowCount);
return new PageModel<TaskModel>(dataList, where.PageIndex, where.PageSize, rowCount);
}
catch (Exception ex)
{
return new PageModel<TaskModel>(null, where.PageIndex, where.PageSize, rowCount);
}
}