diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendDetailQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendDetailQueryParam.java index 94fb68c32..1b49f639b 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalarySendDetailQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendDetailQueryParam.java @@ -68,6 +68,10 @@ public class SalarySendDetailQueryParam extends BaseQueryParam { // @JsonIgnore private List sendStatuss; + + // 导出时显示列定制信息 + List columns; + public static String checkParam(SalarySendDetailQueryParam saveParam) { if (saveParam.getSalarySendId() == null) { throw new SalaryRunTimeException("工资单发放Id必传"); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 738951a25..30019d8fc 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -56,6 +56,7 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper; import com.engine.salary.mapper.salarybill.SalarySendInfoMapper; import com.engine.salary.mapper.salarybill.SalarySendMapper; +import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.service.*; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -1570,13 +1571,25 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 1.工作簿名称 String sheetName = SalaryI18nUtil.getI18nLabel(97036, "工资单发放详情"); List header = new ArrayList<>(); + // 员工信息字段 header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名")); header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); + Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, dto -> dto.getSalaryItemId() + SalaryConstant.DYNAMIC_SUFFIX); + List sortedSalaryItems = new ArrayList<>(); + for(String column : queryParam.getColumns()) { + if (column.contains(SalaryConstant.DYNAMIC_SUFFIX)) { + SalaryTemplateSalaryItemListDTO salaryTemplateSalaryItemListDTO = salaryItemMap.get(column); + if (salaryTemplateSalaryItemListDTO != null) { + sortedSalaryItems.add(salaryTemplateSalaryItemListDTO); + } + } + } + // 动态列 - if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salaryItems)) { - for (SalaryTemplateSalaryItemListDTO salaryItem : salaryItems) { + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(sortedSalaryItems)) { + for (SalaryTemplateSalaryItemListDTO salaryItem : sortedSalaryItems) { header.add(salaryItem.getName()); } } @@ -1595,7 +1608,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // 动态列 Map mapColumn = listMaps.get(0); - for (SalaryTemplateSalaryItemListDTO salaryItem : salaryItems) { + for (SalaryTemplateSalaryItemListDTO salaryItem : sortedSalaryItems) { if (mapColumn.containsKey(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)) { row.add(dto.get(salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)); } @@ -1706,7 +1719,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService .filter(NumberUtils::isCreatable) .map(BigDecimal::new) .reduce(BigDecimal.ZERO, BigDecimal::add); - map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap)); + map.put(item.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, SalaryAcctFormulaBO.roundResultValue(sum.toString(), item, Collections.emptyList(), Collections.emptyMap(), salaryItemIdKeySalarySobItemPOMap)); }); return map; } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 10c6d9c31..94a2ea915 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -531,21 +531,21 @@ public class SalaryBillController { * * @return */ - @GET + @POST @Path("/send/exportDetailList") @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response exportDetailList(@Context HttpServletRequest request, @Context HttpServletResponse response) { + public Response exportDetailList(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody SalarySendDetailQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam(); - String salarySendId = request.getParameter("salarySendId"); - String ids = request.getParameter("ids"); - if (StringUtils.isNotBlank(ids)) { - queryParam.setIds(Arrays.asList(ids.split(",")).stream().map(Long::new).collect(Collectors.toList())); - } - if (StringUtils.isNotBlank(salarySendId)) { - queryParam.setSalarySendId(Long.parseLong(salarySendId)); - } + // SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam(); + // String salarySendId = request.getParameter("salarySendId"); + // String ids = request.getParameter("ids"); + // if (StringUtils.isNotBlank(ids)) { + // queryParam.setIds(Arrays.asList(ids.split(",")).stream().map(Long::new).collect(Collectors.toList())); + // } + // if (StringUtils.isNotBlank(salarySendId)) { + // queryParam.setSalarySendId(Long.parseLong(salarySendId)); + // } XSSFWorkbook workbook = getSalarySendWrapper(user).exportDetailList(queryParam); String fileName = "工资单发放详情列表" + LocalDate.now(); diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 725931b80..0fccfecd0 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -562,6 +562,7 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy checkboxpopedom.setPopedompara("column:system_type"); checkboxpopedom.setShowmethod("com.engine.salary.transmethod.TaxRateTransMethod.getCheckBoxPopedom"); checkboxpopedomList.add(checkboxpopedom); + table.setPageUID(queryParam.getSalarySendId().toString()); table.setCheckboxList(checkboxpopedomList); table.setCheckboxpopedom(null);