审批内容修改

This commit is contained in:
2025-12-17 11:10:52 +08:00
parent e91cb96f76
commit eda0c48b3f

View File

@@ -1,43 +1,36 @@
package com.srs.flowable.service.impl; package com.srs.flowable.service.impl;
import com.alibaba.fastjson2.JSON; import java.io.InputStream;
import com.alibaba.fastjson2.JSONObject; import java.lang.reflect.Field;
import com.alibaba.fastjson2.TypeReference; import java.nio.charset.StandardCharsets;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.text.SimpleDateFormat;
import com.srs.common.core.domain.AjaxResult; import java.util.ArrayList;
import com.srs.common.core.domain.entity.SysDept; import java.util.Collection;
import com.srs.common.core.domain.entity.SysRole; import java.util.Date;
import com.srs.common.core.domain.entity.SysUser; 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.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; 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.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.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException; import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.engine.ProcessEngineConfiguration; import org.flowable.engine.ProcessEngineConfiguration;
@@ -61,16 +54,37 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import com.alibaba.fastjson2.JSON;
import java.io.InputStream; import com.alibaba.fastjson2.JSONObject;
import java.lang.reflect.Field; import com.alibaba.fastjson2.TypeReference;
import java.nio.charset.StandardCharsets; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.text.SimpleDateFormat; import com.srs.common.core.domain.AjaxResult;
import java.util.*; import com.srs.common.core.domain.entity.SysDept;
import java.util.concurrent.ConcurrentHashMap; import com.srs.common.core.domain.entity.SysRole;
import java.util.function.Function; import com.srs.common.core.domain.entity.SysUser;
import java.util.function.Predicate; import com.srs.common.exception.CustomException;
import java.util.stream.Collectors; 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 * @author Tony
@@ -101,6 +115,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (Objects.isNull(task)) { if (Objects.isNull(task)) {
return AjaxResult.error("任务不存在"); return AjaxResult.error("任务不存在");
} }
try {
Map<String, Object> vars = taskVo.getVariables();
if (vars != null && vars.containsKey("variables")) {
runtimeService.removeVariable(task.getExecutionId(), "variables");
}
} catch (Exception ignore) {
}
if (DelegationState.PENDING.equals(task.getDelegationState())) { if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables()); taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables());