From c11c37e59a58c5f6ab206a2b55d97060091cf166 Mon Sep 17 00:00:00 2001 From: konbai <1527468660@qq.com> Date: Thu, 9 Feb 2023 23:15:53 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E5=87=8F=E5=B0=91=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/WfProcessController.java | 5 +- .../workflow/service/IWfProcessService.java | 3 +- .../service/impl/WfProcessServiceImpl.java | 51 ++++++++++--------- ruoyi-ui/src/views/workflow/work/copy.vue | 5 +- ruoyi-ui/src/views/workflow/work/detail.vue | 23 +++------ ruoyi-ui/src/views/workflow/work/finished.vue | 3 -- ruoyi-ui/src/views/workflow/work/own.vue | 5 +- ruoyi-ui/src/views/workflow/work/todo.vue | 4 +- 8 files changed, 40 insertions(+), 59 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java index f7e35328..4aa9173f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfProcessController.java @@ -220,11 +220,10 @@ public class WfProcessController extends BaseController { * 查询流程详情信息 * * @param procInsId 流程实例ID - * @param deployId 部署ID * @param taskId 任务ID */ @GetMapping("/detail") - public R detail(String procInsId, String deployId, String taskId) { - return R.ok(processService.queryProcessDetail(procInsId, deployId, taskId)); + public R detail(String procInsId, String taskId) { + return R.ok(processService.queryProcessDetail(procInsId, taskId)); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java index 314b86d6..24501afe 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfProcessService.java @@ -104,8 +104,7 @@ public interface IWfProcessService { /** * 查询流程任务详情信息 * @param procInsId 流程实例ID - * @param deployId 流程部署ID * @param taskId 任务ID */ - WfDetailVo queryProcessDetail(String procInsId, String deployId, String taskId); + WfDetailVo queryProcessDetail(String procInsId, String taskId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java index 982c8fac..5fd5a26d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfProcessServiceImpl.java @@ -614,28 +614,34 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce * 流程详情信息 * * @param procInsId 流程实例ID - * @param deployId 流程部署ID * @param taskId 任务ID * @return */ @Override - public WfDetailVo queryProcessDetail(String procInsId, String deployId, String taskId) { + public WfDetailVo queryProcessDetail(String procInsId, String taskId) { WfDetailVo detailVo = new WfDetailVo(); - HistoricTaskInstance taskIns = historyService.createHistoricTaskInstanceQuery() - .taskId(taskId) - .includeIdentityLinks() + // 获取流程实例 + HistoricProcessInstance historicProcIns = historyService.createHistoricProcessInstanceQuery() + .processInstanceId(procInsId) .includeProcessVariables() - .includeTaskLocalVariables() .singleResult(); - if (taskIns == null) { - throw new ServiceException("没有可办理的任务!"); + if (StringUtils.isNotBlank(taskId)) { + HistoricTaskInstance taskIns = historyService.createHistoricTaskInstanceQuery() + .taskId(taskId) + .includeIdentityLinks() + .includeProcessVariables() + .includeTaskLocalVariables() + .singleResult(); + if (taskIns == null) { + throw new ServiceException("没有可办理的任务!"); + } + detailVo.setTaskFormData(currTaskFormData(historicProcIns.getDeploymentId(), taskIns)); } // 获取Bpmn模型信息 - BpmnModel bpmnModel = repositoryService.getBpmnModel(taskIns.getProcessDefinitionId()); + BpmnModel bpmnModel = repositoryService.getBpmnModel(historicProcIns.getProcessDefinitionId()); detailVo.setBpmnXml(ModelUtils.getBpmnXmlStr(bpmnModel)); - detailVo.setTaskFormData(currTaskFormData(deployId, taskIns)); - detailVo.setHistoryProcNodeList(historyProcNodeList(procInsId)); - detailVo.setProcessFormList(processFormList(bpmnModel, procInsId, deployId)); + detailVo.setHistoryProcNodeList(historyProcNodeList(historicProcIns)); + detailVo.setProcessFormList(processFormList(bpmnModel, historicProcIns)); detailVo.setFlowViewer(getFlowViewer(bpmnModel, procInsId)); return detailVo; } @@ -698,11 +704,11 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce /** * 获取历史流程表单信息 */ - private List processFormList(BpmnModel bpmnModel, String procInsId, String deployId) { + private List processFormList(BpmnModel bpmnModel, HistoricProcessInstance historicProcIns) { List procFormList = new ArrayList<>(); - HistoricProcessInstance historicProcIns = historyService.createHistoricProcessInstanceQuery().processInstanceId(procInsId).includeProcessVariables().singleResult(); + List activityInstanceList = historyService.createHistoricActivityInstanceQuery() - .processInstanceId(procInsId).finished() + .processInstanceId(historicProcIns.getId()).finished() .activityTypes(CollUtil.newHashSet(BpmnXMLConstants.ELEMENT_EVENT_START, BpmnXMLConstants.ELEMENT_TASK_USER)) .orderByHistoricActivityInstanceStartTime().asc() .list(); @@ -720,7 +726,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce if (localScope) { // 查询任务节点参数,并转换成Map variables = historyService.createHistoricVariableInstanceQuery() - .processInstanceId(procInsId) + .processInstanceId(historicProcIns.getId()) .taskId(activityInstance.getTaskId()) .list() .stream() @@ -734,7 +740,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce } // 非节点表单此处查询结果可能有多条,只获取第一条信息 List formInfoList = deployFormMapper.selectVoList(new LambdaQueryWrapper() - .eq(WfDeployForm::getDeployId, deployId) + .eq(WfDeployForm::getDeployId, historicProcIns.getDeploymentId()) .eq(WfDeployForm::getFormKey, formKey) .eq(localScope, WfDeployForm::getNodeKey, flowElement.getId())); WfDeployFormVo formInfo = formInfoList.iterator().next(); @@ -820,7 +826,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce /** * 获取历史任务信息列表 */ - private List historyProcNodeList(String procInsId) { + private List historyProcNodeList(HistoricProcessInstance historicProcIns) { + String procInsId = historicProcIns.getId(); List historicActivityInstanceList = historyService.createHistoricActivityInstanceQuery() .processInstanceId(procInsId) .activityTypes(CollUtil.newHashSet(BpmnXMLConstants.ELEMENT_EVENT_START, BpmnXMLConstants.ELEMENT_EVENT_END, BpmnXMLConstants.ELEMENT_TASK_USER)) @@ -828,10 +835,6 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce .orderByHistoricActivityInstanceEndTime().desc() .list(); - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() - .processInstanceId(procInsId) - .singleResult(); - List commentList = taskService.getProcessInstanceComments(procInsId); List elementVoList = new ArrayList<>(); @@ -848,8 +851,8 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce } if (BpmnXMLConstants.ELEMENT_EVENT_START.equals(activityInstance.getActivityType())) { - if (ObjectUtil.isNotNull(historicProcessInstance)) { - Long userId = Long.parseLong(historicProcessInstance.getStartUserId()); + if (ObjectUtil.isNotNull(historicProcIns)) { + Long userId = Long.parseLong(historicProcIns.getStartUserId()); SysUser user = userService.selectUserById(userId); if (user != null) { elementVo.setAssigneeId(user.getUserId()); diff --git a/ruoyi-ui/src/views/workflow/work/copy.vue b/ruoyi-ui/src/views/workflow/work/copy.vue index 4f79fd99..a74c2163 100644 --- a/ruoyi-ui/src/views/workflow/work/copy.vue +++ b/ruoyi-ui/src/views/workflow/work/copy.vue @@ -192,10 +192,7 @@ export default { this.$router.push({ path: '/workflow/process/detail/' + row.instanceId, query: { - definitionId: row.processId, - deployId: row.deploymentId, - taskId: row.taskId, - finished: false + processed: false } }) }, diff --git a/ruoyi-ui/src/views/workflow/work/detail.vue b/ruoyi-ui/src/views/workflow/work/detail.vue index 2987de32..992b3409 100644 --- a/ruoyi-ui/src/views/workflow/work/detail.vue +++ b/ruoyi-ui/src/views/workflow/work/detail.vue @@ -1,8 +1,8 @@