From f628a7df74379b82640936bffccf10cca5d0b304 Mon Sep 17 00:00:00 2001 From: yujh Date: Mon, 24 Jun 2024 17:55:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E7=94=B3=E8=AF=B7=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=A2=9E=E5=8A=A0=E5=8F=91=E5=B8=83=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=AD=90=E9=83=A8=E9=97=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/AddFilePermTaskEndEvent.java | 41 +++++++++++++++---- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/AddFilePermTaskEndEvent.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/AddFilePermTaskEndEvent.java index a8c179d4..850936f3 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/AddFilePermTaskEndEvent.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/AddFilePermTaskEndEvent.java @@ -1,17 +1,15 @@ package com.actionsoft.apps.coe.pal.publisher.event; -import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryPropertyCache; -import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryPropertyModel; import com.actionsoft.apps.coe.pal.publisher.constant.FilePermConstant; import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener; import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListenerInterface; -import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; -import com.actionsoft.bpms.util.UUIDGener; +import com.actionsoft.bpms.org.model.DepartmentModel; import com.actionsoft.bpms.util.UtilString; import com.actionsoft.sdk.local.SDK; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONArray; + import java.util.List; @@ -78,13 +76,23 @@ public class AddFilePermTaskEndEvent extends ExecuteListener implements ExecuteL * 发布部门更新 * @param ctx * @param sourceBo - * @param wsId */ public void updatePublishScopeDept(ProcessExecutionContext ctx,BO sourceBo){ //先查询发布部门为当前部门一致的权限 String publishDept = sourceBo.getString("PUBLISHDEPT");//所选发布部门 - String inClause = "'" + String.join("', '", publishDept.split(",")) + "'"; - List list = SDK.getBOAPI().query(FilePermConstant.BO_ACT_PUBLISH_PERM_SCOPE).addQuery("PUBLISHDEPTID IN (" + inClause + ")", null).list(); + StringBuilder likeClause = new StringBuilder();//like 语句 + JSONArray deptArray = new JSONArray(); + String[] split = publishDept.split(","); + for (String s : split) { + addDeptToArray(deptArray,s); + } + for (Object deptId : deptArray) { + if(UtilString.isNotEmpty(likeClause.toString())){ + likeClause.append(" OR "); + } + likeClause.append(" PUBLISHDEPTID LIKE '").append(deptId).append("'"); + } + List list = SDK.getBOAPI().query(FilePermConstant.BO_ACT_PUBLISH_PERM_SCOPE).addQuery(likeClause.toString(), null).list(); for (BO oldBo : list) { updateData(ctx,oldBo); } @@ -113,4 +121,21 @@ public class AddFilePermTaskEndEvent extends ExecuteListener implements ExecuteL SDK.getBOAPI().update(FilePermConstant.BO_ACT_PUBLISH_PERM_SCOPE,oldBo); } } + + /** + * 遍历部门与子部门,并增加数据 + * @param deptArray + * @param deptId + */ + public void addDeptToArray(JSONArray deptArray,String deptId){ + if(!deptArray.contains(deptId)){//先添加当前部门 + deptArray.add(deptId); + } + List subDepartments = SDK.getORGAPI().getSubDepartments(deptId); + if(!subDepartments.isEmpty()){ + for (DepartmentModel subDepartment : subDepartments) { + addDeptToArray(deptArray,subDepartment.getId()); + } + } + } }