wangliang 6 miesięcy temu
rodzic
commit
079261e8c8

+ 25 - 20
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -448,31 +448,36 @@ public class ActivitiServiceImpl implements ActivitiService {
         Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
         Long flowId = SystemConstant.convertIdToLong(task.getProcessInstanceId());
         List<Task> taskList = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
-        boolean myself = false;
-        if (!CollectionUtils.isEmpty(taskList)) {
-            for (Task t : taskList) {
-                if (Objects.nonNull(t.getAssignee()) && Objects.equals(t.getAssignee(),
-                        sysUser.getId().toString())) {
-                    myself = true;
-                    break;
-                } else {
-                    List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
-                    if (!CollectionUtils.isEmpty(identityLinkList)) {
-                        for (IdentityLink i : identityLinkList) {
-                            if (Objects.nonNull(i.getUserId()) && Objects.equals(i.getUserId(),
-                                    sysUser.getId().toString())) {
-                                myself = true;
-                                break;
+        if (!CollectionUtils.isEmpty(map) && Objects.nonNull(map.get(SystemConstant.APPROVE_OPERATION))) {
+            FlowApprovePassEnum approve = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
+            if (approve == FlowApprovePassEnum.PASS) {
+                boolean myself = false;
+                if (!CollectionUtils.isEmpty(taskList)) {
+                    for (Task t : taskList) {
+                        if (Objects.nonNull(t.getAssignee()) && Objects.equals(t.getAssignee(),
+                                sysUser.getId().toString())) {
+                            myself = true;
+                            break;
+                        } else {
+                            List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
+                            if (!CollectionUtils.isEmpty(identityLinkList)) {
+                                for (IdentityLink i : identityLinkList) {
+                                    if (Objects.nonNull(i.getUserId()) && Objects.equals(i.getUserId(),
+                                            sysUser.getId().toString())) {
+                                        myself = true;
+                                        break;
+                                    }
+                                }
                             }
                         }
                     }
+                } else {
+                    throw ExceptionResultEnum.ERROR.exception("未查询到流程任务数据");
+                }
+                if (!myself) {
+                    throw ExceptionResultEnum.ERROR.exception("不能审批他人的流程数据");
                 }
             }
-        } else {
-            throw ExceptionResultEnum.ERROR.exception("未查询到流程任务数据");
-        }
-        if (!myself) {
-            throw ExceptionResultEnum.ERROR.exception("不能审批他人的流程数据");
         }
 
         boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TASK_TIME_OUT);