diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index f451640aa..4aed4b74b 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -151,6 +151,35 @@ public class SalaryAcctResultBO { return columns; } + /** + * 构建核算结果表头-供报表使用 + * @param salarySobItemAggregateDTO + * @return + */ + public static Map buildColumns(SalarySobItemAggregateDTO salarySobItemAggregateDTO) { + Map map = new HashMap<>(); + // 员工信息字段 + for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobItemAggregateDTO.getEmpFields()) { + map.put(salarySobEmpFieldDTO.getFieldId(), salarySobEmpFieldDTO.getFieldName()); + } + // 薪资项目分组下的薪资项目 + // 薪资项目分组下的薪资项目 + for (SalarySobItemGroupDTO salarySobItemGroupDTO : salarySobItemAggregateDTO.getItemGroups()) { + if (CollectionUtils.isEmpty(salarySobItemGroupDTO.getItems())) { + continue; + } + for (SalarySobItemDTO salarySobItemDTO : salarySobItemGroupDTO.getItems()) { + map.put(salarySobItemDTO.getSalaryItemId() + "", salarySobItemDTO.getName()); + } + + } + // 没有分类的薪资项目 + for (SalarySobItemDTO salarySobItemDTO : salarySobItemAggregateDTO.getItems()) { + map.put(salarySobItemDTO.getSalaryItemId() + "", salarySobItemDTO.getName()); + } + return map; + } + /** * 转船成薪资核算结果列表的表格数据 * diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index d27dde5ac..40cfd7aa0 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -43,8 +43,20 @@ public interface SalaryAcctExcelService { */ XSSFWorkbook exportSalaryAcctResult(SalaryAcctResultQueryParam queryParam); + /** + * 表头 + * @param salaryAcctRecordPO + * @return + */ List listWeaTableColumn(SalaryAcctRecordPO salaryAcctRecordPO); + /** + * 报表表头 + * @param salaryAcctRecordPO + * @return + */ + Map listColumn(SalaryAcctRecordPO salaryAcctRecordPO); + /** * 薪资核算导入时候薪资项目按取值方式分组 * diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index ac7551f21..1b76c9328 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -258,6 +258,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return SalaryAcctResultBO.buildTableColumns(salarySobItemAggregateDTO); } + /** + * 报表表头 + * @param salaryAcctRecordPO + * @return + */ + public Map listColumn(SalaryAcctRecordPO salaryAcctRecordPO) { + // 查询薪资账套下的薪资项目+员工信息字段 + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + // 构建薪资核算结果列表表头 + return SalaryAcctResultBO.buildColumns(salarySobItemAggregateDTO); + } + /** * 解析表头 * diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index a400afef0..eb394d092 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -92,6 +92,34 @@ public class SalaryAcctResultWrapper extends Service { } + /** + * 薪资核算列表-报表使用 + * + * @param queryParam 列表查询条件 + * @return + */ + @Deprecated + public Map list(SalaryAcctResultQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + // 查询薪资核算记录 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(queryParam.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); + } + + // 查询薪资核算结果 + List> list = getSalaryAcctResultService(user).listByParam(queryParam); + + // 构建薪资核算结果列表的表头 + Map columns = getSalaryAcctExcelService(user).listColumn(salaryAcctRecordPO); + + Map datas = new HashMap<>(); + datas.put("list", list); + datas.put("columns", columns); + + return datas; + } + /** * 获取薪资核算列表的高级搜索 *