From 3224673dfd076842c214aefeeea6c1e5c5d4e4ec Mon Sep 17 00:00:00 2001 From: pengqiang Date: Fri, 12 Nov 2021 11:52:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=B5=81=E7=A8=8B=E5=AE=9E?= =?UTF-8?q?=E5=88=97id=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/service/ActTaskDefService.java | 22 +++++++++++++++++++ .../java/cn/palmte/work/utils/ActUtil.java | 17 ++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/main/java/cn/palmte/work/service/ActTaskDefService.java b/src/main/java/cn/palmte/work/service/ActTaskDefService.java index e5cb9ab..71242fc 100644 --- a/src/main/java/cn/palmte/work/service/ActTaskDefService.java +++ b/src/main/java/cn/palmte/work/service/ActTaskDefService.java @@ -51,6 +51,10 @@ public class ActTaskDefService { String message = json.getString("message"); int type = json.getInteger("type"); + completeTask(taskId, procInsId, message, type); + } + + private void completeTask(String taskId, String procInsId, String message, int type) { String userId = InterfaceUtil.getAdminId() + ""; taskService.addComment(taskId, procInsId, message); @@ -67,8 +71,26 @@ public class ActTaskDefService { //会签处理 handleMulti(taskId, procInsId, type, userId, actTaskDef); } + } + /** + * 通过流程实列id完成任务 + * + * @param procInsId + * @param type + * @param comment + */ + public void completeProcInsTask(String procInsId, int type, String comment) { + int adminId = InterfaceUtil.getAdminId(); + List taskList = taskService.createTaskQuery().processInstanceId(procInsId).list(); + List assignUserList; + for (Task task : taskList) { + assignUserList = actUtil.getAssignUserList(task.getId()); + if (assignUserList.contains(String.valueOf(adminId))) { + completeTask(task.getId(), procInsId, comment, type); + } + } } /** diff --git a/src/main/java/cn/palmte/work/utils/ActUtil.java b/src/main/java/cn/palmte/work/utils/ActUtil.java index 7d01241..dfb06eb 100644 --- a/src/main/java/cn/palmte/work/utils/ActUtil.java +++ b/src/main/java/cn/palmte/work/utils/ActUtil.java @@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -207,6 +208,22 @@ public class ActUtil { return names; } + public List getAssignUserList(String taskId) { + List userList = new ArrayList<>(); + List identityLinkList = taskService.getIdentityLinksForTask(taskId); + if (identityLinkList == null || identityLinkList.isEmpty()) { + return userList; + } + + for (IdentityLink identityLink : identityLinkList) { + if ("assignee".equals(identityLink.getType()) || "candidate".equals(identityLink.getType())) { + String assigneeUserId = identityLink.getUserId(); + userList.add(assigneeUserId); + } + } + return userList; + } + public static String filterNull(final Object str) { String rs = (str == null) ? "" : str.toString().trim();