bootstrap-table

本文介绍了一个用于库存出库管理系统的查询API实现细节。该API支持多种筛选条件,如库存编码、原始订单编码等,并可根据不同字段进行排序。此外,还提供了分页功能和数据转换为DTO对象的方法。
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;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值