From fa687220c6b69ed024473d69693d4475be08a64e Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 29 十月 2019 20:14:24 +0800
Subject: [PATCH] 优化 审核单

---
 CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java |  159 +++++++++++++++++++++++++++--------------------------
 1 files changed, 81 insertions(+), 78 deletions(-)

diff --git a/CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java b/CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java
index eed2dc3..2cc4033 100644
--- a/CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java
+++ b/CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java
@@ -1,17 +1,24 @@
 package com.java110.common.smo.impl;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.resourceStore.ResourceOrderDto;
+import com.java110.entity.audit.AuditUser;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
+import org.activiti.engine.task.TaskQuery;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -35,95 +42,91 @@
      *
      * @return
      */
-    public String startProcess() {
+    public ResourceOrderDto startProcess(@RequestBody ResourceOrderDto resourceOrderDto) {
         //灏嗕俊鎭姞鍏ap,浠ヤ究浼犲叆娴佺▼涓�
         Map<String, Object> variables = new HashMap<String, Object>();
-        variables.put("employeeName", "寤夋枌");
-        variables.put("day", 10);
+        variables.put("resourceOrderDto", resourceOrderDto);
         //寮�鍚祦绋�
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("resourceEntry", variables);
         //灏嗗緱鍒扮殑瀹炰緥娴佺▼id鍊艰祴缁欎箣鍓嶈缃殑鍙橀噺
         String processInstanceId = processInstance.getId();
-        System.out.println("娴佺▼寮�鍚垚鍔�.......瀹炰緥娴佺▼id:" + processInstanceId);
+        // System.out.println("娴佺▼寮�鍚垚鍔�.......瀹炰緥娴佺▼id:" + processInstanceId);
 
-        return processInstanceId;
-    }
+        resourceOrderDto.setProcessInstanceId(processInstanceId);
 
-    public void getTaskAndComplete(String processInstanceId) {
-        //鑾峰彇taskservice瀹炰緥
-        TaskService taskService = processEngine.getTaskService();
-
-        //寮�濮嬭繘琛屾祦绋�
-        while (this.processEngine.getRuntimeService()
-                .createProcessInstanceQuery()//鑾峰彇鏌ヨ瀵硅薄
-                .processInstanceId(processInstanceId)//鏍规嵁id鏌ヨ娴佺▼瀹炰緥
-                .singleResult()//鑾峰彇鏌ヨ缁撴灉,濡傛灉涓虹┖,璇存槑杩欎釜娴佺▼宸茬粡鎵ц瀹屾瘯,鍚﹀垯,鑾峰彇浠诲姟骞舵墽琛�
-                != null) {
-            Task task = taskService.createTaskQuery()//鍒涘缓鏌ヨ瀵硅薄
-                    .processInstanceId(processInstanceId)//閫氳繃娴佺▼瀹炰緥id鏉ユ煡璇㈠綋鍓嶄换鍔�
-                    .singleResult();//鑾峰彇鍗曚釜鏌ヨ缁撴灉
-            String taskName = task.getName();
-            if (taskName.equals("StartEvent")) {//鑱屽憳鑺傜偣
-                completeEmployeeTask(task);
-            } else if (taskName.equals("departmentManager")) {//棰嗗鑺傜偣
-                completeLeaderTask(task);
-            } else {//缁忕悊鑺傜偣
-                completeJingliTask(task);
-            }
-        }
-
-        System.out.println("瀹℃牳缁撴潫..........");
-    }
-
-
-    //鑱屽憳鎻愪氦鐢宠
-    public void completeEmployeeTask(Task task) {
-        //鑾峰彇浠诲姟id
-        String taskId = task.getId();
-
-        //瀹屾垚浠诲姟
-        this.processEngine.getTaskService().complete(taskId);
-        System.out.println("鑱屽憳宸茬粡鎻愪氦鐢宠.......");
-
-    }
-
-    //棰嗗瀹℃壒
-    public void completeLeaderTask(Task task) {
-        //鑾峰彇浠诲姟id
-        String taskId = task.getId();
-
-        //棰嗗鎰忚
-        Map<String, Object> variables = new HashMap<String, Object>();
-        //variables.put("day",4);
-        variables.put("leaderResult", 1);
-        //瀹屾垚浠诲姟
-        this.processEngine.getTaskService().complete(taskId, variables);
-        System.out.println("棰嗗瀹℃牳瀹屾瘯........");
-
-    }
-
-    //缁忕悊瀹℃壒
-    public void completeJingliTask(Task task) {
-        //鑾峰彇浠诲姟id
-        String taskId = task.getId();
-        String name = task.getName();
-        //缁忕悊鎰忚
-        Map<String, Object> variables = new HashMap<String, Object>();
-        variables.put("result", 0);
-        //瀹屾垚浠诲姟
-        this.processEngine.getTaskService().complete(taskId, variables);
-        System.out.println("缁忕悊瀹℃牳瀹屾瘯........,瀹℃牳缁忕悊:" + name);
-
+        return resourceOrderDto;
     }
 
     /**
+     * 鏌ヨ鐢ㄦ埛浠诲姟鏁�
      *
-     * <p>鎻忚堪: 鏍规嵁鐢ㄦ埛id鏌ヨ寰呭姙浠诲姟鍒楄〃</p>
-     * @author 鑼冪浉濡�
-     * @date 2018骞�2鏈�25鏃�
+     * @param user
+     * @return
      */
-    public List<Task> findTasksByUserId(String userId) {
-        List<Task> resultTask = taskService.createTaskQuery().processDefinitionKey("demo5").taskCandidateOrAssigned(userId).list();
-        return resultTask;
+    public long getUserTaskCount(@RequestBody AuditUser user) {
+        TaskService taskService = processEngine.getTaskService();
+        TaskQuery query = taskService.createTaskQuery();
+        query.taskAssignee(user.getUserId());
+        return query.count();
     }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛浠诲姟
+     *
+     * @param user 鐢ㄦ埛淇℃伅
+     */
+    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user) {
+        TaskService taskService = processEngine.getTaskService();
+        TaskQuery query = taskService.createTaskQuery();
+        query.taskAssignee(user.getUserId());
+        query.orderByTaskCreateTime().desc();
+        List<Task> list = null;
+        if (user.getPage() != PageDto.DEFAULT_PAGE) {
+            list = query.listPage(user.getPage(), user.getRow());
+        }else{
+            list = query.list();
+        }
+
+        List<ResourceOrderDto> resourceOrderDtos = new ArrayList<>();
+
+        for (Task task : list) {
+            String id = task.getId();
+            //System.out.println("tasks:" + JSONObject.toJSONString(task));
+            ResourceOrderDto resourceOrderDto = (ResourceOrderDto) taskService.getVariable(id, "resourceOrderDto");
+            resourceOrderDto.setTaskId(id);
+            resourceOrderDtos.add(resourceOrderDto);
+        }
+        return resourceOrderDtos;
+    }
+
+    public boolean agreeCompleteTask(@RequestBody ResourceOrderDto resourceOrderDto) {
+        TaskService taskService = processEngine.getTaskService();
+        Map<String, Object> variables = new HashMap<String, Object>();
+        variables.put("auditCode", resourceOrderDto.getAuditCode());
+        taskService.complete(resourceOrderDto.getTaskId(), variables);
+        return true;
+    }
+
+    public boolean refuteCompleteTask(@RequestBody ResourceOrderDto resourceOrderDto) {
+        TaskService taskService = processEngine.getTaskService();
+        Map<String, Object> variables = new HashMap<String, Object>();
+        variables.put("auditCode", resourceOrderDto.getAuditCode());
+        taskService.complete(resourceOrderDto.getTaskId(), variables);
+        return true;
+    }
+
+    /**
+     * 瀹℃牳 褰撳墠浠诲姟
+     *
+     * @param resourceOrderDto 璧勬簮璁㈠崟
+     * @return
+     */
+    public boolean complete(@RequestBody ResourceOrderDto resourceOrderDto) {
+        TaskService taskService = processEngine.getTaskService();
+
+        taskService.complete(resourceOrderDto.getTaskId());
+        return true;
+    }
+
+
 }

--
Gitblit v1.8.0