From 54eccf5ce3e2129d7d36fe661a85da65b7101556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 3 Jun 2024 22:44:29 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E6=8A=84=E9=80=81?= =?UTF-8?q?=E5=90=8E=E6=9C=89=E5=A4=9A=E6=9D=A1=E8=AE=B0=E5=BD=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA=E9=94=99=E8=AF=AF=20fix=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20=E8=B0=83=E6=95=B4=E6=A8=A1=E5=9E=8B=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E9=94=99=E8=AF=AF=20add=20=E5=A2=9E=E5=8A=A0=20?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=AE=B0=E5=BD=95=E7=89=88=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bpmn/模型.zip | Bin 8407 -> 8543 bytes .../api/domain/RemoteWorkflowService.java | 8 +++ .../workflow/domain/vo/ActHistoryInfoVo.java | 4 ++ .../dubbo/RemoteWorkflowServiceImpl.java | 11 ++++ .../workflow/service/WorkflowService.java | 8 +++ .../impl/ActProcessInstanceServiceImpl.java | 48 +++++++++++++----- .../service/impl/WorkflowServiceImpl.java | 24 +++++++-- 7 files changed, 87 insertions(+), 16 deletions(-) diff --git a/bpmn/模型.zip b/bpmn/模型.zip index f232cda1c6a0795d36c4e5fecf4d9e82d1652181..6f30952ab14f0b60dc64674e7eef083141856458 100644 GIT binary patch literal 8543 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 diff --git a/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/domain/RemoteWorkflowService.java b/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/domain/RemoteWorkflowService.java index 6f9af618..140255eb 100644 --- a/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/domain/RemoteWorkflowService.java +++ b/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/domain/RemoteWorkflowService.java @@ -67,4 +67,12 @@ public interface RemoteWorkflowService { */ void setVariablesLocal(String taskId, Map variables); + /** + * 按照业务id查询流程实例id + * + * @param businessKey 业务id + * @return 结果 + */ + String getInstanceIdByBusinessKey(String businessKey); + } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/ActHistoryInfoVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/ActHistoryInfoVo.java index 31b97226..e4c1142a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/ActHistoryInfoVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/ActHistoryInfoVo.java @@ -36,6 +36,10 @@ public class ActHistoryInfoVo implements Serializable { * 流程实例id */ private String processInstanceId; + /** + * 版本 + */ + private Integer version; /** * 开始时间 */ diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java index 79239143..a354b5e2 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java @@ -56,4 +56,15 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService { public void setVariablesLocal(String taskId, Map variables) { workflowService.setVariablesLocal(taskId, variables); } + + /** + * 按照业务id查询流程实例id + * + * @param businessKey 业务id + * @return 结果 + */ + @Override + public String getInstanceIdByBusinessKey(String businessKey) { + return workflowService.getInstanceIdByBusinessKey(businessKey); + } } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java index 111f5d7f..01003055 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/WorkflowService.java @@ -65,4 +65,12 @@ public interface WorkflowService { * @param variables 流程变量 */ void setVariablesLocal(String taskId, Map variables); + + /** + * 按照业务id查询流程实例id + * + * @param businessKey 业务id + * @return 结果 + */ + String getInstanceIdByBusinessKey(String businessKey); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index fd45ef64..e790438b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -33,7 +33,7 @@ import org.dromara.workflow.service.IWfNodeConfigService; import org.dromara.workflow.service.IWfTaskBackNodeService; import org.dromara.workflow.utils.QueryUtils; import org.dromara.workflow.utils.WorkflowUtils; -import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.*; import org.flowable.engine.*; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricProcessInstance; @@ -280,7 +280,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService } } map.put("taskList", taskList); - List historyTaskList = getHistoryTaskList(processInstanceId); + List historyTaskList = getHistoryTaskList(processInstanceId, processInstance.getProcessDefinitionVersion()); map.put("historyList", historyTaskList); InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getResourceName()); xml.append(IoUtil.read(inputStream, StandardCharsets.UTF_8)); @@ -292,8 +292,9 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService * 获取历史任务节点信息 * * @param processInstanceId 流程实例id + * @param version 版本 */ - private List getHistoryTaskList(String processInstanceId) { + private List getHistoryTaskList(String processInstanceId, Integer version) { //查询任务办理记录 List list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed()); @@ -305,27 +306,48 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService if (ObjectUtil.isNotEmpty(historicTaskInstance.getDurationInMillis())) { actHistoryInfoVo.setRunDuration(getDuration(historicTaskInstance.getDurationInMillis())); } + actHistoryInfoVo.setVersion(version); actHistoryInfoVoList.add(actHistoryInfoVo); } List historyInfoVoList = new ArrayList<>(); Map> groupByKey = StreamUtils.groupByKey(actHistoryInfoVoList, ActHistoryInfoVo::getTaskDefinitionKey); for (Map.Entry> entry : groupByKey.entrySet()) { ActHistoryInfoVo historyInfoVo = new ActHistoryInfoVo(); - BeanUtils.copyProperties(entry.getValue().get(0), historyInfoVo); - actHistoryInfoVoList.stream().filter(e -> e.getTaskDefinitionKey().equals(entry.getKey()) && e.getEndTime() == null).findFirst() - .ifPresent(e -> { - historyInfoVo.setStatus("待处理"); - historyInfoVo.setStartTime(e.getStartTime()); - historyInfoVo.setEndTime(null); - historyInfoVo.setRunDuration(null); - if (ObjectUtil.isEmpty(e.getAssignee())) { - ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(e.getId()); + if (entry.getValue().size() > 1) { + List historyInfoVos = StreamUtils.filter(entry.getValue(), e -> StringUtils.isNotBlank(e.getAssignee())); + if (CollUtil.isNotEmpty(historyInfoVos)) { + ActHistoryInfoVo infoVo = historyInfoVos.get(0); + BeanUtils.copyProperties(infoVo, historyInfoVo); + historyInfoVo.setStatus(infoVo.getEndTime() == null ? "待处理" : "已处理"); + historyInfoVo.setStartTime(infoVo.getStartTime()); + historyInfoVo.setEndTime(infoVo.getEndTime() == null ? null : infoVo.getEndTime()); + historyInfoVo.setRunDuration(infoVo.getEndTime() == null ? null : infoVo.getRunDuration()); + if (ObjectUtil.isEmpty(infoVo.getAssignee())) { + ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(infoVo.getId()); if (ObjectUtil.isNotEmpty(participantVo) && CollUtil.isNotEmpty(participantVo.getCandidate())) { historyInfoVo.setAssignee(StreamUtils.join(participantVo.getCandidate(), Convert::toStr)); } } - }); + } + } else { + actHistoryInfoVoList.stream().filter(e -> e.getTaskDefinitionKey().equals(entry.getKey())).findFirst() + .ifPresent(e -> { + BeanUtils.copyProperties(e, historyInfoVo); + historyInfoVo.setStatus(e.getEndTime() == null ? "待处理" : "已处理"); + historyInfoVo.setStartTime(e.getStartTime()); + historyInfoVo.setEndTime(e.getEndTime() == null ? null : e.getEndTime()); + historyInfoVo.setRunDuration(e.getEndTime() == null ? null : e.getRunDuration()); + if (ObjectUtil.isEmpty(e.getAssignee())) { + ParticipantVo participantVo = WorkflowUtils.getCurrentTaskParticipant(e.getId()); + if (ObjectUtil.isNotEmpty(participantVo) && CollUtil.isNotEmpty(participantVo.getCandidate())) { + historyInfoVo.setAssignee(StreamUtils.join(participantVo.getCandidate(), Convert::toStr)); + } + } + }); + + } historyInfoVoList.add(historyInfoVo); + } return historyInfoVoList; } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java index d934f29d..3c17f6e0 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java @@ -1,6 +1,9 @@ package org.dromara.workflow.service.impl; +import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; +import org.dromara.workflow.domain.ActHiProcinst; +import org.dromara.workflow.service.IActHiProcinstService; import org.dromara.workflow.service.IActProcessInstanceService; import org.dromara.workflow.service.WorkflowService; import org.dromara.workflow.utils.WorkflowUtils; @@ -19,9 +22,9 @@ import java.util.Map; @Service public class WorkflowServiceImpl implements WorkflowService { - private final IActProcessInstanceService iActProcessInstanceService; + private final IActProcessInstanceService actProcessInstanceService; private final RuntimeService runtimeService; - + private final IActHiProcinstService actHiProcinstService; /** * 运行中的实例 删除程实例,删除历史记录,删除业务与流程关联信息 * @@ -30,7 +33,7 @@ public class WorkflowServiceImpl implements WorkflowService { */ @Override public boolean deleteRunAndHisInstance(List businessKeys) { - return iActProcessInstanceService.deleteRunAndHisInstance(businessKeys); + return actProcessInstanceService.deleteRunAndHisInstance(businessKeys); } /** @@ -98,4 +101,19 @@ public class WorkflowServiceImpl implements WorkflowService { public void setVariablesLocal(String taskId, Map variables) { runtimeService.setVariablesLocal(taskId, variables); } + + /** + * 按照业务id查询流程实例id + * + * @param businessKey 业务id + * @return 结果 + */ + @Override + public String getInstanceIdByBusinessKey(String businessKey) { + ActHiProcinst actHiProcinst = actHiProcinstService.selectByBusinessKey(businessKey); + if (actHiProcinst == null) { + return StrUtil.EMPTY; + } + return actHiProcinst.getId(); + } }