From 4b574c9e5752aac0458f59633fe813bbc740eb59 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 8 Jun 2023 14:00:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=95=B0=E6=8D=AE=E9=80=8F?= =?UTF-8?q?=E8=A7=86=E6=8F=90=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 046eb3f99..fd5478930 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -390,10 +390,6 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary // 获取本期报表分权后的核算人员 List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(queryParam); - List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - // 获取核算结果 - List salaryAcctResultValues = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmployeeIds, salaryItemIds); - // 设置dimensionValue为维度值 SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder() .list(salaryAcctEmployeeList) @@ -405,24 +401,33 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary .dimensionValue(param.getDimensionValue()) .build(); - Map> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId); - Map> map = new HashMap<>(); - salaryAcctEmpResultMap.forEach((k, v) -> { - Map collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), p -> Util.null2o(p.getResultValue()), (key1, key2) -> key2)); - map.put(k, collect); - }); // 获取根据维度值过滤出的本次核算人员信息 - calculateReportRecordsByDimension(dimension, SalaryStatisticsReportDataQueryParam.builder().build(), salaryStatisticsReportData, map); + calculateReportRecordsByDimension(dimension, SalaryStatisticsReportDataQueryParam.builder().build(), salaryStatisticsReportData, Collections.EMPTY_MAP); List listByDimensionValue = salaryStatisticsReportData.getListByDimensionValue(); if(CollectionUtils.isEmpty(listByDimensionValue)){ throw new SalaryRunTimeException("该维度值中无数据!"); } // 同一个人放在一起 listByDimensionValue = listByDimensionValue.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId)).collect(Collectors.toList()); + List salaryAcctEmployeePOList = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), listByDimensionValue); + + // 获取此分页的核算人员 + List salaryAcctEmployeeIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + // 获取核算结果 + List salaryAcctResultValues = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmployeeIds, salaryItemIds); + // 封装核算结果 + Map> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId); + Map> map = new HashMap<>(); + salaryAcctEmpResultMap.forEach((k, v) -> { + Map collect = v.stream().collect(Collectors.toMap(p -> Util.null2String(p.getSalaryItemId()), p -> Util.null2o(p.getResultValue()), (key1, key2) -> key2)); + map.put(k, collect); + }); + // 构建核算结果数据 - List> records = buildResultRecords(listByDimensionValue, map); - PageInfo> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), records); + List> records = buildResultRecords(salaryAcctEmployeePOList, map); + PageInfo> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); pageInfo.setTotal(listByDimensionValue.size()); + pageInfo.setList(records); return pageInfo; }