fix: 法规采购流程待办权限校验

This commit is contained in:
2024-07-25 11:09:00 +08:00
parent 2a44fc0d2e
commit a7d0013e39
3 changed files with 35 additions and 7 deletions
@@ -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);
@@ -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<ProcessFbS
CommonVO commonVO = this.transferCommonVo(processInfoVO);
Map<String, Object> 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);
// 获取流程实例对象
@@ -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<ProcessApprovalRecord> 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