From 173b18d707012f700138f8da8d08da5ecbb2ed1d Mon Sep 17 00:00:00 2001 From: zhaokai Date: Sat, 7 Mar 2026 15:11:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(training):=20=E6=B7=BB=E5=8A=A0=E6=8C=89?= =?UTF-8?q?=E8=AE=B0=E5=BD=95ID=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E7=94=B3=E8=AF=B7=E5=AE=A1=E6=89=B9=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../training/TrainingApplyRecordQueryExe.java | 30 ++++++++++++++----- .../TrainingApplyProcessRepositoryImpl.java | 7 +++++ .../TrainingApplyProcessRepository.java | 1 + 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyRecordQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyRecordQueryExe.java index 477e2c3..b5c9bb8 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyRecordQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/training/TrainingApplyRecordQueryExe.java @@ -1,5 +1,6 @@ package com.zcloud.edu.command.query.training; +import cn.hutool.core.collection.CollUtil; import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.command.convertor.training.TrainingApplyProcessCoConvertor; import com.zcloud.edu.command.convertor.training.TrainingApplyRecordCoConvertor; @@ -26,7 +27,7 @@ import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; - +import java.util.stream.Collectors; /** @@ -68,18 +69,33 @@ public class TrainingApplyRecordQueryExe { PageResponse pageResponse = trainingApplyRecordRepository.listPageSql(params); List examCenterCOS = trainingApplyRecordCoConvertor.converDOsToCOs(pageResponse.getData()); + if(CollUtil.isEmpty(examCenterCOS)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + //获取所有委托人 + List recordIdList = examCenterCOS.stream().map(TrainingApplyRecordCO::getTrainingApplyRecordId).collect(Collectors.toList()); + List trainingApplyProcessDOs = trainingApplyProcessRepository.getApproveDetailListByRecordIdList(recordIdList); + //按照recordId分组 + Map> trainingApplyProcessDOMap = trainingApplyProcessDOs.stream() + .collect(Collectors.groupingBy(TrainingApplyProcessDO::getTrainingApplyRecordId)); + + boolean isCorrectCorp = corpInfoRepository.checkCorp(); //只有审批人和审批人的企业能进行审批 examCenterCOS.forEach(info->{ - //只有审批人和审批人的企业能进行审批 - boolean isCorrectCorp = corpInfoRepository.checkCorp(); - boolean hasApprovalPermission = isCorrectCorp - ? AuthContext.getTenantId().equals(info.getApprovalCorpinfoId()) - : AuthContext.getUserId().equals(info.getApprovalUserId()); + //只有审批人和审批人的企业能进行审批 ,还有委托人 + boolean hasApprovalPermission; + if (isCorrectCorp) { + //企业审批人:比较企业 ID + hasApprovalPermission = AuthContext.getTenantId().equals(info.getApprovalCorpinfoId()); + } else { + //委托人:检查是否在审批流程中 + List processList = trainingApplyProcessDOMap.get(info.getTrainingApplyRecordId()); + hasApprovalPermission = processList != null && processList.contains(AuthContext.getUserId()); + } if (hasApprovalPermission) { info.setIsApproval(true); } - }); diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyProcessRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyProcessRepositoryImpl.java index 71fe04b..bac89b1 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyProcessRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/TrainingApplyProcessRepositoryImpl.java @@ -56,5 +56,12 @@ public class TrainingApplyProcessRepositoryImpl extends BaseRepositoryImpl getApproveDetailList(String trainingApplyRecordId) { return trainingApplyProcessMapper.selectApproveDetailList(trainingApplyRecordId); } + + @Override + public List getApproveDetailListByRecordIdList(List recordIdList) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("training_apply_record_id", recordIdList); + return trainingApplyProcessMapper.selectList(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyProcessRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyProcessRepository.java index c53803d..73c7d6a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyProcessRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/training/TrainingApplyProcessRepository.java @@ -30,5 +30,6 @@ public interface TrainingApplyProcessRepository extends BaseRepository getApproveDetailList(String trainingApplyRecordId); + List getApproveDetailListByRecordIdList(List recordIdList); }