From eda0c48b3f81c3f67dcc7e8e87d6299281f981bc Mon Sep 17 00:00:00 2001 From: 18154758993 <605281283@qq.com> Date: Wed, 17 Dec 2025 11:10:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=86=85=E5=AE=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlowTaskServiceImpl.java | 105 +++++++++++------- 1 file changed, 63 insertions(+), 42 deletions(-) diff --git a/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java b/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java index 745370e..dda1c40 100644 --- a/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java +++ b/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java @@ -1,43 +1,36 @@ package com.srs.flowable.service.impl; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.TypeReference; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.srs.common.core.domain.AjaxResult; -import com.srs.common.core.domain.entity.SysDept; -import com.srs.common.core.domain.entity.SysRole; -import com.srs.common.core.domain.entity.SysUser; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import javax.annotation.Resource; -import com.srs.common.exception.CustomException; -import com.srs.common.utils.SecurityUtils; -import com.srs.flowable.common.constant.ProcessConstants; -import com.srs.flowable.common.enums.FlowComment; -import com.srs.flowable.domain.dto.FlowCommentDto; -import com.srs.flowable.domain.dto.FlowNextDto; -import com.srs.flowable.domain.dto.FlowTaskDto; -import com.srs.flowable.domain.dto.FlowViewerDto; -import com.srs.flowable.domain.vo.FlowQueryVo; -import com.srs.flowable.domain.vo.FlowTaskVo; -import com.srs.flowable.factory.FlowServiceFactory; -import com.srs.flowable.flow.CustomProcessDiagramGenerator; -import com.srs.flowable.flow.FindNextNodeUtil; -import com.srs.flowable.flow.FlowableUtils; -import com.srs.flowable.service.IFlowTaskService; -import com.srs.flowable.service.ISysDeployFormService; -import com.srs.flowable.service.ISysFormService; -import com.srs.system.domain.SysForm; -import com.srs.system.mapper.SysDeptMapper; -import com.srs.system.service.ISysRoleService; -import com.srs.system.service.ISysUserService; -import com.sun.jna.platform.win32.OaIdl; -import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.EndEvent; +import org.flowable.bpmn.model.FlowElement; +import org.flowable.bpmn.model.FlowNode; +import org.flowable.bpmn.model.MultiInstanceLoopCharacteristics; import org.flowable.bpmn.model.Process; -import org.flowable.bpmn.model.*; +import org.flowable.bpmn.model.SequenceFlow; +import org.flowable.bpmn.model.UserTask; import org.flowable.common.engine.api.FlowableException; import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.engine.ProcessEngineConfiguration; @@ -61,16 +54,37 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.TypeReference; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.srs.common.core.domain.AjaxResult; +import com.srs.common.core.domain.entity.SysDept; +import com.srs.common.core.domain.entity.SysRole; +import com.srs.common.core.domain.entity.SysUser; +import com.srs.common.exception.CustomException; +import com.srs.common.utils.SecurityUtils; +import com.srs.flowable.common.constant.ProcessConstants; +import com.srs.flowable.common.enums.FlowComment; +import com.srs.flowable.domain.dto.FlowCommentDto; +import com.srs.flowable.domain.dto.FlowNextDto; +import com.srs.flowable.domain.dto.FlowTaskDto; +import com.srs.flowable.domain.dto.FlowViewerDto; +import com.srs.flowable.domain.vo.FlowQueryVo; +import com.srs.flowable.domain.vo.FlowTaskVo; +import com.srs.flowable.factory.FlowServiceFactory; +import com.srs.flowable.flow.CustomProcessDiagramGenerator; +import com.srs.flowable.flow.FindNextNodeUtil; +import com.srs.flowable.flow.FlowableUtils; +import com.srs.flowable.service.IFlowTaskService; +import com.srs.flowable.service.ISysDeployFormService; +import com.srs.flowable.service.ISysFormService; +import com.srs.system.domain.SysForm; +import com.srs.system.mapper.SysDeptMapper; +import com.srs.system.service.ISysRoleService; +import com.srs.system.service.ISysUserService; + +import lombok.extern.slf4j.Slf4j; /** * @author Tony @@ -101,6 +115,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if (Objects.isNull(task)) { return AjaxResult.error("任务不存在"); } + try { + Map vars = taskVo.getVariables(); + if (vars != null && vars.containsKey("variables")) { + runtimeService.removeVariable(task.getExecutionId(), "variables"); + } + } catch (Exception ignore) { + } if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables());