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