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);