From 33a8ecb4f762d3587178b61fb7257f99dfcf33fd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 May 2023 14:17:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=A4=E6=96=AD=E8=83=BD=E5=90=A6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=92=8C=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/component/WeaFormOption.java | 31 +++++++++++++++++++ .../SalaryStatisticsDimensionService.java | 7 +++++ .../SalaryStatisticsDimensionServiceImpl.java | 5 +++ .../SalaryStatisticsReportWrapper.java | 20 ++++++++++++ 4 files changed, 63 insertions(+) diff --git a/src/com/engine/salary/component/WeaFormOption.java b/src/com/engine/salary/component/WeaFormOption.java index 75ec121af..ba01d7c58 100644 --- a/src/com/engine/salary/component/WeaFormOption.java +++ b/src/com/engine/salary/component/WeaFormOption.java @@ -8,16 +8,30 @@ public class WeaFormOption implements Serializable { private String content; private boolean disabled; + private boolean canEdit; + + private boolean canDelete; + public WeaFormOption() { this.disabled = Boolean.FALSE; } public WeaFormOption(String id, String content) { this.disabled = Boolean.FALSE; + this.canEdit = Boolean.TRUE; + this.canDelete = Boolean.TRUE; this.id = id; this.content = content; } + public WeaFormOption(String id, String content, boolean canEdit, boolean canDelete) { + this.disabled = Boolean.FALSE; + this.id = id; + this.content = content; + this.canEdit = canEdit; + this.canDelete = canDelete; + } + public String getId() { return this.id; } @@ -34,6 +48,7 @@ public class WeaFormOption implements Serializable { this.content = content; } + public boolean isDisabled() { return this.disabled; } @@ -41,4 +56,20 @@ public class WeaFormOption implements Serializable { public void setDisabled(boolean disabled) { this.disabled = disabled; } + + public boolean isCanEdit() { + return canEdit; + } + + public void setCanEdit(boolean canEdit) { + this.canEdit = canEdit; + } + + public boolean isCanDelete() { + return canDelete; + } + + public void setCanDelete(boolean canDelete) { + this.canDelete = canDelete; + } } diff --git a/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java b/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java index eb1619b08..7f3dd8b38 100644 --- a/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java +++ b/src/com/engine/salary/report/service/SalaryStatisticsDimensionService.java @@ -65,4 +65,11 @@ public interface SalaryStatisticsDimensionService { * @return */ Map delete(Collection ids); + + /** + * 获取默认薪酬统计维度 + * + * @return + */ + List listAllDefaultDimension(); } diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java index 10008f0b1..865015758 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsDimensionServiceImpl.java @@ -243,4 +243,9 @@ public class SalaryStatisticsDimensionServiceImpl extends Service implements Sal resultMap.put("msg", resultMsg); return resultMap; } + + @Override + public List listAllDefaultDimension() { + return getSalaryStatisticsDimensionMapper().listSome(SalaryStatisticsDimensionPO.builder().isDefault(NumberUtils.INTEGER_ONE).build()); + } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index de401e667..c4f209b75 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -106,6 +106,26 @@ public class SalaryStatisticsReportWrapper extends Service { List salaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAll(); List statsDimOptions = salaryStatisticsDimensions.stream().map(sd -> new WeaFormOption(sd.getId().toString(), sd.getDimName())).collect(Collectors.toList()); + + // 获取默认维度统计 + 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(","))); + statsDimOptions.stream().forEach(option -> { + if (defaultDimensionIds.contains(Long.valueOf(option.getId()))){ + // 默认维度不允许修改、删除 + option.setCanDelete(false); + option.setCanEdit(false); + }else if(haveUsedDimIds.contains(option.getId())){ + // 被薪资统计报表引用的不能删除 + option.setCanEdit(true); + option.setCanDelete(false); + } + }); + // 1.构建基础信息表单 Map weaForm = new HashMap<>(); weaForm.put("statsDimOptions", statsDimOptions); From 32e79597459cbe2ed6986fc9e8e921f5a50ca3af Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 24 May 2023 14:49:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=A4=E6=96=AD=E8=83=BD=E5=90=A6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=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());