diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java index 38754830e..a98c909ea 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java @@ -86,6 +86,20 @@ public class SalaryStatisticsEmployeeController { return new ResponseResult>(user).run(getSalaryStatisticsEmployeeWrapper(user)::salaryList, queryParam); } + /** + * 员工薪资列表合计行 + * + * @param queryParam + * @return + */ + @POST + @Path("/salaryListSum") + @Produces(MediaType.APPLICATION_JSON) + public String salaryListSum(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsEmployeeSalaryQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryStatisticsEmployeeWrapper(user)::salaryListSum, queryParam); + } + /** * 导出员工薪资列表 * diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index c7de9cd23..903dacb88 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -165,7 +165,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { } } // 薪资项目合计 - countResultMap.put(itemKey, ReportDataUtil.thousandthConvert(sumBigDecimal.toString())); + if (queryParam.isExport()) { + countResultMap.put(itemKey, ReportDataUtil.thousandthConvert(sumBigDecimal.toString())); + } } } PageInfo> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), records); @@ -181,6 +183,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { if (queryParam.isExport()) { resultMap.put("columns", weaTableColumns); resultMap.put("salaryItems",salaryStatisticsEmployeeDetailResult.getSalaryItemList()); + resultMap.put("countResult", countResultMap); } else { WeaTable table = new WeaTable(); String pageId = "b72ed4bb-725e-45de-aea1-4eb4c9184af7"; @@ -196,7 +199,43 @@ public class SalaryStatisticsEmployeeWrapper extends Service { resultMap.put("dataKey", result.getResultMap()); } resultMap.put("pageInfo", pageInfo); - resultMap.put("countResult", countResultMap); + return resultMap; + } + + /** + * 获取员工发薪明细列表 + * @param queryParam + */ + public Map salaryListSum(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { + Map resultMap = Maps.newHashMap(); + if (StringUtils.isBlank(queryParam.getStartDateStr()) || StringUtils.isBlank(queryParam.getEndDateStr())) { + return resultMap; + } + queryParam.setExport(true); + // 获取发薪人员 + PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); + // 获取薪资核算结果 + SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); + List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); + + Map sumResultMap = Maps.newHashMap(); + if (CollectionUtils.isNotEmpty(records)) { + List salaryItems = salaryStatisticsEmployeeDetailResult.getSalaryItemList(); + for (SalaryItemPO item : salaryItems) { + BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.ZERO); + String itemKey = item.getId() + SalaryConstant.DYNAMIC_SUFFIX; + for (Map record : records) { + if (record.containsKey(itemKey)) { + if (Objects.nonNull(record.get(itemKey)) && StringUtils.isNotEmpty(record.get(itemKey).toString()) && NumberUtils.isCreatable(record.get(itemKey).toString())) { + sumBigDecimal = sumBigDecimal.add(new BigDecimal(record.get(itemKey).toString())); + } + } + } + // 薪资项目合计 + sumResultMap.put(itemKey, ReportDataUtil.thousandthConvert(sumBigDecimal.toString())); + } + } + resultMap.put("sumRow", sumResultMap); return resultMap; }