From a7d0013e394af2c4eeb23988c7cdfa4d6e4023ec Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 25 Jul 2024 11:09:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B3=95=E8=A7=84=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=BE=85=E5=8A=9E=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fb/service/IProcessHandleService.java | 8 +++++ .../ProcessFbStandardPurchaseServiceImpl.java | 5 +--- .../impl/ProcessHandleServiceImpl.java | 29 +++++++++++++++++-- 3 files changed, 35 insertions(+), 7 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 b2f44923..aa8c2a16 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 @@ -48,8 +48,16 @@ public interface IProcessHandleService { **/ void isMyTask(String taskId); + /** + * @Author: liao + * @Date: 2023/11/6 11:59 + * @Description: 判断Task + **/ + void validTask(String taskId); + /** * 超期判断 + * * @param taskId */ void isOverDue(String taskId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java index e665561a..39cff7c7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java @@ -1,6 +1,5 @@ package com.jero.modules.activiti.process.fb.service.impl; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.dto.message.SendMessageDTO; @@ -176,9 +175,7 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl flowUser = processInfoVO.getUserInfoMap(); String taskId = commonVO.getTaskId(); - if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { - throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS); - } + processHandleService.validTask(taskId); // 获取流程实例ID String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); // 获取流程实例对象 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 a4e2af27..d3965772 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 @@ -305,9 +305,32 @@ 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); - //} + } + + /** + * @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); + } } @Override