diff --git a/blade-service/blade-flow/src/main/java/org/springblade/flowable/business/service/impl/FlowBusinessServiceImpl.java b/blade-service/blade-flow/src/main/java/org/springblade/flowable/business/service/impl/FlowBusinessServiceImpl.java index 2ada83b0..b965893a 100644 --- a/blade-service/blade-flow/src/main/java/org/springblade/flowable/business/service/impl/FlowBusinessServiceImpl.java +++ b/blade-service/blade-flow/src/main/java/org/springblade/flowable/business/service/impl/FlowBusinessServiceImpl.java @@ -235,10 +235,6 @@ public class FlowBusinessServiceImpl implements FlowBusinessService { flow.setExecutionId(task.getExecutionId()); flow.setVariables(task.getProcessVariables()); - ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult(); - flow.setCategory(processDefinition.getCategory()); - flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); - HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId()); if (Func.isNotEmpty(historicProcessInstance)) { String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); @@ -246,11 +242,13 @@ public class FlowBusinessServiceImpl implements FlowBusinessService { flow.setBusinessId(businessKey[1]); } - ProcessDefinition pd = FlowCache.getProcessDefinition(task.getProcessDefinitionId()); - flow.setProcessDefinitionId(pd.getId()); - flow.setProcessDefinitionName(pd.getName()); - flow.setProcessDefinitionKey(pd.getKey()); - flow.setProcessDefinitionVersion(pd.getVersion()); + ProcessDefinition processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId()); + flow.setCategory(processDefinition.getCategory()); + flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + flow.setProcessDefinitionId(processDefinition.getId()); + flow.setProcessDefinitionName(processDefinition.getName()); + flow.setProcessDefinitionKey(processDefinition.getKey()); + flow.setProcessDefinitionVersion(processDefinition.getVersion()); flow.setProcessInstanceId(task.getProcessInstanceId()); flow.setStatus(status); flowList.add(flow); diff --git a/blade-service/blade-flow/src/main/java/org/springblade/flowable/engine/utils/FlowCache.java b/blade-service/blade-flow/src/main/java/org/springblade/flowable/engine/utils/FlowCache.java index 9da3293a..e6c52c7b 100644 --- a/blade-service/blade-flow/src/main/java/org/springblade/flowable/engine/utils/FlowCache.java +++ b/blade-service/blade-flow/src/main/java/org/springblade/flowable/engine/utils/FlowCache.java @@ -54,14 +54,14 @@ public class FlowCache { * @return */ public static ProcessDefinition getProcessDefinition(String processDefinitionId) { - ProcessDefinition pd = CacheUtil.get(FLOW_CACHE, FLOW_CACHE_ID_ + processDefinitionId, ProcessDefinition.class); - if (Func.isEmpty(pd)) { - pd = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult(); - if (Func.isNotEmpty(pd)) { - CacheUtil.put(FLOW_CACHE, FLOW_CACHE_ID_ + processDefinitionId, pd); + ProcessDefinition processDefinition = CacheUtil.get(FLOW_CACHE, FLOW_CACHE_ID_ + processDefinitionId, ProcessDefinition.class); + if (Func.isEmpty(processDefinition)) { + processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult(); + if (Func.isNotEmpty(processDefinition)) { + CacheUtil.put(FLOW_CACHE, FLOW_CACHE_ID_ + processDefinitionId, processDefinition); } } - return pd; + return processDefinition; } /**