Esempio n. 1
0
        /// <summary>
        /// @xis 待入库列表
        /// </summary>
        /// <param name="reqmodel"></param>
        /// <returns></returns>
        public async Task <Result> SearchStockPaginerAsync(reqmodel <SearchStockPreModel> reqmodel)
        {
            Result <PaginerData <SearchStockPrePaginerResult> > result = new Result <PaginerData <SearchStockPrePaginerResult> > {
                status = ErrorCodeConst.ERROR_200, code = ErrorCodeConst.ERROR_200
            };

            IWhere <t_stock>       stock_data_mkr      = g_sqlMaker.Select <t_stock>(s => new { s.id, s.product_name }).Where();
            IWhere <t_stockin_pre> stock_pre_data_mkr  = g_sqlMaker.Select <t_stockin_pre>(s => new { s.id, s.stock_id, s.quantity }).Where();
            IWhere <t_stockin_pre> stock_pre_total_mkr = g_sqlMaker.Select <t_stockin_pre>().Count().Where();
            //模糊查询产品
            List <t_stock> stock_list = new List <t_stock>();

            if (!string.IsNullOrWhiteSpace(reqmodel.Data.name))
            {
                stock_data_mkr      = stock_data_mkr.And("product_name", "like", "@product_name");
                stock_pre_data_mkr  = stock_pre_data_mkr.And("stock_id", "in", "@stock_id");
                stock_pre_total_mkr = stock_pre_total_mkr.And("stock_id", "in", "@stock_id");

                stock_list = await g_dbHelper.QueryListAsync <t_stock>(stock_data_mkr.ToSQL(), new { product_name = $"%{reqmodel.Data.name}%" });
            }

            //查询待入库
            string stock_pre_data_sql           = stock_pre_data_mkr.OrderByDesc("add_time").Pager(reqmodel.Data.page_index, reqmodel.Data.page_size).ToSQL();
            List <t_stockin_pre> stock_pre_list = await g_dbHelper.QueryListAsync <t_stockin_pre>(stock_pre_data_sql, new { stock_id = stock_list.Select(s => s.id) });

            int total = await g_dbHelper.QueryAsync <int>(stock_pre_total_mkr.ToSQL(), new { stock_id = stock_list.Select(s => s.id) });

            if (string.IsNullOrWhiteSpace(reqmodel.Data.name) && stock_pre_list.Count > 0)
            {
                stock_list = await g_dbHelper.QueryListAsync <t_stock>(stock_data_mkr.And("id", "in", "@stock_id").ToSQL(), new { stock_id = stock_pre_list.Select(s => s.stock_id) });
            }
            List <SearchStockPrePaginerResult> search_list = new List <SearchStockPrePaginerResult>();

            foreach (var item in stock_pre_list)
            {
                t_stock stock = stock_list.First(f => f.id == item.stock_id);
                search_list.Add(new SearchStockPrePaginerResult
                {
                    id           = item.id,
                    stock_id     = item.stock_id,
                    quantity     = item.quantity,
                    product_name = stock.product_name,
                });
            }
            PaginerData <SearchStockPrePaginerResult> paginer = new PaginerData <SearchStockPrePaginerResult>
            {
                page_index = reqmodel.Data.page_index,
                page_size  = reqmodel.Data.page_size,
                Data       = search_list,
                total      = total
            };

            result.data = paginer;
            return(result);
        }