From 231961663f77c34e1a449c4161ae3f7aa6062f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 5 May 2022 14:10:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E7=BB=93=E6=9E=9C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctResultBO.java | 8 ++-- .../salaryitem/dto/SalaryItemListDTO.java | 4 +- .../service/SalaryAcctExcelService.java | 4 +- .../impl/SalaryAcctExcelServiceImpl.java | 47 ++++++++++--------- .../salary/web/SalaryAcctController.java | 3 +- .../wrapper/SalaryAcctResultWrapper.java | 4 +- 6 files changed, 37 insertions(+), 33 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index b8e0e8b7a..6231df340 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -89,11 +89,11 @@ public class SalaryAcctResultBO { * @param salarySobItemAggregateDTO * @return */ - public static List buildTableColumns(SalarySobItemAggregateDTO salarySobItemAggregateDTO) { - List columns = Lists.newArrayList(); + public static List buildTableColumns(SalarySobItemAggregateDTO salarySobItemAggregateDTO) { + List columns = Lists.newArrayList(); // 员工信息字段 for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobItemAggregateDTO.getEmpFields()) { - columns.add(new WeaTableColumn("150", salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); + columns.add(new WeaTableColumnGroup("150", salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); } // 薪资项目分组下的薪资项目 // 薪资项目分组下的薪资项目 @@ -110,7 +110,7 @@ public class SalaryAcctResultBO { } // 没有分类的薪资项目 for (SalarySobItemDTO salarySobItemDTO : salarySobItemAggregateDTO.getItems()) { - columns.add(new WeaTableColumn("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId())); + columns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId())); } return columns; } diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java index ae0c5b8ff..48ffbdb3b 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java @@ -74,8 +74,8 @@ public class SalaryItemListDTO { //公式内容 private String formulaContent; - @SalaryTableColumn(text = "个税申报表对应字段", width = "10%", column = "taxDeclarationColumn") - @TableTitle(title = "个税申报表对应字段",dataIndex = "taxDeclarationColumn",key = "taxDeclarationColumn") +// @SalaryTableColumn(text = "个税申报表对应字段", width = "10%", column = "taxDeclarationColumn") +// @TableTitle(title = "个税申报表对应字段",dataIndex = "taxDeclarationColumn",key = "taxDeclarationColumn") private String taxDeclarationColumn; //备注 diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index ee22c3f3a..d27dde5ac 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -1,6 +1,6 @@ package com.engine.salary.service; -import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.salaryacct.dto.SalaryAcctImportFieldDTO; import com.engine.salary.entity.salaryacct.param.*; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; @@ -43,7 +43,7 @@ public interface SalaryAcctExcelService { */ XSSFWorkbook exportSalaryAcctResult(SalaryAcctResultQueryParam queryParam); - List listWeaTableColumn(SalaryAcctRecordPO salaryAcctRecordPO); + List listWeaTableColumn(SalaryAcctRecordPO salaryAcctRecordPO); /** * 薪资核算导入时候薪资项目按取值方式分组 diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 166c47ed3..67a16e09d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -4,6 +4,7 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.TaxAgentBiz; +import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; @@ -210,10 +211,13 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (Objects.isNull(salaryAcctRecordPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } - // 查询列表的表头 - List weaTableColumns = listWeaTableColumn(salaryAcctRecordPO); // excel导出的表头 - String[] headers = weaTableColumns.stream() + List headerColumnGroup = Lists.newArrayList(); + // 查询列表的表头 + List weaTableColumns = listWeaTableColumn(salaryAcctRecordPO); + parseHeader(headerColumnGroup, weaTableColumns); + // excel导出的表头 + String[] headers = headerColumnGroup.stream() .map(WeaTableColumn::getText) .toArray(String[]::new); List headerList = new ArrayList<>(Arrays.asList(headers)); @@ -223,8 +227,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List> rows = new ArrayList<>(); rows.add(headerList); for (Map map : resultMapList) { - List row = Lists.newArrayListWithExpectedSize(weaTableColumns.size()); - for (WeaTableColumn weaTableColumn : weaTableColumns) { + List row = Lists.newArrayListWithExpectedSize(headerColumnGroup.size()); + for (WeaTableColumnGroup weaTableColumn : headerColumnGroup) { row.add(map.getOrDefault(weaTableColumn.getColumn(), StringUtils.EMPTY)); } rows.add(row); @@ -240,28 +244,29 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc * @param salaryAcctRecordPO 薪资核算记录 * @return */ - public List listWeaTableColumn(SalaryAcctRecordPO salaryAcctRecordPO) { + public List listWeaTableColumn(SalaryAcctRecordPO salaryAcctRecordPO) { // 查询薪资账套下的薪资项目+员工信息字段 SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateBySalarySobId(salaryAcctRecordPO.getSalarySobId()); // 构建薪资核算结果列表表头 return SalaryAcctResultBO.buildTableColumns(salarySobItemAggregateDTO); } - // /** -// * 解析表头 -// * -// * @param headerList -// * @param weaTableColumns -// */ -// private void parseHeader(List headerList, List weaTableColumns) { -// for (WeaTableColumnWapper weaTableColumnWapper : weaTableColumns) { -// if (CollectionUtils.isEmpty(weaTableColumnWapper.getChildren())) { -// headerList.add(weaTableColumnWapper); -// continue; -// } -// parseHeader(headerList, weaTableColumnWapper.getChildren()); -// } -// } + /** + * 解析表头 + * + * @param headerList + * @param weaTableColumns + */ + private void parseHeader(List headerList, List weaTableColumns) { + for (WeaTableColumnGroup weaTableColumnGroup : weaTableColumns) { + if (CollectionUtils.isEmpty(weaTableColumnGroup.getChildren())) { + headerList.add(weaTableColumnGroup); + continue; + } + parseHeader(headerList, weaTableColumnGroup.getChildren()); + } + } + @Override public SalaryAcctImportFieldDTO getImportField(Long salaryAcctRecordId) { // 查询薪资核算记录 diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 95be259b8..24c3d7211 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -368,8 +368,7 @@ public class SalaryAcctController { setSalaryAcctResultQueryParam(request, param); User user = HrmUserVarify.getUser(request, response); XSSFWorkbook workbook = getSalaryAcctExcelWrapper(user).exportSalaryAcctResult(param); - String time = LocalDate.now().toString(); - String fileName = "薪资核算结果" + time; + String fileName = "薪资核算结果" + LocalDate.now(); try { fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); } catch (UnsupportedEncodingException e) { diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index d95fc538f..4f2cbf383 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -1,9 +1,9 @@ package com.engine.salary.wrapper; -import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; +import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO; import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO; @@ -86,7 +86,7 @@ public class SalaryAcctResultWrapper extends Service { PageInfo> page = getSalaryAcctResultService(user).listPageByParam(queryParam); // 构建薪资核算结果列表的表头 - List columns = getSalaryAcctExcelService(user).listWeaTableColumn(salaryAcctRecordPO); + List columns = getSalaryAcctExcelService(user).listWeaTableColumn(salaryAcctRecordPO); Map datas = new HashMap<>(); datas.put("pageInfo", page);