diff --git a/pom.xml b/pom.xml
index 6ed2b474a..b5b5e5134 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
8.0.20
2.0.0
3.7.1
+ 3.2.5
@@ -93,6 +94,11 @@
arthas-spring-boot-starter
${arthas.version}
+
+ org.apache.maven
+ maven-artifact
+ ${apache-maven.version}
+
diff --git a/workflow-engine-core/pom.xml b/workflow-engine-core/pom.xml
index 04373cbac..06a2196bc 100644
--- a/workflow-engine-core/pom.xml
+++ b/workflow-engine-core/pom.xml
@@ -84,6 +84,9 @@
cn.axzo.workflow
workflow-engine-common
-
+
+ org.apache.maven
+ maven-artifact
+
diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmnHistoricTaskInstanceConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmnHistoricTaskInstanceConverter.java
index fe15ea79f..6694746db 100644
--- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmnHistoricTaskInstanceConverter.java
+++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmnHistoricTaskInstanceConverter.java
@@ -1,7 +1,10 @@
package cn.axzo.workflow.core.service.converter;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceVO;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.flowable.task.api.history.HistoricTaskInstance;
+import org.flowable.variable.api.history.HistoricVariableInstance;
+import org.flowable.variable.service.impl.persistence.entity.HistoricVariableInstanceEntityImpl;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.springframework.util.CollectionUtils;
@@ -13,6 +16,7 @@ import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;
+import static cn.axzo.workflow.common.constant.BpmnConstants.FLOW_SERVER_VERSION_130;
import static cn.axzo.workflow.common.constant.BpmnConstants.HIDDEN_ASSIGNEE_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_TASK_ASSIGNEE_SKIP_FLAT;
import static cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum.MI_END;
@@ -47,7 +51,8 @@ public interface BpmnHistoricTaskInstanceConverter extends EntityConverter toVosSkipSystemOperation(List entities) {
+ default List toVosSkipSystemOperation(List entities,
+ HistoricVariableInstance instanceVersion) {
if (CollectionUtils.isEmpty(entities)) {
return Collections.emptyList();
}
@@ -56,7 +61,22 @@ public interface BpmnHistoricTaskInstanceConverter extends EntityConverter !Objects.equals(i.getAssignee(), HIDDEN_ASSIGNEE_ID))
.filter(i -> !Objects.equals(i.getDeleteReason(), HIDDEN_ASSIGNEE_ID))
.filter(i -> !Objects.equals(i.getDeleteReason(), MI_END.getStatus()));
- compatibleVersion(taskInstanceStream).forEach(i -> vos.add(toVo(i)));
+ if (Objects.isNull(instanceVersion)) {
+ compatibleVersion(taskInstanceStream).forEach(i -> vos.add(toVo(i)));
+ } else {
+ if (instanceVersion instanceof HistoricVariableInstanceEntityImpl) {
+ String textValue = ((HistoricVariableInstanceEntityImpl) instanceVersion).getTextValue();
+ DefaultArtifactVersion version = new DefaultArtifactVersion(textValue);
+ DefaultArtifactVersion supportVersion = new DefaultArtifactVersion(FLOW_SERVER_VERSION_130);
+ if (version.compareTo(supportVersion) < 0) {
+ compatibleVersion(taskInstanceStream).forEach(i -> vos.add(toVo(i)));
+ } else {
+ taskInstanceStream.forEach(i -> vos.add(toVo(i)));
+ }
+ } else {
+ taskInstanceStream.forEach(i -> vos.add(toVo(i)));
+ }
+ }
return vos;
}
diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java
index f20c11ed0..1e2360703 100644
--- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java
+++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java
@@ -91,6 +91,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_R
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO;
import static cn.axzo.workflow.common.constant.BpmnConstants.NO_ASSIGNEE;
import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT;
+import static cn.axzo.workflow.common.constant.BpmnConstants.WORKFLOW_ENGINE_VERSION;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.REJECTED;
@@ -317,11 +318,6 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
.list();
taskInstances.forEach(task -> ((HistoricTaskInstanceEntity) task).setCreateTime(((HistoricTaskInstanceEntity) task).getLastUpdateTime()));
taskInstances.sort(Comparator.comparing(p -> ((HistoricTaskInstanceEntity) p).getLastUpdateTime()));
- // 过滤了多实例或签自动完成的任务
- List vos = historicTaskInstanceConverter.toVosSkipSystemOperation(taskInstances);
- Map> commentByTaskIdMap =
- taskService.getProcessInstanceComments(processInstanceId).stream()
- .collect(Collectors.groupingBy(Comment::getTaskId));
Map variableInstanceMap =
// 不能使用框架提供的历史变量 API 查询,有 BUG
@@ -331,6 +327,13 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
.list().stream()
.collect(Collectors.toMap(HistoricVariableInstance::getVariableName, Function.identity(),
(s, t) -> s));
+ HistoricVariableInstance instanceVersion = variableInstanceMap.getOrDefault(WORKFLOW_ENGINE_VERSION, null);
+ // 过滤了多实例或签自动完成的任务
+ List vos = historicTaskInstanceConverter.toVosSkipSystemOperation(taskInstances,
+ instanceVersion);
+ Map> commentByTaskIdMap =
+ taskService.getProcessInstanceComments(processInstanceId).stream()
+ .collect(Collectors.groupingBy(Comment::getTaskId));
Map> attachmentByTaskIdMap =
taskService.getProcessInstanceAttachments(processInstanceId).stream()
diff --git a/workflow-engine-server/pom.xml b/workflow-engine-server/pom.xml
index ca73a29b3..dab288f14 100644
--- a/workflow-engine-server/pom.xml
+++ b/workflow-engine-server/pom.xml
@@ -18,7 +18,6 @@
1.4.2.Final
0.2.0
3.25.0
- 3.2.5
@@ -115,7 +114,6 @@
org.apache.maven
maven-artifact
- ${apache-maven.version}