|
@@ -448,31 +448,36 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
|
|
Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
|
|
Long flowId = SystemConstant.convertIdToLong(task.getProcessInstanceId());
|
|
Long flowId = SystemConstant.convertIdToLong(task.getProcessInstanceId());
|
|
List<Task> taskList = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
|
|
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);
|
|
boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_FLOW_TASK_PREFIX + flowId, SystemConstant.REDIS_LOCK_FLOW_TASK_TIME_OUT);
|