From c8aee7b9bfd79cfd741d7e5692520f4f51a31a86 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期一, 18 五月 2020 18:30:01 +0800 Subject: [PATCH] bak 修改 获取版本数据前 --- src/main/java/com/highdatas/mdm/service/act/impl/TaskServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 42 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/TaskServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/TaskServiceImpl.java index dcc857c..87b6d3b 100644 --- a/src/main/java/com/highdatas/mdm/service/act/impl/TaskServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/act/impl/TaskServiceImpl.java @@ -2,6 +2,7 @@ import com.highdatas.mdm.entity.TUser; import com.highdatas.mdm.pojo.NextTaskUserInfo; +import com.highdatas.mdm.util.DbUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.*; import org.activiti.engine.delegate.Expression; @@ -44,10 +45,14 @@ } public String claimTask(String workflowId) { Task task = getTask(workflowId); - + if (task == null) { + return null; + } TUser onlineUser = getOnlineUser(); //resultPool = serviceCaller.getResultPool(); - + if (onlineUser == null) { + return null; + } try { taskService.claim(task.getId(), onlineUser.getUserId()); //resultPool.setMessage("Task is claimed"); @@ -60,13 +65,10 @@ } - public boolean completeTask(String taskId, boolean pass, String reason, Map<String,Object> other) { + public boolean completeTask(String taskId, Object pass, String reason, Map<String,Object> other) { Map<String, Object> variables = new LinkedHashMap<String, Object>(); if(other != null){ - Set<String> keySet = other.keySet(); - for (String key : keySet) { - variables.put(key, other.get(key)); - } + variables.putAll(other); } variables.put("pass", pass); variables.put("reason", reason); @@ -83,14 +85,14 @@ } } - public boolean completeTask(String taskId, boolean pass, String reason) { + public boolean completeTask(String taskId, Object pass, String reason) { return completeTask(taskId,pass,reason,null); - } - + } + public List<String> getTodoTask() { TUser onlineUser = getOnlineUser(); Set<String> result = new HashSet<>(); - //List<Task> list1 = taskService.createTaskQuery().active().list(); + //List<Task> list1 = TimeTaskService.createTaskQuery().active().list(); List<Task> list = taskService.createTaskQuery().taskAssignee(onlineUser.getUserId()).active().list(); result.addAll(list.stream().map(task -> task.getProcessInstanceId()).collect(Collectors.toList())); @@ -101,6 +103,9 @@ List<Group> groups = identityService.createGroupQuery().groupMember(onlineUser.getUserId()).list(); + if (groups.size() == 0) { + return new ArrayList<>(result); + } List<String> groupIds = groups.stream().map(Group::getId).collect(Collectors.toList()); toClaimList = taskService.createTaskQuery().taskCandidateGroupIn(groupIds).active().list(); @@ -116,15 +121,17 @@ @Override public NextTaskUserInfo getNestTaskAssignee(String workflowId) { - //TODO 闇�淇敼 NextTaskUserInfo nextTaskUserInfo = new NextTaskUserInfo(); Task nextTask = geTask(workflowId); + if (nextTask == null) { + return null; + } String nextTaskAssignee = nextTask.getAssignee(); if (!StringUtils.isEmpty(nextTaskAssignee)) { - nextTaskUserInfo.setUserId(nextTaskAssignee); - nextTaskUserInfo.setRoleId("R001"); + nextTaskUserInfo.addOneUser(nextTaskAssignee); return nextTaskUserInfo; } + String processDefinitionId=nextTask.getProcessDefinitionId(); // 鑾峰彇娴佺▼瀹氫箟id ProcessDefinitionEntity processDefinitionEntity= (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefinitionId); @@ -133,11 +140,28 @@ TaskDefinition taskDef = (TaskDefinition)activityImpl.getProperties().get("taskDefinition"); Set<Expression> userCodes = taskDef.getCandidateUserIdExpressions();//鍊欓�変汉 Set<Expression> roleCodes = taskDef.getCandidateGroupIdExpressions();//鍊欓�夌粍 - if (roleCodes.size() != 0) { - String roleId = roleCodes.stream().map(expression -> expression.getExpressionText()).findFirst().get(); - nextTaskUserInfo.setRoleId(roleId); + if (roleCodes != null) { + Set<String> roleList = roleCodes.stream().map(expression -> expression.getExpressionText()).collect(Collectors.toSet()); + nextTaskUserInfo.addRoleList(roleList); } - return nextTaskUserInfo; + Set<String> userList = new HashSet<>(); + if (userCodes != null) { + Set userSet = userCodes.stream().map(expression -> expression.getExpressionText()).collect(Collectors.toSet()); + userList.addAll(userSet); + } + List<String> roleIdList = nextTaskUserInfo.getRoleIdList(); + if (roleIdList == null || roleIdList.isEmpty()) { + nextTaskUserInfo.addUserList(userList); + return nextTaskUserInfo; + } + for (String roleId : roleIdList) { + Set<String> userByRole = DbUtils.getUserByRole(roleId); + userList.addAll(userByRole); + } + nextTaskUserInfo.addUserList(userList); + return nextTaskUserInfo; + + } } -- Gitblit v1.8.0