权限阅览代码提交
This commit is contained in:
parent
3dbe45bc56
commit
6935405ca2
@ -30,6 +30,7 @@ import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListenerInterface;
|
||||
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
||||
import com.actionsoft.bpms.org.model.DepartmentModel;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
import com.actionsoft.bpms.util.UUIDGener;
|
||||
@ -413,12 +414,26 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
|
||||
|
||||
/**
|
||||
* 流程发布范围权限单独存储
|
||||
* @param bo 流程发布bo主表
|
||||
*
|
||||
* @param publish 流程发布bo主表
|
||||
* @param bolistN 新增发布流程信息
|
||||
* @param bolistC 变更发布流程信息,需要将已存在的相应流程权限信息进行删除,再进行权限存储
|
||||
* @param bolistS 停用发布流程信息,删除相应流程权限信息
|
||||
*/
|
||||
private void savePublishScope(BO publish, List<BO> bolistN, List<BO> bolistC, List<BO> bolistS) {
|
||||
|
||||
|
||||
|
||||
ProcessInstance boProcessInstances = SDK.getProcessAPI()
|
||||
.createBOProcessInstance("obj_e0ba99c88d4e423a88c00da30700d722","admin", "阅览权限监控");
|
||||
BO viewing=new BO();
|
||||
viewing.set("PROCESSID", publish.getBindId());
|
||||
//存储发布流程的流程实例ID,与权限阅览数据视图做关联
|
||||
viewing.set("PROCESSTITLE" , publish.getString("PROCESS_TITLE"));
|
||||
SDK.getBOAPI().create("BO_ACT_VIEWING_RIGHTS",viewing,boProcessInstances.getId(),"");
|
||||
|
||||
|
||||
String newBoName = "BO_ACT_PUBLISH_PERM_SCOPE";
|
||||
String bindId = publish.getBindId();
|
||||
String wsId = publish.getString("WSID");
|
||||
String applyUser = publish.getString("APPLYUSERID");
|
||||
@ -428,6 +443,8 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
|
||||
String sendScopeLevel = publish.getString("SEND_SCOPE_LEVEL");
|
||||
Set<String> removeVerIds = new HashSet<>();
|
||||
Map<String, String> addVerMap = new HashMap<>();
|
||||
|
||||
|
||||
//将发布范围权限信息保存至范围权限表
|
||||
if (bolistN != null) {
|
||||
for (BO boN : bolistN) {
|
||||
@ -465,7 +482,6 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
|
||||
}
|
||||
}
|
||||
|
||||
String newBoName = "BO_ACT_PUBLISH_PERM_SCOPE";
|
||||
// 先删除相应原有权限数据,再进行数据更新
|
||||
Set<String> removeIds = new HashSet<>();
|
||||
for (String removeVerId : removeVerIds) {
|
||||
@ -479,9 +495,8 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
|
||||
for (String removeId : removeIds) {
|
||||
SDK.getBOAPI().remove(newBoName, removeId);
|
||||
}
|
||||
|
||||
// 重新添加权限
|
||||
List<BO> list = new ArrayList<>();
|
||||
//List<BO> list = new ArrayList<>();
|
||||
for (Map.Entry<String, String> entry : addVerMap.entrySet()) {
|
||||
String verId = entry.getKey();
|
||||
String name = entry.getValue();
|
||||
@ -494,12 +509,99 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
|
||||
bo.set("ORGPERM", "1".equals(sendScope) ? SDK.getORGAPI().getCompanyByUser(applyUser).getId() : sendScopeOrg);
|
||||
bo.set("POSTPERM", "1".equals(sendScope) ? "" : sendScopePost);
|
||||
bo.set("LEVELPERM", "1".equals(sendScope) ? "" : sendScopeLevel);
|
||||
list.add(bo);
|
||||
}
|
||||
if (list.size() > 0) {
|
||||
SDK.getBOAPI().create(newBoName, list, bindId, applyUser);
|
||||
SDK.getLogAPI().consoleInfo("[发布范围权限信息保存至范围权限表]更新成功");
|
||||
//存储发布流程的流程实例ID,与权限阅览数据视图做关联
|
||||
bo.set("PUBLISHPROCESSID" , bindId);
|
||||
|
||||
|
||||
RowMap rowMap = DBSql.getMap("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID=?", verId);
|
||||
if(rowMap!=null){
|
||||
String plid=rowMap.getString("ID");
|
||||
RowMap PROCESS_ARCHITECTURE_L1= DBSql.getMap("SELECT PROPERTYVALUE FROM APP_ACT_COE_PAL_PROP where PLID='"+plid+"' and PROPERTYID='Process_Architecture_L1'");
|
||||
|
||||
RowMap PROCESS_ARCHITECTURE_L2= DBSql.getMap("SELECT PROPERTYVALUE FROM APP_ACT_COE_PAL_PROP where PLID='"+plid+"' and PROPERTYID='Process_Architecture_L2'");
|
||||
|
||||
RowMap PROCESS_ARCHITECTURE_L3= DBSql.getMap("SELECT PROPERTYVALUE FROM APP_ACT_COE_PAL_PROP where PLID='"+plid+"' and PROPERTYID='Process_Architecture_L3'");
|
||||
|
||||
RowMap PROCESS_ARCHITECTURE_L4= DBSql.getMap("SELECT PROPERTYVALUE FROM APP_ACT_COE_PAL_PROP where PLID='"+plid+"' and PROPERTYID='Process_Architecture_L4'");
|
||||
|
||||
RowMap versions= DBSql.getMap("SELECT PROPERTYVALUE FROM APP_ACT_COE_PAL_PROP where PLID = '"+plid+"' and PROPERTYID='versions'");
|
||||
|
||||
List<RowMap> rlatRowMap= DBSql.getMaps("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT where FILEID='"+plid+"' and ATTRID='Issuing_department'");
|
||||
|
||||
//事业部
|
||||
BO publishBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH").detailByBindId(bindId);
|
||||
String applydepid=publishBO.getString("APPLYDEPTID");
|
||||
String applydeptname=publishBO.getString("APPLYDEPTNAME");
|
||||
|
||||
// 发布部门
|
||||
String dempId = "";
|
||||
String dempname="";
|
||||
for(RowMap oneRowMap:rlatRowMap){
|
||||
String relationshapetext=oneRowMap.getString("RELATIONSHAPETEXT");
|
||||
JSONObject js=JSONObject.parseObject(relationshapetext);
|
||||
if(js!=null){
|
||||
dempId += js.getString("id") + ",";
|
||||
dempname += js.getString("name") + ",";
|
||||
}
|
||||
}
|
||||
if(UtilString.isNotEmpty(dempId)){
|
||||
dempId = dempId.substring(0, dempId.length() - 1);
|
||||
bo.set("PUBLISHDEPTID",dempId);
|
||||
}
|
||||
if(UtilString.isNotEmpty(dempname)){
|
||||
dempname = dempname.substring(0, dempname.length() - 1);
|
||||
bo.set("PUBLISHDEPT",dempname);
|
||||
}
|
||||
|
||||
PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(plid);
|
||||
String version=String.valueOf(palRepositoryModel.getVersion());
|
||||
if(version!=null){
|
||||
String plver=version.substring(0,version.indexOf(".")) + "." + version.substring(version.length() - 1, version.length());
|
||||
bo.set("VERSION",plver);
|
||||
}
|
||||
bo.set("PROCESS_ARCHITECTURE_L1",PROCESS_ARCHITECTURE_L1.getString("PROPERTYVALUE"));
|
||||
bo.set("PROCESS_ARCHITECTURE_L2",PROCESS_ARCHITECTURE_L2.getString("PROPERTYVALUE"));
|
||||
bo.set("PROCESS_ARCHITECTURE_L3",PROCESS_ARCHITECTURE_L3.getString("PROPERTYVALUE"));
|
||||
bo.set("PROCESS_ARCHITECTURE_L4",PROCESS_ARCHITECTURE_L4.getString("PROPERTYVALUE"));
|
||||
|
||||
|
||||
DepartmentModel departmentModel=SDK.getORGAPI().getDepartmentById(applydepid);
|
||||
if(departmentModel!=null){
|
||||
boolean isclosed=departmentModel.isClosed();
|
||||
if(isclosed==false){
|
||||
String allpath = SDK.getORGAPI().getDepartmentById(applydepid).getPathNameOfCache();
|
||||
if(allpath.contains("事业部")){
|
||||
//String depname=allpath.substring(allpath.indexOf("/")+2,allpath.indexOf("事业部")+3);
|
||||
// 原始字符串
|
||||
String input = allpath;
|
||||
if(input.contains("/")){
|
||||
// 使用split方法按"/"分割字符串
|
||||
String[] parts = input.split("/");
|
||||
// 检查是否分割成功且有数据
|
||||
if (parts.length > 0) {
|
||||
String department = parts[0];
|
||||
bo.set("BUSINESS_DIVISION",department);
|
||||
}
|
||||
}
|
||||
} else if(allpath.contains("伊利集团总部")){
|
||||
bo.set("BUSINESS_DIVISION","伊利集团总部");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ProcessInstance boProcessInstance = SDK.getProcessAPI()
|
||||
.createBOProcessInstance("obj_e076b01bd0d04bc39e5af12e2c8c188c", applyUser, "权限阅览");
|
||||
SDK.getBOAPI().create(newBoName, bo, boProcessInstance.getId(), applyUser);
|
||||
|
||||
// list.add(bo);
|
||||
}
|
||||
// if (list.size() > 0) {
|
||||
// SDK.getBOAPI().create(newBoName, list, bindId, applyUser);
|
||||
// SDK.getLogAPI().consoleInfo("[发布范围权限信息保存至范围权限表]更新成功");
|
||||
// }
|
||||
SDK.getLogAPI().consoleInfo("[发布范围权限信息保存至范围权限表]更新成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user