|
@@ -28,11 +28,11 @@ public class DeleteTaskExecutionCmd implements Command<Void> {
|
|
|
|
|
|
@Override
|
|
|
public Void execute(CommandContext commandContext) {
|
|
|
- ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration();
|
|
|
+ ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(commandContext);
|
|
|
ManagementService managementService = processEngineConfiguration.getManagementService();
|
|
|
- ActivityInstanceEntityManager activityInstanceEntityManager = processEngineConfiguration.getActivityInstanceEntityManager();
|
|
|
MultiInstanceLoopCharacteristics loopCharacteristics = managementService.executeCommand(new GetLoopCharacteristicsCmd(this.task.getProcessInstanceId(), this.task.getTaskDefinitionKey()));
|
|
|
if (Objects.nonNull(loopCharacteristics)) {
|
|
|
+ ActivityInstanceEntityManager activityInstanceEntityManager = processEngineConfiguration.getActivityInstanceEntityManager();
|
|
|
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
|
|
|
TaskService taskService = processEngineConfiguration.getTaskService();
|
|
|
String collectionName = loopCharacteristics.getInputDataItem();
|
|
@@ -53,16 +53,14 @@ public class DeleteTaskExecutionCmd implements Command<Void> {
|
|
|
Integer loopCounter = runtimeService.getVariableLocal(this.task.getExecutionId(), "loopCounter", Integer.class);
|
|
|
if (assigneeList.subList(loopCounter, assigneeList.size() - 1).contains(this.assignee)) {
|
|
|
// 减签已开始人员
|
|
|
- List<Task> deleteTasks = taskService.createTaskQuery()
|
|
|
+ Task deleteTask = taskService.createTaskQuery()
|
|
|
.processInstanceId(this.task.getProcessInstanceId())
|
|
|
.taskDefinitionKey(this.task.getTaskDefinitionKey())
|
|
|
.taskAssignee(this.assignee)
|
|
|
- .list();
|
|
|
- for (Task deleteTask : deleteTasks) {
|
|
|
- runtimeService.deleteMultiInstanceExecution(deleteTask.getExecutionId(), true);
|
|
|
- ActivityInstanceEntity activityInstanceEntity = activityInstanceEntityManager.findActivityInstanceByTaskId(deleteTask.getId());
|
|
|
- activityInstanceEntityManager.delete(activityInstanceEntity);
|
|
|
- }
|
|
|
+ .singleResult();
|
|
|
+ runtimeService.deleteMultiInstanceExecution(deleteTask.getExecutionId(), true);
|
|
|
+ ActivityInstanceEntity activityInstanceEntity = activityInstanceEntityManager.findActivityInstanceByTaskId(deleteTask.getId());
|
|
|
+ managementService.executeCommand(new DeleteActivityEntityCmd(activityInstanceEntity.getId()));
|
|
|
} else {
|
|
|
// 减签未开始人员
|
|
|
Integer nrOfInstances = runtimeService.getVariableLocal(miExecution.getId(), "nrOfInstances", Integer.class);
|
|
@@ -87,7 +85,7 @@ public class DeleteTaskExecutionCmd implements Command<Void> {
|
|
|
for (Task deleteTask : deleteTasks) {
|
|
|
runtimeService.deleteMultiInstanceExecution(deleteTask.getExecutionId(), false);
|
|
|
ActivityInstanceEntity activityInstanceEntity = activityInstanceEntityManager.findActivityInstanceByTaskId(deleteTask.getId());
|
|
|
- activityInstanceEntityManager.delete(activityInstanceEntity);
|
|
|
+ managementService.executeCommand(new DeleteActivityEntityCmd(activityInstanceEntity.getId()));
|
|
|
}
|
|
|
}
|
|
|
assigneeList.remove(this.assignee);
|