Преглед изворни кода

重新提交到上一办理节点

lamphua пре 5 месеци
родитељ
комит
73d75ba7e4

+ 6
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowTaskController.java Прегледај датотеку

@@ -114,6 +114,12 @@ public class FlowTaskController {
114 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 123
     @ApiOperation(value = "删除任务")
118 124
     @DeleteMapping(value = "/delete")
119 125
     public AjaxResult delete(@RequestBody FlowTaskVo flowTaskVo) {

+ 8
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowTaskService.java Прегледај датотеку

@@ -44,6 +44,14 @@ public interface IFlowTaskService {
44 44
      */
45 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,6 +475,50 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
475 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…
Откажи
Сачувај