From b24e024f386e7f25a071b58e9267a2c19f20ba1e Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 10 十二月 2024 18:11:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |  158 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 105 insertions(+), 53 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 103571d..71e3bcc 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ycl.common.core.domain.entity.SysRole;
 import com.ycl.common.core.domain.entity.SysUser;
 import com.ycl.common.enums.FlowComment;
+import com.ycl.common.enums.business.HandlerTypeEnum;
 import com.ycl.common.enums.business.TaskStatusEnum;
 import com.ycl.common.utils.SecurityUtils;
 import com.ycl.constant.TaskTypeConstant;
@@ -28,6 +29,7 @@
 import com.ycl.domain.form.ProjectProcessForm;
 import com.ycl.domain.vo.ProjectProcessVO;
 import com.ycl.domain.query.ProjectProcessQuery;
+import com.ycl.service.common.TaskCommonService;
 import com.ycl.system.service.ISysDeptService;
 import com.ycl.system.service.ISysRoleService;
 import com.ycl.system.service.ISysUserService;
@@ -52,6 +54,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -76,6 +79,7 @@
     private final ISysUserService sysUserService;
     private final ISysRoleService sysRoleService;
     private final ISysDeptService sysDeptService;
+    private final TaskCommonService taskCommonService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -111,14 +115,16 @@
         if (Objects.nonNull(pp.getProcessInsId())) {
             HistoricProcessInstance historicProcessInstance =
                     historyService.createHistoricProcessInstanceQuery().processInstanceId(pp.getProcessInsId()).singleResult();
-            // 鍒犻櫎涔嬪墠娴佺▼鐨勬暟鎹�
-            if (historicProcessInstance.getEndTime() != null) {
-                historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
-            } else {
-                // 鍒犻櫎娴佺▼瀹炰緥
-                runtimeService.deleteProcessInstance(pp.getProcessInsId(), "");
-                // 鍒犻櫎鍘嗗彶娴佺▼瀹炰緥
-                historyService.deleteHistoricProcessInstance(pp.getProcessInsId());
+            if (Objects.nonNull(historicProcessInstance)) {
+                // 鍒犻櫎涔嬪墠娴佺▼鐨勬暟鎹�
+                if (historicProcessInstance.getEndTime() != null) {
+                    historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
+                } else {
+                    // 鍒犻櫎娴佺▼瀹炰緥
+                    runtimeService.deleteProcessInstance(pp.getProcessInsId(), "");
+                    // 鍒犻櫎鍘嗗彶娴佺▼瀹炰緥
+                    historyService.deleteHistoricProcessInstance(pp.getProcessInsId());
+                }
             }
         }
         String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId());
@@ -201,7 +207,7 @@
         taskStatistics.setTodoTaskNum(this.getTodoTaskNum(projectProcess.getProcessInsId()));
         taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(processDefId, projectProcess.getProcessInsId()));
 //        taskStatistics.setCurrentTask(this.getCurrentNodeTaskList(projectProcess.getProcessInstanceId()));
-        taskStatistics.setRemainingTaskNum(this.getNotFinishedTaskNum(projectProcess.getProcessInsId()));
+        taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(projectProcess.getProcessDefId(), projectProcess.getProcessInsId()));
         detail.setStatistics(taskStatistics);
 
         Result result = Result.ok();
@@ -271,21 +277,17 @@
             taskVO.setDeployId(pd.getDeploymentId());
             taskVO.setProcessName(pd.getName());
             taskVO.setProcessInsId(task.getProcessInstanceId());
+            taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
 
             // 娴佺▼鍙戣捣浜轰俊鎭�
