hfxc226 2 years ago
parent
commit
ae28bd0f39

+ 8 - 25
platform-activiti/src/main/java/com/platform/activiti/controller/ActivitiController.java

@@ -485,8 +485,7 @@ public class ActivitiController {
     }
 
     /**
-     * 展示我发起的任务
-     *
+     * 展示我发起的任务:依赖于每次提交的时候需要执行:identityService.setAuthenticatedUserId(user.getUserId());
      * @return
      */
     @ResponseBody
@@ -496,36 +495,20 @@ public class ActivitiController {
         String userId = userInfo.getUserId();
         //保证运行ing
         List<ActApplyInfo> infos = new ArrayList<>();
-        List<Task> tasks = this.taskService.createTaskQuery().taskCandidateOrAssigned(userId).orderByTaskCreateTime().desc().list();
-        if (CollectionUtil.isNotEmpty(tasks)) {
-            tasks.forEach(item -> {
-                String taskId = item.getId();
-                Map<String, Object> map = taskService.getVariables(taskId);
-                ActApplyInfo applyInfo = (ActApplyInfo) map.get("data");
-                applyInfo.setProcessInstanceId(item.getProcessInstanceId());
-                applyInfo.setTaskId(item.getId());
-
-                // 找到自己发起的
-                if (userId.equals(applyInfo.getUserId())) {
-                    applyInfo.setSelf(true);
-                    infos.add(applyInfo);
-                }
-            });
-        }
-        List<HistoricTaskInstance> tastListFinish  = historyService.createHistoricTaskInstanceQuery().taskAssignee(userId).list();
-        if (CollectionUtil.isNotEmpty(tastListFinish)) {
-            for(HistoricTaskInstance task: tastListFinish){
+        List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().startedBy(userId).orderByProcessInstanceStartTime().desc().list();
+        if (CollectionUtil.isNotEmpty(historicProcessInstanceList)) {
+            for(HistoricProcessInstance historicProcessInstance: historicProcessInstanceList){
                 List<HistoricDetail> list = historyService.createHistoricDetailQuery().
-                        processInstanceId(task.getProcessInstanceId()).orderByTime().desc().list();
+                        processInstanceId(historicProcessInstance.getId()).orderByTime().desc().list();
                 if (CollectionUtil.isNotEmpty(list)) {
                     for(HistoricDetail historicDetail: list){
                         HistoricVariableUpdate variable = (HistoricVariableUpdate) historicDetail;
                         String variableName = variable.getVariableName();
                         if ("data".equals(variableName)) {
                             ActApplyInfo applyInfo = (ActApplyInfo)variable.getValue();
-                            log.info(applyInfo.toString());
-                            applyInfo.setProcessInstanceId(task.getProcessInstanceId());
-                            applyInfo.setTaskId(task.getId());
+                            log.info("找到我发起的: " + applyInfo.toString());
+                            applyInfo.setProcessInstanceId(historicProcessInstance.getId());
+                            applyInfo.setTaskId(historicDetail.getTaskId());
                             /**如果是自己发起的,展示*/
                             if (userId.equals(applyInfo.getUserId())) {
                                 infos.add(applyInfo);

+ 9 - 5
platform-service/src/main/java/com/platform/service/business/impl/ActivitiBaseServiceAbstract.java

@@ -78,6 +78,10 @@ public abstract class ActivitiBaseServiceAbstract implements ActivitiBaseService
 
     protected abstract void doUpdate(ActAuditRequest actAuditRequest);
 
+    /**
+     * @see com.platform.activiti.controller.ActivitiController#showTaskListStart
+     * @param actAuditRequest
+     */
     protected void doStart(ActAuditRequest actAuditRequest) {
         UserInfo user = SecurityUtils.getUserInfo();
         // 设置发起对象,保存到流程实例中
@@ -91,10 +95,10 @@ public abstract class ActivitiBaseServiceAbstract implements ActivitiBaseService
         applyInfo.setUserName(user.getRealName());
         map.put("data", applyInfo);
         map.put("userId", applyInfo.getUserId());
-        // 设置流程启动人信息,为了后面查询我的发起列表
-        identityService.setAuthenticatedUserId(user.getUserId());
         ProcessInstance instance = null;
         if (StringUtils.isBlank(actAuditRequest.getProcessInstanceId())) {
+            // 第一次启动,设置流程启动人信息,为了后面查询我的发起列表
+            identityService.setAuthenticatedUserId(user.getUserId());
             instance = runtimeService.startProcessInstanceByKey(ActApplyEnum.SB_INFO_SCRAP.getKey(), actAuditRequest.getId(), map);
             actAuditRequest.setProcessInstanceId(instance.getId());
         } else { // 再次提交审批的,之前被拒绝的
@@ -201,7 +205,7 @@ public abstract class ActivitiBaseServiceAbstract implements ActivitiBaseService
     }
 
     /**
-     * 终止审核
+     * 终止审核:如果已经终止删除过的
      * 审批设置对象:ActApplyInfo
      *
      * @param actAuditRequest
@@ -214,13 +218,13 @@ public abstract class ActivitiBaseServiceAbstract implements ActivitiBaseService
             ProcessInstance instance = runtimeService.createProcessInstanceQuery()
                     .processInstanceId(processInstanceId).singleResult();
             if (instance != null) {
-                runtimeService.deleteProcessInstance(processInstanceId, "终止审批");
+                runtimeService.deleteProcessInstance(processInstanceId, "发起人终止");
                 historyService.deleteHistoricProcessInstance(processInstanceId);
             }else{
                 List<ProcessInstance> instanceList = runtimeService.createProcessInstanceQuery()
                         .processInstanceBusinessKey(actAuditRequest.getId()).list();
                 for(ProcessInstance processInstance:instanceList){
-                    runtimeService.deleteProcessInstance(processInstance.getId(), "终止审批");
+                    runtimeService.deleteProcessInstance(processInstance.getId(), "发起人终止");
                     historyService.deleteHistoricProcessInstance(processInstance.getId());
                 }
             }