From 4c91fada0d44dafee1f3bfb05f1ffde4aa121e4e Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 10 五月 2020 02:00:06 +0800
Subject: [PATCH] 优化流程查询

---
 CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java |   73 ++++++++++++++++++++++++++++++------
 1 files changed, 61 insertions(+), 12 deletions(-)

diff --git a/CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java b/CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java
index 2bd2981..759b9dd 100644
--- a/CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java
+++ b/CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java
@@ -5,16 +5,22 @@
 import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
 import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
 import com.java110.core.smo.purchaseApplyUser.IPurchaseApplyUserInnerServiceSMO;
+import com.java110.core.smo.user.IUserInnerServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.auditMessage.AuditMessageDto;
 import com.java110.dto.auditUser.AuditUserDto;
+import com.java110.dto.complaint.ComplaintDto;
 import com.java110.dto.purchaseApply.PurchaseApplyDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.Base64Convert;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
+import org.activiti.bpmn.model.BpmnModel;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.RepositoryService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.history.HistoricProcessInstance;
@@ -30,7 +36,11 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -49,6 +59,16 @@
     private TaskService taskService;
 
     @Autowired
+    private HistoryService historyService;
+
+    @Autowired
+    private RepositoryService repositoryService;
+
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+    @Autowired
     private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
 
     @Autowired
@@ -63,9 +83,10 @@
         //灏嗕俊鎭姞鍏ap,浠ヤ究浼犲叆娴佺▼涓�
         Map<String, Object> variables = new HashMap<String, Object>();
         variables.put("purchaseApplyDto", purchaseApplyDto);
-        //variables.put("userId", purchaseApplyDto.getCurrentUserId());
+        variables.put("nextAuditStaffId",purchaseApplyDto.getStaffId());
+        variables.put("userId", purchaseApplyDto.getCurrentUserId());
         //寮�鍚祦绋�
-        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("resourceEnter", purchaseApplyDto.getApplyOrderId(), variables);
+        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("resourceEntry", purchaseApplyDto.getApplyOrderId(), variables);
 //        //灏嗗緱鍒扮殑瀹炰緥娴佺▼id鍊艰祴缁欎箣鍓嶈缃殑鍙橀噺
         String processInstanceId = processInstance.getId();
 //        // System.out.println("娴佺▼寮�鍚垚鍔�.......瀹炰緥娴佺▼id:" + processInstanceId);
@@ -79,16 +100,8 @@
      * 鑷姩鎻愪氦绗竴姝�
      */
     private void autoFinishFirstTask(PurchaseApplyDto purchaseApplyDto) {
-        AuditUserDto auditUserDto = new AuditUserDto();
-        auditUserDto.setStoreId(purchaseApplyDto.getStoreId());
-        auditUserDto.setObjCode("resourceEntry");
-        auditUserDto.setAuditLink("809001");
-        List<AuditUserDto> auditUserDtos = auditUserInnerServiceSMOImpl.queryAuditUsers(auditUserDto);
-        if (auditUserDtos.size() == 0 || auditUserDtos == null) {
-            throw new IllegalArgumentException("鏈壘鐨勯噰璐儴闂ㄥ鏍镐汉鍛樹俊鎭�");
-        }
         Task task = null;
-        TaskQuery query = taskService.createTaskQuery().taskCandidateOrAssigned(auditUserDtos.get(0).getUserId()).active();
+        TaskQuery query = taskService.createTaskQuery().taskCandidateOrAssigned(purchaseApplyDto.getCurrentUserId()).active();
         List<Task> todoList = query.list();//鑾峰彇鐢宠浜虹殑寰呭姙浠诲姟鍒楄〃
 
         for (Task tmp : todoList) {
@@ -254,7 +267,7 @@
         //taskService.addCandidateUser(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
         //taskService.claim(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
         taskService.complete(purchaseApplyDto.getTaskId(), variables);
-        taskService.setVariable(purchaseApplyDto.getTaskId(), "purchaseApplyDto", purchaseApplyDto);
+        //taskService.setVariable(purchaseApplyDto.getTaskId(), "purchaseApplyDto", purchaseApplyDto);
 
         ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
         if (pi == null) {
@@ -284,6 +297,42 @@
         return auditMessageDtos;
     }
 
+    /**
+     * 鑾峰彇浠诲姟褰撳墠澶勭悊浜�
+     *
+     * @param purchaseApplyDto
+     * @return
+     */
+    public PurchaseApplyDto getTaskCurrentUser(@RequestBody PurchaseApplyDto purchaseApplyDto) {
+
+        TaskService taskService = processEngine.getTaskService();
+        Task task = taskService.createTaskQuery().processInstanceBusinessKey(purchaseApplyDto.getApplyOrderId()).singleResult();
+
+        if (task == null) {
+            purchaseApplyDto.setStaffId("");
+            purchaseApplyDto.setStaffName("");
+            purchaseApplyDto.setStaffTel("");
+            return purchaseApplyDto;
+        }
+
+        String userId = task.getAssignee();
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(new String[]{userId});
+
+        if (users == null || users.size() == 0) {
+            purchaseApplyDto.setStaffId("");
+            purchaseApplyDto.setStaffName("");
+            purchaseApplyDto.setStaffTel("");
+            return purchaseApplyDto;
+        }
+
+        purchaseApplyDto.setCurrentUserId(userId);
+        purchaseApplyDto.setStaffName(users.get(0).getName());
+        purchaseApplyDto.setStaffTel(users.get(0).getTel());
+        return purchaseApplyDto;
+
+    }
+
+
 
     public ProcessEngine getProcessEngine() {
         return processEngine;

--
Gitblit v1.8.0