报表模块分权

This commit is contained in:
钱涛 2024-09-23 14:35:51 +08:00
parent 1bb5dd63fb
commit cc6deee04c
3 changed files with 36 additions and 37 deletions

View File

@ -405,11 +405,6 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
@Override
public PageInfo<Map<String, Object>> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, List<SalaryStatisticsItemPO> salaryStatisticsItemList) {
Map<String, Boolean> checkMap = SalaryStatisticsReportBO.checkLoad(salaryStatisticsItemList);
// 如果一个都没有直接返回
// if (!checkMap.get("isNow")) {
// return new PageInfo<Map<String, Object>>();
// }
// 获取本期报表分权后的核算人员
List<SalaryAcctEmployeePO> list = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(param);

View File

@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service {
if (empDimensionOptional.isPresent()) {
empDimensionId = empDimensionOptional.get();
}
if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) {
//报表中缓存的条件
salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id));
if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) {
Map<String, Object> result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
if (param.getDimensionId().equals(empDimensionId)) {
// 人员维度需要分页
Map<String, Object> finalResultMap = new HashMap<>();
PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>) result.get("pageInfo");
PageInfo<Map<String, Object>> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
finalPageInfo.setTotal(pageInfo.getList().size());
finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList()));
finalResultMap.put("pageInfo", finalPageInfo);
finalResultMap.put("columns", result.get("columns"));
finalResultMap.put("countResult", result.get("countResult"));
finalResultMap.put("reportId", id);
return finalResultMap;
}
return result;
}
}
// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) {
// //报表中缓存的条件
// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id));
// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) {
// Map<String, Object> result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5);
// if (param.getDimensionId().equals(empDimensionId)) {
// // 人员维度需要分页
// Map<String, Object> finalResultMap = new HashMap<>();
// PageInfo<Map<String, Object>> pageInfo = (PageInfo<Map<String, Object>>) result.get("pageInfo");
// PageInfo<Map<String, Object>> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
// finalPageInfo.setTotal(pageInfo.getList().size());
// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList()));
// finalResultMap.put("pageInfo", finalPageInfo);
// finalResultMap.put("columns", result.get("columns"));
// finalResultMap.put("countResult", result.get("countResult"));
// finalResultMap.put("reportId", id);
// return finalResultMap;
// }
//
// return result;
// }
// }
// 列表data

View File

@ -16,9 +16,12 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
import com.engine.salary.entity.salarysob.param.SalarySobQueryParam;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.auth.AuthFilterTypeEnum;
import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
import com.engine.salary.exception.SalaryRunTimeException;
@ -608,15 +611,14 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
// lambdaQueryChainWrapper.setTaxAgentIds(Collections.singletonList(0L));
// }
// 是否是薪酬总管理员
boolean isChief = getTaxAgentService(user).isChief((long) user.getUID());
// 获取能够管理的扣缴义务人
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(Long.valueOf(user.getUID()));
List<Long> canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(param.getTaxAgent())) {
lambdaQueryChainWrapper.setTaxAgentIds(param.getTaxAgent());
} else if (!isChief) {
// 不是薪酬总管理员分权
} else {
TaxAgentQueryParam taxAgentQueryParam = TaxAgentQueryParam.builder().build();
taxAgentQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA);
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAuth(taxAgentQueryParam);
List<Long> canManageTaxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList());
// 分权
if (CollectionUtils.isEmpty(canManageTaxAgentIds)) {
// 无权限
return Collections.emptyList();
@ -626,9 +628,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
if (CollectionUtils.isNotEmpty(param.getSalarySob())) {
lambdaQueryChainWrapper.setSalarySobIds(param.getSalarySob());
} else if (!isChief) {
// 不是薪酬总管理员分权
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentIds(canManageTaxAgentIds);
} else {
// 分权
SalarySobQueryParam salarySobQueryParam = new SalarySobQueryParam();
salarySobQueryParam.setFilterType(AuthFilterTypeEnum.QUERY_DATA);
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listAuth(salarySobQueryParam);
if (CollectionUtils.isEmpty(salarySobPOS)) {
// 无权限
return Collections.emptyList();