替换listAllTaxAgents方法

This commit is contained in:
钱涛 2025-02-14 14:50:54 +08:00
parent 3d0aff3f1d
commit 32be67e022
5 changed files with 20 additions and 16 deletions

View File

@ -399,8 +399,10 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
} else {
salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
}
Set<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID())
.stream().map(TaxAgentPO::getId).collect(Collectors.toSet());
TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
param.setFilterType(AuthFilterTypeEnum.QUERY_DATA);
Set<Long> taxAgentIds = getTaxAgentService(user).listAuth(param).stream().map(TaxAgentPO::getId).collect(Collectors.toSet());
return salaryItems.stream()
.filter(e -> e.getUseInEmployeeSalary() == 1)
.filter(e-> getSalaryItemService(user).filterInRange(taxAgentIds, e))

View File

@ -22,6 +22,7 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
@ -313,11 +314,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return;
}
// 当前可以管辖的人员
Collection<TaxAgentPO> taxAgentList = new ArrayList<>();
if (currentEmployeeId != 1L) {
taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId);
Collection<TaxAgentPO> finalTaxAgentList = taxAgentList;
taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList());
TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA);
Collection<TaxAgentPO> taxAgentList =getTaxAgentService(user).listAuth(param);
taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> taxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) {
return;
}

View File

@ -12,7 +12,6 @@ import com.engine.salary.entity.salaryarchive.dto.SingleSalaryItemAdjustRecordLi
import com.engine.salary.entity.salaryarchive.param.*;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.auth.AuthFilterTypeEnum;
@ -102,11 +101,8 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt
columns.add(SalaryI18nUtil.getI18nLabel(85434, "调整后"));
// 获取所有可被引用的薪资项目
List<SalaryItemPO> salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems();
Set<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID())
.stream().map(TaxAgentPO::getId)
.collect(Collectors.toSet());
List<Map<String, Object>> salaryItems = salaryItemList.stream()
.filter(po -> getSalaryItemService(user).filterInRange(taxAgentIds, po))
.map(m -> {
Map<String, Object> salaryItemMap = new LinkedHashMap<>();
salaryItemMap.put("id", String.valueOf(m.getId()));

View File

@ -15,7 +15,9 @@ import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO;
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.auth.AuthFilterTypeEnum;
import com.engine.salary.service.*;
import com.engine.salary.service.impl.*;
import com.engine.salary.util.SalaryEntityUtil;
@ -77,9 +79,10 @@ public class SalarySobItemWrapper extends Service {
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByParam(queryParam);
Set<Long> taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID())
.stream().map(TaxAgentPO::getId)
.collect(Collectors.toSet());
TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
param.setFilterType(AuthFilterTypeEnum.QUERY_DATA);
Set<Long> taxAgentIds = getTaxAgentService(user).listAuth(param).stream().map(TaxAgentPO::getId).collect(Collectors.toSet());
salaryItemList = salaryItemList.stream()
.filter(po -> getSalaryItemService(user).filterInRange(taxAgentIds, po))
.collect(Collectors.toList());

View File

@ -14,6 +14,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO;
import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.auth.AuthFilterTypeEnum;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.*;
@ -446,11 +447,12 @@ public class TaxAgentWrapper extends Service {
*/
public String syncRange() {
long currentEmployeeId = (long) user.getUID();
List<Long> taxAgentIds = this.getTaxAgentService(user).listAllTaxAgents(currentEmployeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList());
String index = SalaryCacheKey.TAX_AGENT_MANAGE_RANGE_SYNC + "-" + currentEmployeeId;
String syncRange = Util.null2String(Util_DataCache.getObjVal(index));
if (StringUtils.isEmpty(syncRange)) {
TaxAgentQueryParam param = TaxAgentQueryParam.builder().build();
param.setFilterType(AuthFilterTypeEnum.ADMIN_DATA);
List<Long> taxAgentIds = getTaxAgentService(user).listAuth(param).stream().map(TaxAgentPO::getId).collect(Collectors.toList());
getTaxAgentManageRangeService(user).syncManageRange(taxAgentIds, index);
} else {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(135788, "人员范围同步过于频繁,请稍后再试"));