public List<xxxx> xxxx(string stockOutSearch, string originalOrderSearch, int status,int isPick,int isTransfer, string sort, string order, int offset,
int limit, ref int totalCount)
{
var query = _stockOutRepository.GetAll();
#region 筛选条件
if (!string.IsNullOrWhiteSpace(stockOutSearch))
{
query = query.Where(x => x.Code.Contains(stockOutSearch));
}
if (!string.IsNullOrWhiteSpace(originalOrderSearch))
{
query = query.Where(x => x.OriginalOrderCode.Contains(originalOrderSearch));
}
if (status > -1)
{
query = query.Where(x => x.Status == status);
}
if (isPick > -1)
{
bool bPick = Convert.ToBoolean(isPick);
query = query.Where(x => x.IsPick == bPick);
}
if (isTransfer > -1)
{
bool bTransfer = Convert.ToBoolean(isTransfer);
query = query.Where(x => x.IsTransfer == bTransfer);
}
#endregion
#region 排序
if (!string.IsNullOrWhiteSpace(sort))
{
if (sort == "id".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Id) : query.OrderByDescending(x => x.Id);
}
else if (sort == "code".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Code) : query.OrderByDescending(x => x.Code);
}
else if (sort == "statusName".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Status) : query.OrderByDescending(x => x.Status);
}
else if (sort == "originalOrderType".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.OriginalOrderType) : query.OrderByDescending(x => x.OriginalOrderType);
}
else if (sort == "isPickEnable".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPickEnable) : query.OrderByDescending(x => x.IsPickEnable);
}
else if (sort == "isPick".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPick) : query.OrderByDescending(x => x.IsPick);
}
else if (sort == "isTransfer".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPickEnable) : query.OrderByDescending(x => x.IsPickEnable);
}
else
{
query = order == "asc" ? query.OrderBy(x => x.CreationTime) : query.OrderByDescending(x => x.CreationTime);
}
}
else
{
query = query.OrderByDescending(x => x.CreationTime);
}
#endregion
totalCount = query.Count();
if (totalCount < limit)
{
offset = 0;
}
var stockOutList = query
.Skip(offset).Take(limit)
.ToList();
var dtoList= Mapper.Map<List<StockOutDto>>(stockOutList);
foreach (StockOutDto stockOutDto in dtoList)
{
stockOutDto.StatusName= EnumHelper.GetEnum((StockOutStatusEnum)stockOutDto.Status);
}
return dtoList;
}
int limit, ref int totalCount)
{
var query = _stockOutRepository.GetAll();
#region 筛选条件
if (!string.IsNullOrWhiteSpace(stockOutSearch))
{
query = query.Where(x => x.Code.Contains(stockOutSearch));
}
if (!string.IsNullOrWhiteSpace(originalOrderSearch))
{
query = query.Where(x => x.OriginalOrderCode.Contains(originalOrderSearch));
}
if (status > -1)
{
query = query.Where(x => x.Status == status);
}
if (isPick > -1)
{
bool bPick = Convert.ToBoolean(isPick);
query = query.Where(x => x.IsPick == bPick);
}
if (isTransfer > -1)
{
bool bTransfer = Convert.ToBoolean(isTransfer);
query = query.Where(x => x.IsTransfer == bTransfer);
}
#endregion
#region 排序
if (!string.IsNullOrWhiteSpace(sort))
{
if (sort == "id".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Id) : query.OrderByDescending(x => x.Id);
}
else if (sort == "code".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Code) : query.OrderByDescending(x => x.Code);
}
else if (sort == "statusName".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.Status) : query.OrderByDescending(x => x.Status);
}
else if (sort == "originalOrderType".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.OriginalOrderType) : query.OrderByDescending(x => x.OriginalOrderType);
}
else if (sort == "isPickEnable".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPickEnable) : query.OrderByDescending(x => x.IsPickEnable);
}
else if (sort == "isPick".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPick) : query.OrderByDescending(x => x.IsPick);
}
else if (sort == "isTransfer".ToLower())
{
query = order == "asc" ? query.OrderBy(x => x.IsPickEnable) : query.OrderByDescending(x => x.IsPickEnable);
}
else
{
query = order == "asc" ? query.OrderBy(x => x.CreationTime) : query.OrderByDescending(x => x.CreationTime);
}
}
else
{
query = query.OrderByDescending(x => x.CreationTime);
}
#endregion
totalCount = query.Count();
if (totalCount < limit)
{
offset = 0;
}
var stockOutList = query
.Skip(offset).Take(limit)
.ToList();
var dtoList= Mapper.Map<List<StockOutDto>>(stockOutList);
foreach (StockOutDto stockOutDto in dtoList)
{
stockOutDto.StatusName= EnumHelper.GetEnum((StockOutStatusEnum)stockOutDto.Status);
}
return dtoList;
}