..
This commit is contained in:
@@ -260,7 +260,6 @@ public class FlowCommonController {
|
||||
flowEngine.executeProcessTask(processTaskId, operator, args);
|
||||
} else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.RE_APPLY.getCode())) {
|
||||
// 重新提交
|
||||
// args.put(FlowConst.FORM_DATA, args.getStr(FlowConst.FORM_DATA));
|
||||
flowEngine.executeProcessTask(processTaskId, operator, args);
|
||||
} else {
|
||||
// 默认执行
|
||||
|
||||
@@ -89,6 +89,7 @@ public class FlowEngineImpl implements FlowEngine {
|
||||
}
|
||||
// 2. 将流程定义文件转成流程模型
|
||||
ProcessModel processModel = processDefineService.processDefineToModel(processDefine);
|
||||
|
||||
// 3. 根据流程定义对象创建流程实例
|
||||
ProcessInstance processInstance = processInstanceService.createProcessInstance(processDefine, businessKey, operator, args, parentId, parentNodeName);
|
||||
args.set(FlowConst.PROCESS_INSTANCE_ID_KEY, processInstance.getId());
|
||||
|
||||
@@ -28,6 +28,7 @@ public class CountersignHandler implements IHandler {
|
||||
boolean isMerged = false;
|
||||
String countersignType = taskModel.getExt().get("countersignType","PARALLEL");
|
||||
String countersignCompletionCondition = taskModel.getExt().get("countersignCompletionCondition","");
|
||||
countersignCompletionCondition = taskModel.getCountersignCompletionCondition();
|
||||
String prefix = FlowConst.COUNTERSIGN_VARIABLE_PREFIX +taskModel.getName()+"_";
|
||||
// 会签办理人列表
|
||||
List<String> operatorList = Convert.toList(String.class,execution.getArgs().get(prefix+FlowConst.COUNTERSIGN_OPERATOR_LIST));
|
||||
|
||||
@@ -460,7 +460,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl<ProcessInstance>
|
||||
addVariable.put(prefix + FlowConst.NR_OF_COMPLETED_INSTANCES, execution.getArgs().get(prefix + FlowConst.NR_OF_COMPLETED_INSTANCES));
|
||||
// 更新会签操作人列表countersignOperatorList
|
||||
addVariable.put(prefix + FlowConst.COUNTERSIGN_OPERATOR_LIST, taskActors);
|
||||
ProcessInstanceService processInstanceService = SpringUtil.getBean(ProcessInstanceService.class);
|
||||
ProcessInstanceService processInstanceService = ServiceContext.find(ProcessInstanceService.class);
|
||||
processInstanceService.addVariable(processInstanceId, addVariable);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
@@ -15,6 +14,7 @@ import com.budwk.app.base.vo.LabelValueVO;
|
||||
import com.budwk.app.flow.constant.FlowConst;
|
||||
import com.budwk.app.flow.engine.AssignmentHandler;
|
||||
import com.budwk.app.flow.engine.core.Execution;
|
||||
import com.budwk.app.flow.engine.core.ServiceContext;
|
||||
import com.budwk.app.flow.engine.event.ProcessEvent;
|
||||
import com.budwk.app.flow.engine.event.ProcessPublisher;
|
||||
import com.budwk.app.flow.engine.model.CustomModel;
|
||||
@@ -179,13 +179,10 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl<ProcessTask> impleme
|
||||
// 增加是否为第一个任务节点标识
|
||||
execution.getArgs().put(FlowConst.IS_FIRST_TASK_NODE, FlowUtil.isFistTaskName(execution.getProcessModel(), taskModel.getName()));
|
||||
//过滤上个任务的表单数据 避免造成污染 每个任务只保存自己的表单数据
|
||||
Dict cleanArgs = Dict.create();
|
||||
execution.getArgs().forEach((k, v) -> {
|
||||
if (!k.startsWith(FlowConst.TASK_FORM_DATA_PREFIX)) {
|
||||
cleanArgs.set(k, v);
|
||||
}
|
||||
});
|
||||
execution.setArgs(cleanArgs);
|
||||
List<String> removeKeys = execution.getArgs().keySet().stream().filter(k -> k.startsWith(FlowConst.TASK_FORM_DATA_PREFIX) || k.equals(FlowConst.SUBMIT_TYPE) || k.startsWith(FlowConst.COUNTERSIGN_VARIABLE_PREFIX)).toList();
|
||||
for (String key : removeKeys) {
|
||||
execution.getArgs().remove(key);
|
||||
}
|
||||
|
||||
processTask.setVariable(JSONUtil.toJsonStr(execution.getArgs()));
|
||||
processTask.setCreatedAt(now);
|
||||
@@ -367,6 +364,7 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl<ProcessTask> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public List<ProcessTask> createCountersignTask(TaskModel taskModel, Execution execution) {
|
||||
List<ProcessTask> processTaskList = new ArrayList<>();
|
||||
List<String> taskActors = getTaskActors(taskModel, execution);
|
||||
@@ -399,7 +397,15 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl<ProcessTask> impleme
|
||||
processTask.setTaskState(ProcessTaskStateEnum.DOING.getCode());
|
||||
processTask.setTaskType(taskModel.getTaskType().getCode());
|
||||
processTask.setProcessInstanceId(execution.getProcessInstanceId());
|
||||
|
||||
// 增加是否为第一个任务节点标识
|
||||
execution.getArgs().put(FlowConst.IS_FIRST_TASK_NODE, FlowUtil.isFistTaskName(execution.getProcessModel(), taskModel.getName()));
|
||||
//过滤上个任务的表单数据 避免造成污染 每个任务只保存自己的表单数据
|
||||
List<String> removeKeys = execution.getArgs().keySet().stream().filter(k -> k.startsWith(FlowConst.TASK_FORM_DATA_PREFIX) || k.equals(FlowConst.SUBMIT_TYPE) || k.startsWith(FlowConst.COUNTERSIGN_VARIABLE_PREFIX)).toList();
|
||||
for (String key : removeKeys) {
|
||||
execution.getArgs().remove(key);
|
||||
}
|
||||
|
||||
processTask.setVariable(JSONUtil.toJsonStr(execution.getArgs()));
|
||||
processTask.setCreatedAt(now);
|
||||
processTask.setUpdatedAt(now);
|
||||
@@ -414,7 +420,7 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl<ProcessTask> impleme
|
||||
processTaskList.add(processTask);
|
||||
addTaskActor(processTask.getId(), CollectionUtil.newArrayList(taskActor));
|
||||
});
|
||||
ProcessInstanceService processInstanceService = SpringUtil.getBean(ProcessInstanceService.class);
|
||||
ProcessInstanceService processInstanceService = ServiceContext.find(ProcessInstanceService.class);
|
||||
// 更新会签变量到流程实例参数中
|
||||
processInstanceService.updateCountersignVariable(taskModel, execution, taskActors);
|
||||
return processTaskList;
|
||||
|
||||
Reference in New Issue
Block a user