From 845e95bd0712808af47044ae58553742d99e90c6 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Fri, 17 May 2024 20:42:44 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActProcessInstanceController.java | 4 +- .../service/IActProcessInstanceService.java | 3 +- .../impl/ActProcessInstanceServiceImpl.java | 49 +++---------------- 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java index 4d433df43..142386b61 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java @@ -14,12 +14,14 @@ import org.dromara.common.web.core.BaseController; import org.dromara.workflow.domain.bo.ProcessInstanceBo; import org.dromara.workflow.domain.bo.ProcessInvalidBo; import org.dromara.workflow.domain.bo.TaskUrgingBo; +import org.dromara.workflow.domain.vo.ActHistoryInfoVo; import org.dromara.workflow.domain.vo.ProcessInstanceVo; import org.dromara.workflow.service.IActProcessInstanceService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; import java.util.Map; /** @@ -81,7 +83,7 @@ public class ActProcessInstanceController extends BaseController { * @param processInstanceId 流程实例id */ @GetMapping("/getHistoryRecord/{processInstanceId}") - public R> getHistoryRecord(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) { + public R> getHistoryRecord(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) { return R.ok(actProcessInstanceService.getHistoryRecord(processInstanceId)); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java index 388680455..2fc0c1aa6 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java @@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.domain.bo.ProcessInstanceBo; import org.dromara.workflow.domain.bo.ProcessInvalidBo; import org.dromara.workflow.domain.bo.TaskUrgingBo; +import org.dromara.workflow.domain.vo.ActHistoryInfoVo; import org.dromara.workflow.domain.vo.ProcessInstanceVo; import java.util.List; @@ -56,7 +57,7 @@ public interface IActProcessInstanceService { * @param processInstanceId 流程实例id * @return 结果 */ - Map getHistoryRecord(String processInstanceId); + List getHistoryRecord(String processInstanceId); /** * 作废流程实例,不会删除历史记录(删除运行中的实例) 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 6339302c6..b64c79ebd 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 @@ -336,8 +336,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService * @param processInstanceId 流程实例id */ @Override - public Map getHistoryRecord(String processInstanceId) { - Map map = new HashMap<>(); + public List getHistoryRecord(String processInstanceId) { // 查询任务办理记录 List list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list(); list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed()); @@ -378,16 +377,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService } actHistoryInfoVoList.add(actHistoryInfoVo); } - List collect = new ArrayList<>(); - // 待办理 - List waitingTask = StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() == null); - // 已办理 - List finishTask = StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() != null); - collect.addAll(waitingTask); - collect.addAll(finishTask); // 审批记录 - map.put("historyRecordList", collect); - List nodeInfoList = new ArrayList<>(); Map> groupByKey = StreamUtils.groupByKey(actHistoryInfoVoList, ActHistoryInfoVo::getTaskDefinitionKey); for (Map.Entry> entry : groupByKey.entrySet()) { ActHistoryInfoVo actHistoryInfoVo = BeanUtil.toBean(entry.getValue().get(0), ActHistoryInfoVo.class); @@ -403,39 +393,14 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService actHistoryInfoVo.setEndTime(null); actHistoryInfoVo.setRunDuration(null); }); - nodeInfoList.add(actHistoryInfoVo); } - // 节点信息 - map.put("nodeListInfo", nodeInfoList); - BpmnModel bpmnModel = repositoryService.getBpmnModel(list.get(0).getProcessDefinitionId()); - List graphicInfoVos = new ArrayList<>(); - Collection flowElements = bpmnModel.getMainProcess().getFlowElements(); - //节点图形信息 - buildGraphicInfo(flowElements, graphicInfoVos, bpmnModel); - map.put("graphicInfoVos", graphicInfoVos); - return map; - } + List recordList = new ArrayList<>(); + // 待办理 + recordList.addAll(StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() == null)); + // 已办理 + recordList.addAll(StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() != null)); - /** - * 构建节点图形信息 - * - * @param flowElements 节点 - */ - private static void buildGraphicInfo(Collection flowElements, List graphicInfoVos, BpmnModel bpmnModel) { - for (FlowElement flowElement : flowElements) { - if (flowElement instanceof SubProcess) { - Collection subFlowElements = ((SubProcess) flowElement).getFlowElements(); - buildGraphicInfo(subFlowElements, graphicInfoVos, bpmnModel); - } else { - if (flowElement instanceof UserTask) { - GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowElement.getId()); - GraphicInfoVo graphicInfoVo = BeanUtil.toBean(graphicInfo, GraphicInfoVo.class); - graphicInfoVo.setNodeId(flowElement.getId()); - graphicInfoVo.setNodeName(flowElement.getName()); - graphicInfoVos.add(graphicInfoVo); - } - } - } + return recordList; } /**