档案列表重构

This commit is contained in:
钱涛 2023-02-21 18:05:58 +08:00
parent cb484b8ff9
commit 49cd56e359
2 changed files with 21 additions and 60 deletions

View File

@ -2,6 +2,7 @@ package com.engine.salary.entity.salaryarchive.param;
import com.engine.salary.common.BaseQueryParam;
import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -61,7 +62,7 @@ public class SalaryArchiveQueryParam extends BaseQueryParam {
/**
* 档案状态
* SalaryArchiveStatusEnum
* @see SalaryArchiveStatusEnum
*/
private String archiveStatus;

View File

@ -52,7 +52,6 @@ import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import weaver.file.ImageFileManager;
@ -118,6 +117,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return ServiceUtil.getService(SalaryArchiveItemServiceImpl.class, user);
}
public SalarySobService getSalarySobService(User user) {
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
}
@Override
public SalaryArchivePO getById(Long salaryArchiveId) {
return salaryArchiveMapper.getById(salaryArchiveId);
@ -177,56 +180,36 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId);
//获取管理的人员范围
List<TaxAgentManageRangeEmployeeDTO> taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployeeTree(currentEmployeeId);
Map<Long, List<TaxAgentManageRangeEmployeeDTO.TaxAgentEmployee>> taxAgentEmployeesMap = SalaryEntityUtil.convert2Map(taxAgentEmployeeDTOS, TaxAgentManageRangeEmployeeDTO::getTaxAgentId, TaxAgentManageRangeEmployeeDTO::getEmployeeList);
//排序配置
OrderRuleVO orderRule = getSalarySysConfService(user).orderRule();
queryParam.setOrderRule(orderRule);
List<SalaryArchiveListDTO> list = getSalaryArchiveMapper().list(queryParam);
list = list.stream()
//过滤档案状态
.filter(dto -> {
if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) {
return StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus());
}
return true;
})
.collect(Collectors.toList());
if (needAuth) {
Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId);
//不是管理员看不到数据返回空
if (!adminEnable) {
PageInfo<SalaryArchiveListDTO> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class);
return pageInfo;
}
// 获取作为管理员的所有个税扣缴义务人列表
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId);
Set<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId);
//获取所有薪资档案
List<SalaryArchiveListDTO> list = getSalaryArchiveMapper().list(queryParam);
List<SalaryArchiveListDTO> finalAllArchive = list.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList());
//设置档案状态
finalAllArchive = setSalaryArchiveStatus(taxAgentEmployeesMap, finalAllArchive);
//过滤档案状态
if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) {
finalAllArchive = finalAllArchive.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList());
}
PageInfo<SalaryArchiveListDTO> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class);
pageInfo.setTotal(finalAllArchive.size());
pageInfo.setList(SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), finalAllArchive));
return pageInfo;
} else {
List<SalaryArchiveListDTO> list = getSalaryArchiveMapper().list(queryParam);
//设置档案状态
list = setSalaryArchiveStatus(taxAgentEmployeesMap, list);
//过滤档案状态
if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) {
list = list.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList());
}
PageInfo<SalaryArchiveListDTO> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class);
pageInfo.setTotal(list.size());
pageInfo.setList(SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), list));
return pageInfo;
list = list.stream().filter(dto -> taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList());
}
PageInfo<SalaryArchiveListDTO> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), SalaryArchiveListDTO.class);
pageInfo.setTotal(list.size());
pageInfo.setList(SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), list));
return pageInfo;
}
/**
@ -321,27 +304,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
/**
* 设置档案状态
*
* @param taxAgentEmployeesMap
* @param list
* @return
*/
@NotNull
private List<SalaryArchiveListDTO> setSalaryArchiveStatus(Map<Long, List<TaxAgentManageRangeEmployeeDTO.TaxAgentEmployee>> taxAgentEmployeesMap, Collection<SalaryArchiveListDTO> list) {
list = list.stream().peek(dto -> {
List<TaxAgentManageRangeEmployeeDTO.TaxAgentEmployee> taxAgentEmployees = taxAgentEmployeesMap.get(dto.getTaxAgentId());
Set<Long> employeeIds = SalaryEntityUtil.properties(taxAgentEmployees, TaxAgentManageRangeEmployeeDTO.TaxAgentEmployee::getEmployeeId);
if (employeeIds.contains(dto.getEmployeeId())) {
dto.setArchiveStatus(ArchiveStatusEnum.EFFICIENT.getValue());
} else {
dto.setArchiveStatus(ArchiveStatusEnum.ARCHIVE.getValue());
}
}).collect(Collectors.toList());
return (List) list;
}
@Override
public List<SalaryArchiveListDTO> list(SalaryArchiveQueryParam queryParam) {
long currentEmployeeId = user.getUID();
@ -525,8 +487,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
//过滤档案状态
if (StringUtils.isNotBlank(queryParam.getArchiveStatus())) {
//设置档案状态
salaryArchives = setSalaryArchiveStatus(taxAgentEmployeesMap, salaryArchives);
//过滤档案状态
salaryArchives = salaryArchives.stream().filter(dto -> StringUtils.equals(queryParam.getArchiveStatus(), dto.getArchiveStatus())).collect(Collectors.toList());
}