|
@@ -150,7 +150,7 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
|
|
|
historyService.createHistoricVariableInstanceQuery().taskId(taskId).list().forEach(variableInstance ->
|
|
|
variables.putIfAbsent(variableInstance.getVariableName(), variableInstance.getValue())
|
|
|
);
|
|
|
- historyService.createHistoricVariableInstanceQuery().processInstanceId(task.getProcessInstanceId()).list().forEach(variableInstance ->
|
|
|
+ historyService.createHistoricVariableInstanceQuery().executionId(task.getProcessInstanceId()).list().forEach(variableInstance ->
|
|
|
variables.putIfAbsent(variableInstance.getVariableName(), variableInstance.getValue())
|
|
|
);
|
|
|
} else {
|
|
@@ -161,11 +161,6 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
|
|
|
variables.putIfAbsent(variableInstance.getName(), variableInstance.getValue())
|
|
|
);
|
|
|
}
|
|
|
- Optional<FlowTask> optional = flowTaskDao.lambdaQueryChain()
|
|
|
- .select(FlowTask::getVariables)
|
|
|
- .eq(FlowTask::getId, taskId)
|
|
|
- .oneOpt();
|
|
|
- optional.ifPresent((flowTask) -> variables.putAll(flowTask.getVariables()));
|
|
|
return variables;
|
|
|
}
|
|
|
|
|
@@ -300,21 +295,22 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
|
|
|
public void complete(TaskForm taskForm) {
|
|
|
Task task = this.comment(taskForm);
|
|
|
DelegationState delegationState = task.getDelegationState();
|
|
|
- Map<String, Object> transientVariables = new HashMap<>();
|
|
|
- Map<String, Object> variables = taskService.getVariables(task.getId());
|
|
|
+ Map<String, Object> localVariables = new HashMap<>();
|
|
|
+ Map<String, Object> variables = runtimeService.getVariables(task.getProcessInstanceId());
|
|
|
Map<String, Object> values = taskForm.getValues();
|
|
|
if (CollectionUtils.isNotEmpty(values)) {
|
|
|
values.forEach((key, value) -> {
|
|
|
if (variables.containsKey(key)) {
|
|
|
Object obj = variables.get(key);
|
|
|
if (Objects.nonNull(obj) && !obj.equals(value)) {
|
|
|
- transientVariables.put(key, value);
|
|
|
+ localVariables.put(key, value);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ System.out.println("localVariables = " + localVariables);
|
|
|
String assignee = SecurityContextUtil.getUserId();
|
|
|
if (StringUtils.isNotBlank(assignee)) {
|
|
|
- values.put(String.format("_%s_", assignee), task.getTaskDefinitionKey());
|
|
|
+ localVariables.put(String.format("_%s_", assignee), task.getTaskDefinitionKey());
|
|
|
}
|
|
|
}
|
|
|
if (Objects.nonNull(delegationState) && delegationState == DelegationState.PENDING) {
|
|
@@ -323,6 +319,7 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
|
|
|
values
|
|
|
);
|
|
|
} else {
|
|
|
+ taskService.setVariablesLocal(taskForm.getTaskId(), localVariables);
|
|
|
taskService.complete(
|
|
|
taskForm.getTaskId(),
|
|
|
values
|
|
@@ -330,7 +327,7 @@ public class FlowTaskServiceImpl extends BaseServiceImpl<FlowTaskDao, FlowTask>
|
|
|
this.updateStatus(
|
|
|
taskForm.getTaskId(),
|
|
|
ProcessStatus.COMPLETED,
|
|
|
- transientVariables
|
|
|
+ localVariables
|
|
|
);
|
|
|
}
|
|
|
}
|