权限申请功能增加发布部门匹配子部门功能
This commit is contained in:
parent
843692ff53
commit
f628a7df74
@ -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<BO> 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<BO> 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<DepartmentModel> subDepartments = SDK.getORGAPI().getSubDepartments(deptId);
|
||||
if(!subDepartments.isEmpty()){
|
||||
for (DepartmentModel subDepartment : subDepartments) {
|
||||
addDeptToArray(deptArray,subDepartment.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user