Merge branch 'fix/statisticsEditDelete' into release/2.8.3.2306.01

This commit is contained in:
Harryxzy 2023-06-12 15:38:03 +08:00
commit d303110737
6 changed files with 108 additions and 7 deletions

View File

@ -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;
}
}

View File

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

View File

@ -65,4 +65,11 @@ public interface SalaryStatisticsDimensionService {
* @return
*/
Map<String, Object> delete(Collection<Long> ids);
/**
* 获取默认薪酬统计维度
*
* @return
*/
List<SalaryStatisticsDimensionPO> listAllDefaultDimension();
}

View File

@ -243,4 +243,9 @@ public class SalaryStatisticsDimensionServiceImpl extends Service implements Sal
resultMap.put("msg", resultMsg);
return resultMap;
}
@Override
public List<SalaryStatisticsDimensionPO> listAllDefaultDimension() {
return getSalaryStatisticsDimensionMapper().listSome(SalaryStatisticsDimensionPO.builder().isDefault(NumberUtils.INTEGER_ONE).build());
}
}

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

View File

@ -127,6 +127,26 @@ public class SalaryStatisticsReportWrapper extends Service {
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAll();
List<WeaFormOption> statsDimOptions = salaryStatisticsDimensions.stream().map(sd -> new WeaFormOption(sd.getId().toString(), sd.getDimName())).collect(Collectors.toList());
// 获取默认维度统计
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(",")));
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<String, Object> weaForm = new HashMap<>();
weaForm.put("statsDimOptions", statsDimOptions);