-            HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
-                    .processInstanceId(task.getProcessInstanceId())
-                    .singleResult();
-            SysUser startUser = sysUserService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
-            taskVO.setPromoterId(startUser.getUserId());
-            taskVO.setPromoterName(startUser.getNickName());
-            taskVO.setPromoterUnitName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
-            taskVO.setPromoterUnitId(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptId() : null);
+            this.setPromoterInfo(taskVO);
+
             // 娴佺▼澶勭悊浜轰俊鎭�
             List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId());
             for (IdentityLink identityLink : identityLinksForTask) {
                 // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂�
                 if (StringUtils.isNotBlank(identityLink.getUserId())) {
+                    taskVO.setHandlerType(HandlerTypeEnum.USER);
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
                         taskVO.setHandlerId(sysUser.getUserId());
@@ -298,6 +300,7 @@
                     // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂�
                 } else if (StringUtils.isNotBlank(identityLink.getGroupId())) {
                     if (identityLink.getGroupId().startsWith("dept")) {   // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+                        taskVO.setHandlerType(HandlerTypeEnum.DEPT);
                         String[] split = identityLink.getGroupId().split(":");
                         if (split.length > 1) {
                             // 閮ㄩ棬
@@ -310,6 +313,7 @@
                             }
                         }
                     } else {
+                        taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
                             taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
@@ -332,6 +336,26 @@
                 .eq(ProjectProcess::getProcessDefId, query.getProcessDefId())
                 .list();
         return Result.ok().data(list);
+    }
+
+    @Override
+    public Result taskIsAuditing(String processDefinitionId, String taskId) {
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
+        Collection<Process> processes = bpmnModel.getProcesses();
+        Boolean needAuditing = Boolean.FALSE;
+        for (Process process : processes) {
+            Collection<FlowElement> flowElements = process.getFlowElements();
+            for (FlowElement flowElement : flowElements) {
+                if (flowElement instanceof UserTask && flowElement.getId().equals(task.getTaskDefinitionKey())) {
+                    UserTask userTask = (UserTask) flowElement;
+                    needAuditing = taskCommonService.checkTaskNeedAuditing(userTask.getExtensionElements().get("properties"));
+                    break;
+                }
+
+            }
+        }
+        return Result.ok().data(needAuditing);
     }
 
     /**
@@ -372,21 +396,17 @@
             taskVO.setDeployId(pd.getDeploymentId());
             taskVO.setProcessName(pd.getName());
             taskVO.setProcessInsId(task.getProcessInstanceId());
+            taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
 
             // 娴佺▼鍙戣捣浜轰俊鎭�
-            HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
-                    .processInstanceId(task.getProcessInstanceId())
-                    .singleResult();
-            SysUser startUser = sysUserService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
-            taskVO.setPromoterId(startUser.getUserId());
-            taskVO.setPromoterName(startUser.getNickName());
-            taskVO.setPromoterUnitName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
-            taskVO.setPromoterUnitId(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptId() : null);
+            this.setPromoterInfo(taskVO);
+
             // 娴佺▼澶勭悊浜轰俊鎭�
             List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId());
             for (IdentityLink identityLink : identityLinksForTask) {
                 // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂�
                 if (StringUtils.isNotBlank(identityLink.getUserId())) {
+                    taskVO.setHandlerType(HandlerTypeEnum.USER);
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
                         taskVO.setHandlerId(sysUser.getUserId());
@@ -399,6 +419,7 @@
                     // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂�
                 } else if (StringUtils.isNotBlank(identityLink.getGroupId())) {
                     if (identityLink.getGroupId().startsWith("dept")) {   // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+                        taskVO.setHandlerType(HandlerTypeEnum.DEPT);
                         String[] split = identityLink.getGroupId().split(":");
                         if (split.length > 1) {
                             // 閮ㄩ棬
@@ -411,6 +432,7 @@
                             }
                         }
                     } else {
+                        taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
                             taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
@@ -440,7 +462,6 @@
         int startNum = pageSize * (pageNum - 1);
         int endNum = startNum + pageSize;
         List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId);
-        result.total(allUserTaskElement.size());
         if (startNum >= allUserTaskElement.size()) {
             // 濡傛灉璧峰绱㈠紩瓒呭嚭浜嗗垪琛ㄧ殑澶у皬锛岃繑鍥炰竴涓┖鍒楄〃
             return new ArrayList<>();
@@ -449,6 +470,7 @@
             // 妯℃嫙妯$硦鏌ヨ
             allUserTaskElement = allUserTaskElement.stream().filter(taskEl -> taskEl.getName().contains(taskName)).collect(Collectors.toList());
         }
+        result.total(allUserTaskElement.size());
         int end = Math.min(endNum, allUserTaskElement.size());
         List<UserTask> userTasks = allUserTaskElement.subList(startNum, end);
         // 鏌ュ嚭娴佺▼
@@ -470,8 +492,11 @@
                         .includeIdentityLinks()
                         .singleResult();
                 if (Objects.isNull(historicTask)) {
+                    vo.setPromoterName("鏆傛棤");
+                    vo.setPromoterUnitName("鏆傛棤");
                     // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
                     if (StringUtils.isNotBlank(userTask.getAssignee())) {
+                        vo.setHandlerType(HandlerTypeEnum.USER);
                         SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
                         if (Objects.nonNull(sysUser)) {
                             vo.setHandlerId(sysUser.getUserId());
@@ -482,6 +507,7 @@
                     } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
                         String groupId = userTask.getCandidateGroups().get(0);
                         if (groupId.startsWith("dept")) {   // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+                            vo.setHandlerType(HandlerTypeEnum.DEPT);
                             String[] split = groupId.split(":");
                             if (split.length > 1) {
                                 // 閮ㄩ棬
@@ -494,6 +520,7 @@
                                 }
                             }
                         } else {
+                            vo.setHandlerType(HandlerTypeEnum.ROLE);
                             SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId));
                             if (Objects.nonNull(role)) {
                                 vo.setHandlerUnitId(Long.parseLong(groupId));
@@ -517,6 +544,7 @@
                         vo.setHandlerId(handlerUserId);
                         vo.setHandlerName(handlerUser.getNickName());
                     }
+                    vo.setTaskDefinitionKey(historicTask.getTaskDefinitionKey());
                     this.setPromoterAndHandler(vo, historicTask.getIdentityLinks());
                 }
             } else {
@@ -524,6 +552,8 @@
                 vo.setTaskId(task.getId());
                 vo.setExecutionId(task.getExecutionId());
                 vo.setCreateTime(task.getCreateTime());
+                vo.setTaskDefinitionKey(task.getTaskDefinitionKey());
+
                 this.setPromoterAndHandler(vo, null);
             }
             return vo;
@@ -547,7 +577,7 @@
         int startNum = pageSize * (pageNum - 1);
         int endNum = startNum + pageSize;
         List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId);
-        result.total(allUserTaskElement.size());
+
         if (startNum >= allUserTaskElement.size()) {
             // 濡傛灉璧峰绱㈠紩瓒呭嚭浜嗗垪琛ㄧ殑澶у皬锛岃繑鍥炰竴涓┖鍒楄〃
             return new ArrayList<>();
@@ -556,6 +586,7 @@
             // 妯℃嫙妯$硦鏌ヨ
             allUserTaskElement = allUserTaskElement.stream().filter(taskEl -> taskEl.getName().contains(taskName)).collect(Collectors.toList());
         }
+        result.total(allUserTaskElement.size());
         int end = Math.min(endNum, allUserTaskElement.size());
         List<UserTask> userTasks = allUserTaskElement.subList(startNum, end);
         // 鏌ュ嚭娴佺▼
@@ -579,6 +610,7 @@
                 if (Objects.isNull(historicTask)) {
                     // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
                     if (StringUtils.isNotBlank(userTask.getAssignee())) {
+                        vo.setHandlerType(HandlerTypeEnum.USER);
                         SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
                         if (Objects.nonNull(sysUser)) {
                             vo.setHandlerId(sysUser.getUserId());
@@ -589,6 +621,7 @@
                     } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
                         String groupId = userTask.getCandidateGroups().get(0);
                         if (groupId.startsWith("dept")) {   // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+                            vo.setHandlerType(HandlerTypeEnum.DEPT);
                             String[] split = groupId.split(":");
                             if (split.length > 1) {
                                 // 閮ㄩ棬
@@ -601,6 +634,7 @@
                                 }
                             }
                         } else {
+                            vo.setHandlerType(HandlerTypeEnum.ROLE);
                             SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId));
                             if (Objects.nonNull(role)) {
                                 vo.setHandlerUnitId(Long.parseLong(groupId));
@@ -656,22 +690,13 @@
 
 
     /**
-     * 璁剧疆浠诲姟鐨勫彂璧蜂汉&澶勭悊浜�
+     * 璁剧疆浠诲姟鐨勫彂璧蜂汉&澶勭悊浜�   鍙湁寰呭姙浠诲姟鍜屽凡瀹屾垚浠诲姟鎵嶄細鎺夎繖涓柟娉�
      *
      * @param taskVO
      * @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁�
      */
     private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) {
-        // TODO 鍙戣捣浜烘槸鍚﹀簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉
-        // 娴佺▼鍙戣捣浜轰俊鎭�
-        HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
-                .processInstanceId(taskVO.getProcessInsId())
-                .singleResult();
-        SysUser startUser = sysUserService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
-        taskVO.setPromoterId(startUser.getUserId());
-        taskVO.setPromoterName(startUser.getNickName());
-        taskVO.setPromoterUnitId(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptId() : null);
-        taskVO.setPromoterUnitName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
+        this.setPromoterInfo(taskVO);
         // 娴佺▼澶勭悊浜轰俊鎭�
         if (TaskStatusEnum.TODO.equals(taskVO.getTaskStatus())) {
             List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(taskVO.getTaskId());
@@ -680,6 +705,7 @@
                 if (StringUtils.isNotBlank(identityLink.getUserId())) {
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
+                        taskVO.setHandlerType(HandlerTypeEnum.USER);
                         taskVO.setHandlerId(sysUser.getUserId());
                         if (Objects.nonNull(sysUser.getDept())) {
                             taskVO.setHandlerUnitId(sysUser.getDept().getDeptId());
@@ -690,6 +716,7 @@
                     // 缁戝畾鐨勬槸瑙掕壊鎴栬�呮槸閮ㄩ棬锛岄渶瑕佹牴鎹甶d鍒ゆ柇
                 } else if (StringUtils.isNotBlank(identityLink.getGroupId())) {
                     if (identityLink.getGroupId().startsWith("dept")) {   // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1
+                        taskVO.setHandlerType(HandlerTypeEnum.DEPT);
                         String[] split = identityLink.getGroupId().split(":");
                         if (split.length > 1) {
                             // 閮ㄩ棬
@@ -702,6 +729,7 @@
                             }
                         }
                     } else {
+                        taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
                             taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
@@ -716,6 +744,7 @@
             for (IdentityLinkInfo identityLink : identityLinkInfos) {
                 // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂�
                 if (StringUtils.isNotBlank(identityLink.getUserId())) {
+                    taskVO.setHandlerType(HandlerTypeEnum.USER);
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
 //                        taskVO.setHandlerId(sysUser.getUserId());
@@ -728,6 +757,7 @@
                     // 缁戝畾鐨勬槸瑙掕壊锛屾煡鍑鸿鑹插悕绉�
                 } else if (StringUtils.isNotBlank(identityLink.getGroupId())) {
                     if (identityLink.getGroupId().startsWith("dept")) {
+                        taskVO.setHandlerType(HandlerTypeEnum.DEPT);
                         String[] split = identityLink.getGroupId().split(":");
                         if (split.length > 1) {
                             // 閮ㄩ棬
@@ -737,18 +767,50 @@
                                 taskVO.setHandlerUnitName(dept.getDeptName());
                             }
                         }
-                    }
-                    SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
-                    if (Objects.nonNull(role)) {
-                        taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
-                        taskVO.setHandlerUnitName("鐢辨嫢鏈夎鑹诧細銆�" + role.getRoleName() + "銆戠殑浜哄鐞�");
+                    } else {
+                        taskVO.setHandlerType(HandlerTypeEnum.ROLE);
+                        SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
+                        if (Objects.nonNull(role)) {
+                            taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
+                            taskVO.setHandlerUnitName("鐢辨嫢鏈夎鑹诧細銆�" + role.getRoleName() + "銆戠殑浜哄鐞�");
 //                        taskVO.setHandlerName(role.getRoleName());
 //                        taskVO.setHandlerId(null);
+                        }
                     }
                 }
             }
         }
 
+    }
+
+    /**
+     * 璁剧疆浠诲姟鍙戣捣浜�
+     *
+     * @param taskVO
+     */
+    private void setPromoterInfo(CustomerTaskVO taskVO) {
+        // 鍙戣捣浜哄簲涓轰笂涓�鑺傜偣鐨勫鐞嗕汉
+        List<String> beforeNodeKey = taskCommonService.getBeforeNodeInfo(taskVO.getProcessDefId(), taskVO.getTaskDefinitionKey());
+        List<SysUser> userList = beforeNodeKey.stream().map(key -> {
+            HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskDefinitionKey(key).singleResult();
+            if (Objects.nonNull(historicTaskInstance)) {
+                // 瀹為檯棰嗗彇杩欎釜浠诲姟鐨勪汉锛屼篃灏辨槸澶勭悊浜�
+                String assignee = historicTaskInstance.getAssignee();
+                SysUser startUser = sysUserService.selectUserById(Long.parseLong(assignee));
+                return startUser;
+            } else {
+                return null;
+            }
+        }).filter(user -> Objects.nonNull(user)).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(userList)) {
+            taskVO.setPromoterName("鏆傛棤");
+            taskVO.setPromoterUnitName("鏆傛棤");
+        } else {
+            taskVO.setPromoterId(userList.stream().map(user -> { return user.getUserId() + ""; }).collect(Collectors.joining("銆�")));
+            taskVO.setPromoterName(userList.stream().map(user -> { return user.getNickName(); }).collect(Collectors.joining("銆�")));
+            taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { return user.getDept().getDeptId() + "";}).collect(Collectors.joining("銆�")));
+            taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { return user.getDept().getDeptName() + "";}).collect(Collectors.joining("銆�")));
+        }
     }
 
     /**
@@ -794,16 +856,6 @@
      */
     private Long getTotalTaskNum(String processDefinitionId) {
         return Long.valueOf(this.getAllUserTaskElement(processDefinitionId).size());
-    }
-
-    /**
-     * 鑾峰彇娴佺▼鍓╀綑鏈畬鎴愮殑浠诲姟鏁�
-     *
-     * @param processInstanceId
-     * @return
-     */
-    private Long getNotFinishedTaskNum(String processInstanceId) {
-        return historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).processUnfinished().count();
     }
 
     /**

--
Gitblit v1.8.0