审批内容修改

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;
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<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())) {
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables());