From b961564c101a485e2548ca14f9e22f488d2ef83f Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 25 Jul 2024 11:29:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20scc=E6=B5=81=E7=A8=8B=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=A2=9E=E5=8A=A0=E6=B0=B4=E5=B9=B3=E8=B6=8A?= =?UTF-8?q?=E6=9D=83=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fb/service/IProcessHandleService.java | 7 ++++ .../impl/ProcessHandleServiceImpl.java | 40 +++++++++++++++++-- ...essStandardComplianceCheckServiceImpl.java | 11 ++--- 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java index 1248a0e0..7eae8e85 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java @@ -41,6 +41,13 @@ public interface IProcessHandleService { **/ void isMyTask(String taskId); + /** + * @Author: liao + * @Date: 2023/11/6 11:59 + * @Description: 判断Task + **/ + void validTask(String taskId); + /** * @Author: liao * @Date: 2023/11/6 14:22 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index b351cebb..0cff3294 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -257,9 +257,43 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { if (Objects.isNull(task)) { throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); } - //if (!CurrentUserUtil.getId().equals(task.getAssignee())) { - // throw new JeroBootException(ResultCommon.NO_PERMISSION); - //} + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessApprovalRecord::getTaskId, taskId); + ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(lambdaQueryWrapper, false); + if (!CurrentUserUtil.getId().equals(processApprovalRecord.getUserId())) { + throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); + } + String curUserId = CurrentUserUtil.getId(); + if (!curUserId.equals(processApprovalRecord.getUserId())) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } + } + + + /** + * @Author: liao + * @Date: 2023/11/6 12:00 + * @Description: 判断是否是自己的任务 + **/ + @Override + public void validTask(String taskId) { + if (StringUtils.isBlank(taskId)) { + throw new JeroBootException(ResultCommon.EMPTY_COMMON, "taskId"); + } + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (Objects.isNull(task)) { + throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProcessApprovalRecord::getTaskId, taskId); + ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(lambdaQueryWrapper, false); + if (!CurrentUserUtil.getId().equals(processApprovalRecord.getUserId())) { + throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); + } + String curUserId = CurrentUserUtil.getId(); + if (!curUserId.equals(processApprovalRecord.getUserId())) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index 755bda86..6658807d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -217,9 +217,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl processInfoVO) { BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); String taskId = processTask.getTaskId(); - // 获取task - if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { - throw new JeroBootException("taskId为空或任务不存在"); - } + // 校验是否有权限操作此待办 + processHandleService.validTask(taskId); // 获取当前节点的id ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); String xmlNodeId = record.getNodeId();