diff --git a/src/com/engine/salary/service/SalaryArchiveService.java b/src/com/engine/salary/service/SalaryArchiveService.java index 6b9712c7f..5770031a6 100644 --- a/src/com/engine/salary/service/SalaryArchiveService.java +++ b/src/com/engine/salary/service/SalaryArchiveService.java @@ -263,5 +263,5 @@ public interface SalaryArchiveService { Map getGzxmByScxcbz(String scxcbz); - String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam); + Map getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 574021ce9..59e76c873 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -1477,31 +1477,45 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } @Override - public String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) { + public Map getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) { + Map resultMap = new HashMap<>(); if (StringUtils.isBlank(queryParam.getTaxAgentName()) || queryParam.getEmployeeId() == null) { - return ""; + return resultMap; } Optional taxAgentPOOptional = getTaxAgentService(user).listAll().stream().filter(t -> t.getName().equals(queryParam.getTaxAgentName())).findFirst(); if (!taxAgentPOOptional.isPresent()) { - return ""; + return resultMap; } TaxAgentPO taxAgentPO = taxAgentPOOptional.get(); List salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().employeeId(queryParam.getEmployeeId()).taxAgentId(taxAgentPO.getId()).build()); if (CollectionUtils.isEmpty(salaryArchiveList)) { - return ""; + return resultMap; } Long salaryArchiveId = salaryArchiveList.get(0).getId(); BaseBean baseBean = new BaseBean(); - Long baseSalaryItemId = NumberUtils.isCreatable(baseBean.getPropValue("ltSalary", "base_salary_item_id")) ? Long.valueOf(baseBean.getPropValue("ltSalary", "base_salary_item_id")) : 0L; - SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(baseSalaryItemId); - if (salaryItemPO == null) { - return ""; + List needRenderFields = Arrays.stream(baseBean.getPropValue("ltSalary", "need_render_fields").split(",")).collect(Collectors.toList()); + Map fieldItemMap = new HashMap<>(); + for (String field : needRenderFields) { + Long itemId = NumberUtils.isCreatable(baseBean.getPropValue("ltSalary", field + "_field_item_id")) ? Long.valueOf(baseBean.getPropValue("ltSalary", field+ "_field_item_id")) : 0L; + fieldItemMap.put(field, itemId); + } + List salaryItemPOList = getSalaryItemService(user).listByIds(fieldItemMap.values()); + if (CollectionUtils.isEmpty(salaryItemPOList)) { + return resultMap; } // 获取当前生效的基本工资 - List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(salaryArchiveId, Collections.singletonList(baseSalaryItemId)); + List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(salaryArchiveId, fieldItemMap.values().stream().collect(Collectors.toList())); if (CollectionUtils.isEmpty(effectiveSalaryItems)) { - return ""; + return resultMap; } - return effectiveSalaryItems.get(0).getItemValue(); + + for (Map.Entry entry : fieldItemMap.entrySet()) { + Optional optional = effectiveSalaryItems.stream().filter(f -> f.getSalaryItemId().equals(entry.getValue())).findFirst(); + if (optional.isPresent()) { + resultMap.put(entry.getKey(), optional.get().getItemValue()); + } + } + + return resultMap; } } diff --git a/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java b/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java index 728dd1a7a..5837a682c 100644 --- a/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java @@ -514,7 +514,11 @@ public class SalaryCbsInfoServiceImpl extends Service implements com.engine.sala }); } - return resultList; + // 过滤pushvalue为0 + return resultList.stream().filter(salaryCbsInfoPO -> { + return NumberUtils.isCreatable(salaryCbsInfoPO.getPushValue()) + && new BigDecimal(salaryCbsInfoPO.getPushValue()).compareTo(new BigDecimal("0")) != 0; + }).collect(Collectors.toList()); } @Override diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 048c12a76..f1feff148 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -1077,7 +1077,7 @@ public class SalaryArchiveController { @Produces(MediaType.APPLICATION_JSON) public String getBaseSalary(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LtSalaryYsWorkflowQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryArchiveWrapper(user)::getBaseSalary, queryParam); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::getBaseSalary, queryParam); } } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index ee70d8cc7..d87f297cb 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -677,7 +677,7 @@ public class SalaryArchiveWrapper extends Service { * * @param queryParam */ - public String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) { + public Map getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) { return getSalaryArchiveService(user).getBaseSalary(queryParam); } }