/// <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); }