From 32e79597459cbe2ed6986fc9e8e921f5a50ca3af Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 May 2023 14:49:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E7=BB=9F=E8=AE=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=88=A4=E6=96=AD=E8=83=BD=E5=90=A6=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=92=8C=E7=BC=96=E8=BE=91-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SalaryStatisticsDimensionListDTO.java | 6 +++ .../SalaryStatisticsDimensionWrapper.java | 46 ++++++++++++++++--- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java b/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java index 7d76e822b..f0fb237af 100644 --- a/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java +++ b/src/com/engine/salary/report/entity/dto/SalaryStatisticsDimensionListDTO.java @@ -39,4 +39,10 @@ public class SalaryStatisticsDimensionListDTO { //是否默认") @JsonIgnore private Integer isDefault; + + // 能否删除 + private boolean canDelete; + + // 能否编辑 + private boolean canEdit; } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java index 38046076e..11619c545 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsDimensionWrapper.java @@ -12,9 +12,12 @@ import com.engine.salary.report.entity.dto.SalaryStatisticsDimensionListDTO; import com.engine.salary.report.entity.param.SalaryStatisticsDimensionQueryParam; import com.engine.salary.report.entity.param.SalaryStatisticsDimensionSaveParam; import com.engine.salary.report.entity.po.SalaryStatisticsDimensionPO; +import com.engine.salary.report.entity.po.SalaryStatisticsReportPO; import com.engine.salary.report.enums.SalaryStatisticsDimensionTypeEnum; import com.engine.salary.report.service.SalaryStatisticsDimensionService; +import com.engine.salary.report.service.SalaryStatisticsReportService; import com.engine.salary.report.service.impl.SalaryStatisticsDimensionServiceImpl; +import com.engine.salary.report.service.impl.SalaryStatisticsReportServiceImpl; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.impl.SalaryItemServiceImpl; import com.engine.salary.util.JsonUtil; @@ -47,6 +50,14 @@ public class SalaryStatisticsDimensionWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SalaryStatisticsDimensionService getSalaryStatisticsDimensionService(User user) { + return ServiceUtil.getService(SalaryStatisticsDimensionServiceImpl.class, user); + } + + private SalaryStatisticsReportService getSalaryStatisticsReportService(User user) { + return ServiceUtil.getService(SalaryStatisticsReportServiceImpl.class, user); + } + /** * 薪酬统计维度列表 * @@ -57,14 +68,35 @@ public class SalaryStatisticsDimensionWrapper extends Service { PageInfo page = salaryStatisticsDimensionService(user).listPage(queryParam); List list = page.getList(); List dtoList= new ArrayList<>(); + + // 获取默认维度统计 + List defaultSalaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAllDefaultDimension(); + List defaultDimensionIds = defaultSalaryStatisticsDimensions.stream().map(SalaryStatisticsDimensionPO::getId).collect(Collectors.toList()); + // 获取有薪资统计报表引用的统计维度 + Set haveUsedDimIds = new HashSet<>(); + List salaryStatisticsReports = getSalaryStatisticsReportService(user).listAll(); + salaryStatisticsReports.stream().forEach(report -> Collections.addAll(haveUsedDimIds, report.getDimension().split(","))); if (CollectionUtils.isNotEmpty(list)) { - dtoList = list.stream().map(m -> SalaryStatisticsDimensionListDTO.builder() - .id(m.getId()) - .dimName(m.getDimName()) - .remark(m.getRemark()) - .dimType(SalaryStatisticsDimensionTypeEnum.getDefaultLabelByValue(m.getDimType())) - .isDefault(m.getIsDefault()) - .build()).collect(Collectors.toList()); + list.stream().forEach(m -> { + SalaryStatisticsDimensionListDTO dto = SalaryStatisticsDimensionListDTO.builder() + .id(m.getId()) + .dimName(m.getDimName()) + .remark(m.getRemark()) + .dimType(SalaryStatisticsDimensionTypeEnum.getDefaultLabelByValue(m.getDimType())) + .isDefault(m.getIsDefault()) + .canEdit(true) + .canDelete(true) + .build(); + if (defaultDimensionIds.contains(dto.getId())){ + // 默认维度不允许修改、删除 + dto.setCanEdit(false); + dto.setCanDelete(false); + }else if(haveUsedDimIds.contains(dto.getId().toString())){ + // 被薪资统计报表引用的不能删除 + dto.setCanDelete(false); + } + dtoList.add(dto); + }); } PageInfo salaryStatisticsDimensionListDTOPageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize());