From 5cd0e50ccbc6e10dd4e488d8b4106e82fb676521 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 10 十二月 2024 14:22:36 +0800
Subject: [PATCH] 查询任务是否需要审核接口完善

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   65 +++++++++++++++-----------------
 1 files changed, 31 insertions(+), 34 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 50f95df..984dd4e 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -29,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;
@@ -78,6 +79,7 @@
     private final ISysUserService sysUserService;
     private final ISysRoleService sysRoleService;
     private final ISysDeptService sysDeptService;
+    private final TaskCommonService taskCommonService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -113,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());
@@ -203,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();
@@ -341,26 +345,22 @@
 
     @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) {
+                if (flowElement instanceof UserTask && flowElement.getId().equals(task.getTaskDefinitionKey())) {
                     UserTask userTask = (UserTask) flowElement;
-                    List<ExtensionElement> extensionElements = userTask.getExtensionElements().get("flowable:properties");
-                    if (! CollectionUtils.isEmpty(extensionElements)) {
-                        for (ExtensionElement extensionElement : extensionElements) {
-                            String fieldName = extensionElement.getAttributeValue(taskId,"name");
-                            String fieldValue = extensionElement.getAttributeValue(taskId,"value");
-                            System.out.println("Field Name: " + fieldName + ", Field Value: " + fieldValue);
-                        }
-                    }
+                    needAuditing = taskCommonService.checkTaskNeedAuditing(userTask.getExtensionElements().get("properties"));
+                    break;
                 }
 
             }
         }
-        return null;
+        return Result.ok().data(needAuditing);
     }
 
     /**
@@ -719,6 +719,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());
@@ -729,6 +730,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) {
                             // 閮ㄩ棬
@@ -741,6 +743,7 @@
                             }
                         }
                     } else {
+                        taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
                             taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
@@ -755,6 +758,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());
@@ -767,6 +771,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) {
                             // 閮ㄩ棬
@@ -776,13 +781,15 @@
                                 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);
+                        }
                     }
                 }
             }
@@ -833,16 +840,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