java 内存分页

 //查询批次表
        List<TClaimBatch> batches = batchService.list(Wrappers.<TClaimBatch>lambdaQuery()
                .eq(query.getInsuranceCompanyId() != null, TClaimBatch::getInsuranceCompanyId, query.getInsuranceCompanyId())
                .eq(query.getInsuranceApplicationId() != null, TClaimBatch::getInsuranceApplicationId, query.getInsuranceApplicationId())
                .like(StringUtils.isNotBlank(query.getBatchNo()), TClaimBatch::getBatchNo, query.getBatchNo())
                .eq(StringUtils.isNotBlank(query.getBatchStatus()), TClaimBatch::getStatus, query.getBatchStatus())
                .eq(query.getClaimType() != null, TClaimBatch::getClaimType, query.getClaimType())
                .eq(query.getExigency() != null, TClaimBatch::getExigency, query.getExigency())
                .ge(query.getStartTime() != null, TClaimBatch::getCreateTime, query.getStartTime())
                .le(query.getEndTime() != null, TClaimBatch::getEndTime, query.getEndTime())
        );

        List<TClaimCase> eqCases = new ArrayList<>(16);
        //查询分案表
        for (int i = 0; i < batches.size(); i++) {
            List<TClaimCase> cases = tClaimCaseMapper.selectList(Wrappers.<TClaimCase>lambdaQuery()
                    .eq(StringUtils.isNotBlank(query.getStatus()), TClaimCase::getCaseStatus, query.getStatus())
                    .eq(TClaimCase::getBatchId, batches.get(i).getId())
            );
            eqCases.addAll(cases);
        }

        List<CaseVo> caseVos = new ArrayList<>(16);
        for (int i = 0; i < eqCases.size(); i++) {
            //查询被保人表
            List<TClaimCaseInsured> caseInsureds = insuredService.list(Wrappers.<TClaimCaseInsured>lambdaQuery()
                    .eq(TClaimCaseInsured::getBatchId, eqCases.get(i).getBatchId())
                    .eq(TClaimCaseInsured::getCaseId, eqCases.get(i).getId())
            );
            CaseVo caseVo = new CaseVo();
            BeanUtils.copyProperties(eqCases.get(i), caseVo);
            Long batchId = eqCases.get(i).getBatchId();
            String policyNo = batches.stream().filter(a -> a.getId().equals(batchId)).findFirst().get().getPolicyNo();
            caseVo.setPolicyNo(policyNo);
            Long companyId = batches.stream().filter(a -> a.getId().equals(batchId)).findFirst().get().getInsuranceCompanyId();
            caseVo.setInsuranceCompanyId(companyId);
            Long applicationId = batches.stream().filter(a -> a.getId().equals(batchId)).findFirst().get().getInsuranceApplicationId();
            caseVo.setInsuranceApplicationId(applicationId);
            int claimType = batches.stream().filter(a -> a.getId().equals(batchId)).findFirst().get().getClaimType();
            caseVo.setClaimType(claimType);
            int emergency = batches.stream().filter(a -> a.getId().equals(batchId)).findFirst().get().getExigency();
            caseVo.setExigency(emergency);
            if (caseInsureds != null && caseInsureds.size() > 0) {
                caseVo.setCustomerNo(caseInsureds.get(0).getCustomerNo());
                caseVo.setInsuredName(caseInsureds.get(0).getInsuredName());
                caseVo.setIdCard(caseInsureds.get(0).getIdCard());
            }
            caseVos.add(caseVo);
        }

        IPage<CaseVo> casePage = new Page<>();
        long pages = 0;
        if (page.getSize() != 0) {
            long total = caseVos.size();
            long pageSize = page.getSize();
            if ((total % pageSize) == 0 && (total / pageSize) >= 1) {
                pages = (total / pageSize);
                pages = (int) Math.ceil(pages);
            } else {
                // 将操作数转化为int型数据
                pages = (total / pageSize) + 1;
            }


        }
        casePage.setPages(pages);
        casePage.setTotal(caseVos.size());
        casePage.setRecords(page(caseVos, page.getSize(), page.getCurrent()));

        return casePage;

    }

    /**
     * 循环截取某页列表进行分页
     *
     * @param dataList    分页数据
     * @param pageSize    页面大小
     * @param currentPage 当前页面
     */
    public List<CaseVo> page(List<CaseVo> dataList, Long pageSize, Long currentPage) {
        List<CaseVo> currentPageList = new ArrayList<>();
        if (dataList != null && dataList.size() > 0) {
            long currIdx = (currentPage > 1 ? (currentPage - 1) * pageSize : 0);
            for (int i = 0; i < pageSize && i < dataList.size() - currIdx; i++) {
                CaseVo data = dataList.get((int) (currIdx + i));
                currentPageList.add(data);
            }
        }
        return currentPageList;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值