Browse Source

解决bug

dzx 1 year ago
parent
commit
bfdb2e7bbe

+ 12 - 1
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -195,12 +195,14 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -1490,6 +1492,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             for (Session session : sessionList) {
                 session.getConnection().setAutoCommit(Boolean.FALSE);
                 session.commit();
+                session.close();
             }
 
             HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(dto.getProcessId()).singleResult();
@@ -1615,7 +1618,15 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         if (taskIds.size() > 0) {
 
             List<WorkflowExtra> workflowExtras = workflowExtraMapper.selectList(Wrappers.lambdaQuery(WorkflowExtra.class).in(WorkflowExtra::getTaskId, taskIds));
-
+            Set<String> processIds = new HashSet<>();
+            for (WorkflowExtra workflowExtra : workflowExtras) {
+                processIds.add(workflowExtra.getProcessId());
+            }
+            formTemplateMapper.selectList(
+                new MPJLambdaWrapper<FormTemplate>()
+                .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormId, FormTemplate::getId)
+                .in(WorkflowFormRelation::getProcessId, processIds)
+            );
             for (Task task : tasks) {
                 PendingTaskVo vo = new PendingTaskVo();
                 Optional<WorkflowExtra> extra = workflowExtras.stream().filter(x -> x.getTaskId().equals(task.getId())).findFirst();