删除模型取消发布知识,回收站恢复模型文件重新发布知识

This commit is contained in:
Mr-wang 2023-08-15 15:28:00 +08:00
parent d5247f30a1
commit a75e92ea73
2 changed files with 92 additions and 6 deletions

View File

@ -27,6 +27,7 @@ import com.actionsoft.bpms.bpmn.constant.ProcessDefinitionConst;
import com.actionsoft.bpms.bpmn.engine.cache.ProcessDefCache;
import com.actionsoft.bpms.bpmn.engine.cache.util.ProcessDefUtil;
import com.actionsoft.bpms.bpmn.engine.cache.util.ProcessDefVersionUtil;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.model.def.ProcessDefinition;
import com.actionsoft.bpms.bpmn.modeler.io.BPMNIO;
import com.actionsoft.bpms.commons.cache.Cache;
@ -11443,6 +11444,10 @@ public String deleteReply(String replyid, String messageid) {
if(model.isPublish()&&!"admin".equals(_uc.getUID())) {
return ResponseObject.newErrResponse("已发布文件不允许删除,请联系系统管理员!").toString();
}
if (model.isPublish()&&"admin".equals(_uc.getUID())){
CancelPublishKnwl("com.actionsoft.apps.coe.pal",_uc.getSessionId(),model.getExt4());
}
String result = removeTreeNode(repositoryId, wsId);
JSONObject moveRo = JSONObject.parseObject(result);
if (!"ok".equals(moveRo.getString("result"))) {
@ -11864,6 +11869,29 @@ public String deleteReply(String replyid, String messageid) {
return ro.toString();
}
/**
* 模型文件删除后,取消发布知识库中的知识文件
* @param processExecutionContext
* @param sid
* @param knwlId
* @return
*/
public boolean CancelPublishKnwl(String sourceAppId, String sid, String knwlId) {
// aslp服务地址
String aslp = "aslp://com.actionsoft.apps.kms/CancelPublishKnwl";
// 参数定义列表
Map params = new HashMap<String, Object>();
// sid如果为空则需要传createUser参数,非必填
params.put("sid", sid);
// 知识ID,必填
params.put("knwlId", knwlId);
AppAPI appAPI = SDK.getAppAPI();
// 取消发布知识全部维度
ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params);
System.out.println("取消发布的ro=====>>>>" + ro);
return ro.isOk();
}
/**
* 校验当前用户是否有查看流程文件的权限
* @param uuid

View File

@ -24,13 +24,13 @@ import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.Design
import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil;
import com.actionsoft.apps.coe.pal.system.logger.CoeLogger;
import com.actionsoft.apps.lifecycle.api.AppsAPIManager;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.bpms.util.UtilDate;
import com.actionsoft.bpms.util.UtilFile;
import com.actionsoft.bpms.util.*;
import com.actionsoft.apps.coe.pal.pal.repository.cache.CoeProcessLevelNoCache;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryRemoveCache;
@ -55,8 +55,8 @@ import com.actionsoft.apps.coe.pal.pal.ws.dao.CoeWorkSpaceDaoFactory;
import com.actionsoft.apps.coe.pal.pal.ws.model.CoeWorkSpaceModel;
import com.actionsoft.apps.coe.pal.system.property.CoePropertyUtil;
import com.actionsoft.apps.coe.pal.teamwork.dao.TeamPerm;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.sdk.local.SDK;
import com.actionsoft.sdk.local.api.AppAPI;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@ -560,7 +560,9 @@ public class CoeProcessRecycleWeb extends ActionWeb {
PALRepositoryRemoveCache.getCache().put(model.getId(), model);
}
}
if (model.isPublish()){
PublishKnow("com.actionsoft.apps.coe.pal",_uc,model.getExt4());
}
}
//如果流程库中已经存在该模型说明其子文件还原时创建过模型需要替换流程库中的模型
@ -621,7 +623,63 @@ public class CoeProcessRecycleWeb extends ActionWeb {
ro.put("totalNum", totalNum);
return ro.toString();
}
/**
* 发布知识
*
* @param processExecutionContext
* @param userContext
* @param id
*/
public void PublishKnow(String sourceAppId, UserContext userContext, String id) {
String sql = "select EXT4 from APP_ACT_COE_PAL_REPOSITORY where id in (select PLPARENTID from APP_ACT_COE_PAL_REPOSITORY where EXT4 = '"
+ id + "')";
List<RowMap> maps = DBSql.getMaps(sql);
String ids = "";
for (RowMap rowmap : maps) {
ids += rowmap.getString("EXT4") + ",";
}
String[] deptSplit_id = ids.split(",");
JSONArray jsonArray = new JSONArray();
for (String id_names : deptSplit_id) {
jsonArray.add(id_names);
}
// jsonObject.put(deptSplit_id);
id += ",";
String[] deptSplit_das = id.split(",");
JSONArray jsonArray_das = new JSONArray();
for (String das : deptSplit_das) {
jsonArray_das.add(das);
}
// jsonObject.put(deptSplit_id);
if (!jsonArray_das.isEmpty() && !jsonArray.isEmpty()) {
// aslp服务地址
String aslp = "aslp://com.actionsoft.apps.kms/PublishKnwl";
// 参数定义列表
Map params = new HashMap<String, Object>();
// 要发布到的维度ID的JSON数组字符串,必填
params.put("dimensionIDArray", jsonArray.toString());
// 要发布的知识ID的JSON数组字符串,必填
params.put("knwlIDArray", jsonArray_das.toString());
// 标签的JSON数组字符串,非必填
// sid,必填
params.put("sid", userContext.getSessionId());
AppAPI appAPI = SDK.getAppAPI();
// 发布知识
ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params);
System.out.println("知识发布============" + ro);
}
}
/**
* 按照父子节点排序
* 防止后续遍历操作先遍历出子节点后出现父节点造成数据错误