lining 6 éve
szülő
commit
bafddd52c7

+ 38 - 0
src/main/java/com/common/workflow/service/activiti/ActivitiService.java

@@ -263,6 +263,44 @@ public class ActivitiService {
         return businessKeys;
     }
 
+    /**
+     *
+     * <p>描述: 根据工作流Key 和 用户id查询已办任务列表</p>
+     */
+    public List<ActiMyTaskDTO> findTaskHistWithCreateTimeByUserId(String processKey, String userId) {
+        List<HistoricTaskInstance>  hisTaskList = historyService.createHistoricTaskInstanceQuery()
+            .processDefinitionKey(processKey)
+            .taskAssignee(userId)
+            .orderByTaskId()
+            .desc()
+            .list();
+
+        List<ActiMyTaskDTO> myTaskDTOS = new ArrayList<>();
+
+        for (HistoricTaskInstance myTask : hisTaskList) {
+            ActiMyTaskDTO myTaskDTO = new ActiMyTaskDTO();
+            myTaskDTO.setWorkflowId(myTask.getProcessInstanceId());
+            myTaskDTO.setCreateTime(myTask.getCreateTime().getTime());
+
+            List<HistoricVariableInstance> varList = historyService.createHistoricVariableInstanceQuery()
+                .processInstanceId(myTask.getProcessInstanceId())
+                .list();
+
+            for(HistoricVariableInstance hisvar : varList) {
+                if (hisvar.getVariableName().equals("businessKey")) {
+                    myTaskDTO.setBusinessKey(hisvar.getValue().toString());
+                    break;
+                }
+            }
+
+
+            myTaskDTOS.add(myTaskDTO);
+        }
+        return myTaskDTOS;
+
+    }
+
+
     /**
      * 查询当前用户的待办任务
      * @param processDefinitionKey 流程定义key(流程定义的标识)

+ 7 - 0
src/main/java/com/common/workflow/web/rest/ActivitiResource.java

@@ -62,6 +62,13 @@ public class ActivitiResource {
         List<ActiMyTaskDTO> actiMyTaskDTOS = activitiService.findTasksWithCreateTimeByUserId(actiVm.getProcessKey(), actiVm.getUserId());
         return ResponseEntity.ok(actiMyTaskDTOS);
     }
+
+    @PostMapping("/my-finished-tasks-with-time")
+    public ResponseEntity<List<ActiMyTaskDTO>> findTaskHistWithCreateTimeByUserId(@Valid @RequestBody ActiMyTaskVM actiVm) {
+        List<ActiMyTaskDTO> actiMyTaskDTOS = activitiService.findTaskHistWithCreateTimeByUserId(actiVm.getProcessKey(), actiVm.getUserId());
+        return ResponseEntity.ok(actiMyTaskDTOS);
+    }
+
     @PostMapping("/my-tasks-finished")
     public ResponseEntity<String> getMyTasksFinished(@Valid @RequestBody ActiMyTaskVM actiVm) {
         String businessKeys = activitiService.findTaskHistByUserId(actiVm.getProcessKey(), actiVm.getUserId());