瀏覽代碼

重新提交到上一办理节点

lamphua 5 月之前
父節點
當前提交
73d75ba7e4

+ 6
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowTaskController.java 查看文件

114
         return flowTaskService.findReturnTaskList(flowTaskVo);
114
         return flowTaskService.findReturnTaskList(flowTaskVo);
115
     }
115
     }
116
 
116
 
117
+    @ApiOperation(value = "获取重新提交的节点")
118
+    @PostMapping(value = "/reCommitTask")
119
+    public AjaxResult findReCommitTask(FlowTaskVo flowTaskVo) {
120
+        return flowTaskService.findReCommitTask(flowTaskVo);
121
+    }
122
+
117
     @ApiOperation(value = "删除任务")
123
     @ApiOperation(value = "删除任务")
118
     @DeleteMapping(value = "/delete")
124
     @DeleteMapping(value = "/delete")
119
     public AjaxResult delete(@RequestBody FlowTaskVo flowTaskVo) {
125
     public AjaxResult delete(@RequestBody FlowTaskVo flowTaskVo) {

+ 8
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowTaskService.java 查看文件

44
      */
44
      */
45
     AjaxResult findReturnTaskList(FlowTaskVo flowTaskVo);
45
     AjaxResult findReturnTaskList(FlowTaskVo flowTaskVo);
46
 
46
 
47
+    /**
48
+     * 获取重新提交的节点
49
+     *
50
+     * @param flowTaskVo
51
+     * @return
52
+     */
53
+    AjaxResult findReCommitTask(FlowTaskVo flowTaskVo);
54
+
47
     /**
55
     /**
48
      * 删除任务
56
      * 删除任务
49
      *
57
      *

+ 44
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java 查看文件

475
         return AjaxResult.success(userTaskList);
475
         return AjaxResult.success(userTaskList);
476
     }
476
     }
477
 
477
 
478
+    /**
479
+     * 获取重新提交的节点
480
+     *
481
+     * @param flowTaskVo
482
+     * @return
483
+     */
484
+    @Override
485
+    public AjaxResult findReCommitTask(FlowTaskVo flowTaskVo) {
486
+        // 当前任务 task
487
+        Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
488
+        // 从流程历史任务中获取可重新提交的节点
489
+        List<HistoricActivityInstance> hisActIns = historyService.createHistoricActivityInstanceQuery()
490
+                .processInstanceId(task.getProcessInstanceId())
491
+                .activityType("userTask")
492
+                .orderByHistoricActivityInstanceStartTime()
493
+                .desc()
494
+                .list();
495
+
496
+        // 跳转的节点列表
497
+        List<HistoricActivityInstance> reCommitList = new ArrayList<>();
498
+        if (hisActIns.size() > 0)
499
+        reCommitList.add(hisActIns.get(1));
500
+
501
+
502
+        List<UserTask> userTaskList = new ArrayList<>();
503
+        // 获取流程定义信息
504
+        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult();
505
+        // 获取所有节点信息,暂不考虑子流程情况
506
+        Process process = repositoryService.getBpmnModel(processDefinition.getId()).getProcesses().get(0);
507
+        Collection<FlowElement> flowElements = process.getFlowElements();
508
+        // 获取当前任务节点元素
509
+        UserTask source = null;
510
+        if (flowElements != null) {
511
+            for (FlowElement flowElement : flowElements) {
512
+                // 类型为用户节点
513
+                if (reCommitList.size() > 0 && flowElement.getId().equals(reCommitList.get(0).getActivityId())) {
514
+                    source = (UserTask) flowElement;
515
+                }
516
+            }
517
+        }
518
+        userTaskList.add(source);
519
+        return AjaxResult.success(userTaskList);
520
+    }
521
+
478
     /**
522
     /**
479
      * 删除任务
523
      * 删除任务
480
      *
524
      *

Loading…
取消
儲存