维度统计管理判断能否删除和编辑-2

This commit is contained in:
Harryxzy 2023-05-24 14:49:39 +08:00
parent 33a8ecb4f7
commit 32e7959745
2 changed files with 45 additions and 7 deletions

View File

@ -39,4 +39,10 @@ public class SalaryStatisticsDimensionListDTO {
//是否默认")
@JsonIgnore
private Integer isDefault;
// 能否删除
private boolean canDelete;
// 能否编辑
private boolean canEdit;
}

View File

@ -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<SalaryStatisticsDimensionPO> page = salaryStatisticsDimensionService(user).listPage(queryParam);
List<SalaryStatisticsDimensionPO> list = page.getList();
List<SalaryStatisticsDimensionListDTO> dtoList= new ArrayList<>();
// 获取默认维度统计
List<SalaryStatisticsDimensionPO> defaultSalaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAllDefaultDimension();
List<Long> defaultDimensionIds = defaultSalaryStatisticsDimensions.stream().map(SalaryStatisticsDimensionPO::getId).collect(Collectors.toList());
// 获取有薪资统计报表引用的统计维度
Set<String> haveUsedDimIds = new HashSet<>();
List<SalaryStatisticsReportPO> 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<SalaryStatisticsDimensionListDTO> salaryStatisticsDimensionListDTOPageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize());