From d598f850efae87106b572a5b17cab5d83117b7d5 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期六, 29 二月 2020 16:19:17 +0800
Subject: [PATCH] 优化工作流手环节查询

---
 CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java |   41 ++++++++++++++++++++++++++++++-----------
 1 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java b/CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java
index 13290e7..eb69179 100644
--- a/CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java
+++ b/CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java
@@ -4,19 +4,19 @@
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
 import com.java110.core.smo.complaintUser.IComplaintUserInnerServiceSMO;
-import com.java110.dto.FeeDto;
 import com.java110.dto.PageDto;
 import com.java110.dto.auditMessage.AuditMessageDto;
 import com.java110.dto.complaint.ComplaintDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
-import org.activiti.engine.history.HistoricActivityInstance;
 import org.activiti.engine.history.HistoricProcessInstance;
 import org.activiti.engine.history.HistoricTaskInstance;
+import org.activiti.engine.history.HistoricTaskInstanceQuery;
 import org.activiti.engine.impl.identity.Authentication;
 import org.activiti.engine.query.Query;
 import org.activiti.engine.runtime.ProcessInstance;
@@ -58,7 +58,7 @@
         //灏嗕俊鎭姞鍏ap,浠ヤ究浼犲叆娴佺▼涓�
         Map<String, Object> variables = new HashMap<String, Object>();
         variables.put("complaintDto", complaintDto);
-        //variables.put("userId", complaintDto.getCurrentUserId());
+        variables.put("userId", complaintDto.getCurrentUserId());
         //寮�鍚祦绋�
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("complaint", complaintDto.getComplaintId(), variables);
         //灏嗗緱鍒扮殑瀹炰緥娴佺▼id鍊艰祴缁欎箣鍓嶈缃殑鍙橀噺
@@ -161,11 +161,22 @@
      */
     public long getUserHistoryTaskCount(@RequestBody AuditUser user) {
         HistoryService historyService = processEngine.getHistoryService();
-        Query query = historyService.createHistoricTaskInstanceQuery()
+//        Query query = historyService.createHistoricTaskInstanceQuery()
+//                .processDefinitionKey("complaint")
+//                .taskAssignee(user.getUserId());
+
+        HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
                 .processDefinitionKey("complaint")
-                .taskAssignee(user.getUserId());
+                .taskAssignee(user.getUserId())
+                .orderByHistoricTaskInstanceStartTime();
+        if(!StringUtil.isEmpty(user.getAuditLink()) && "START".equals(user.getAuditLink())){
+            historicTaskInstanceQuery.taskName("complaint");
+        }
+
+        Query query = historicTaskInstanceQuery;
         return query.count();
     }
+
     /**
      * 鑾峰彇鐢ㄦ埛瀹℃壒鐨勪换鍔�
      *
@@ -173,11 +184,16 @@
      */
     public List<ComplaintDto> getUserHistoryTasks(@RequestBody AuditUser user) {
         HistoryService historyService = processEngine.getHistoryService();
-        Query query = historyService.createHistoricTaskInstanceQuery()
-                                                .processDefinitionKey("complaint")
-                                                .taskAssignee(user.getUserId())
-                                                .orderByHistoricTaskInstanceStartTime()
-                                                .desc();
+
+        HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
+                .processDefinitionKey("complaint")
+                .taskAssignee(user.getUserId())
+                .orderByHistoricTaskInstanceStartTime();
+        if(!StringUtil.isEmpty(user.getAuditLink()) && "START".equals(user.getAuditLink())){
+            historicTaskInstanceQuery.taskName("complaint");
+        }
+
+        Query query = historicTaskInstanceQuery.desc();
 
         List<HistoricTaskInstance> list = null;
         if (user.getPage() != PageDto.DEFAULT_PAGE) {
@@ -214,7 +230,10 @@
         taskService.addComment(complaintDto.getTaskId(), processInstanceId, complaintDto.getAuditMessage());
         Map<String, Object> variables = new HashMap<String, Object>();
         variables.put("auditCode", complaintDto.getAuditCode());
-        variables.put("userId", complaintDto.getCurrentUserId());
+        variables.put("currentUserId", complaintDto.getCurrentUserId());
+        //taskService.setAssignee(complaintDto.getTaskId(),complaintDto.getCurrentUserId());
+        //taskService.addCandidateUser(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
+        //taskService.claim(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
         taskService.complete(complaintDto.getTaskId(), variables);
 
         ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();

--
Gitblit v1.8.0