优化订单列表,多单号查询,支持几万单号查询
This commit is contained in:
+10
-7
@@ -28,6 +28,7 @@ import com.bms.price.domain.vo.TabOrderMonitorQuery;
|
||||
import com.bms.price.domain.vo.TabOrderMonitorVo;
|
||||
import com.bms.price.domain.vo.TabOrderProductCheckResult;
|
||||
import com.bms.price.oracle.CustomerKeywordResolver;
|
||||
import com.bms.price.oracle.TabOrderPageResult;
|
||||
import com.bms.price.oracle.TabOrderMonitorService;
|
||||
import com.bms.price.oracle.TabOrderProductCheckService;
|
||||
import com.bms.price.search.BillSearchPage;
|
||||
@@ -94,12 +95,10 @@ public class TabOrderMonitorController extends BaseController
|
||||
}
|
||||
// 在切换 Oracle 数据源之前,把客户名称解析为客户代码
|
||||
customerKeywordResolver.resolve(query);
|
||||
long total = tabOrderMonitorService.count(query);
|
||||
List<TabOrderMonitorVo> rows = total <= 0L
|
||||
? Collections.emptyList()
|
||||
: tabOrderMonitorService.selectPage(query, pageNum, pageSize);
|
||||
rsp.setRows(rows);
|
||||
rsp.setTotal(total);
|
||||
// 大批量单号场景一次收集即可同时得到总数和当前页,避免重复扫描 Oracle
|
||||
TabOrderPageResult page = tabOrderMonitorService.searchPage(query, pageNum, pageSize);
|
||||
rsp.setRows(page.getRows());
|
||||
rsp.setTotal(page.getTotal());
|
||||
return rsp;
|
||||
}
|
||||
|
||||
@@ -142,7 +141,11 @@ public class TabOrderMonitorController extends BaseController
|
||||
return error("customerCodes and pickup time required");
|
||||
}
|
||||
customerKeywordResolver.resolve(query);
|
||||
tabOrderMonitorService.count(query);
|
||||
// 含大批量单号时,异步任务启动时会自行分批收集,这里不预先 count,避免重复全量扫描
|
||||
if (!hasNonBlankItem(query.getOrderIdentifiers()))
|
||||
{
|
||||
tabOrderMonitorService.count(query);
|
||||
}
|
||||
String asyncTaskId = UUID.randomUUID().toString().replace("-", "");
|
||||
tabOrderSyncAsyncRunner.put(asyncTaskId, PrcBillingTaskRetryTask.STATUS_PENDING, 0, "queued",
|
||||
0, 0, 0, 0, null);
|
||||
|
||||
Reference in New Issue
Block a user