多次查询导致数据结果查询慢

场景:

查询数据用柱状图显示,而柱状图的大小和数据变化

原处理

代码遍历进行多次查询

解决方法

先一次性查询到表的所有数据,然后用java8 流的形式,把数据分类,拿出需要的数据。

//所有数据

List<ApproveTimeVO> listMap= approveMapper.qerrySpendTimeData(request,isProvince,listXmdm,arithType,filterRulesql,generateDataRequest.getFilterType(),tbcxDiffSql,filterDybzspsxbm,filterCondition);
//先遍历然后取出需要的数据大小范围,然后在根据这些筛选出自己想要的结果
private void setRemainData(List<ApproveTimeVO> listMap, int approveTimeXms, int spanTimeXms, ChartData approveTimeData, ChartData spanTimeData, int num1, int num2, String timeType) {
    int AllNum = approveTimeXms;
    List<ApproveTimeVO> approveTime = new ArrayList<>();
    List<ApproveTimeVO> spanTime = new ArrayList<>();
    if ("TY".equals(timeType)) {
        approveTime = listMap.stream().filter(data ->
                data.getTYXMZTSJSPYS1TO5()> num1 && data.getTYXMZTSJSPYS1TO5()<= num2
        ).collect(Collectors.toList());
    }else {
        approveTime = listMap.stream().filter(data ->
                data.getXMZTSPYS()> num1 && data.getXMZTSPYS()<= num2
        ).collect(Collectors.toList());
    }
    spanTime = listMap.stream().filter(data ->
            data.getXMZTKDYS()> num1 && data.getXMZTSPYS()<= num2
    ).collect(Collectors.toList());
    approveTimeXms = AllNum - approveTime.size();
    spanTimeXms = AllNum - spanTime.size();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值