文件状态批量修改停用状态将kms文件取消发布并且删除索引

This commit is contained in:
Mr-wang 2023-09-27 17:29:24 +08:00
parent 1dd5fa577e
commit 2bd2a2422b
2 changed files with 93 additions and 19 deletions

View File

@ -212,6 +212,14 @@ public class UpateFileStateController {
PALRepositoryCache.getCache().put(plId, plModel);
}
RowMap map = DBSql.getMap("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" + plId + "'");
String ext4 = map.getString("EXT4");
if (UtilString.isNotEmpty(ext4)){
ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_a228b4816a7b4f58a862b9612299948c", "admin", "");
CancelPublishKnwl(processInstance,sid,ext4);
}else {
System.out.println("该文件未被发布,不进行取消发布知识以及删除索引");
}
SDK.getLogAPI().consoleInfo("更新状态后刷新缓存结束===========>");
}
@ -641,7 +649,7 @@ public class UpateFileStateController {
//jsonObject.put("abstract", dcContext);//信息摘要
jsonObject.put("title", dcContext.getFileName().substring(0,dcContext.getFileName().indexOf(".")));//信息标题
coontest.add(jsonObject);
createIndexesByContent(processExecutionContext,coontest);
createIndexesByContent(processExecutionContext,coontest,cardId);
}
}
@ -689,7 +697,7 @@ public class UpateFileStateController {
//jsonObject.put("abstract", dcContexts);//信息摘要
jsonObject.put("title", dcContexts.getFileName().substring(0,dcContexts.getFileName().indexOf(".")));//信息标题
coontest.add(jsonObject);
createIndexesByContent(processExecutionContext,coontest);
createIndexesByContent(processExecutionContext,coontest,cardId);
}
}
}
@ -703,6 +711,61 @@ public class UpateFileStateController {
}
public boolean deleteIndex(ProcessInstance processExecutionContext,String documentId) {
// 调用App
String sourceAppId = processExecutionContext.getAppId();
// aslp服务地址
String aslp = "aslp://com.actionsoft.apps.addons.es/deleteIndex";
// 参数定义列表
Map params = new HashMap<String, Object>();
//索引名称(文档在哪存放),必填
params.put("index", "com.actionsoft.apps.kms_kmsdoc_card");
//类型(索引中对数据进行逻辑分区不同 type的文档可能有不同的字段但最好能够非常相似,比如存储所有产品到索引products中但是你有许多不同的产品类别这些产品共享一种相同的或非常相似的模式他们有一个标题描述产品代码和价格他们只是正好属于产品下的一些子类用type表示不同的类别),必填
params.put("type", "kmsdoc_card");
//索引ID入库时给定的ID,非必填
params.put("documentId", documentId);
AppAPI appAPI = SDK.getAppAPI();
//删除索引
ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params);
System.out.println("删除索引成功>>>>>>>>"+ro.isOk());
return ro.isOk();
}
/**
* 取消发布知识
*
* @param processExecutionContext
* @param sid
* @param knwlId
* @return
*/
public boolean CancelPublishKnwl(ProcessInstance processExecutionContext, String sid, String knwlId) {
// 调用App
String sourceAppId = processExecutionContext.getAppId();
// 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);
List<BO> bo_act_document = SDK.getBOAPI().query("BO_ACT_DOCUMENT", true).addQuery("CARDID = ", knwlId).list();
for (BO bo:
bo_act_document) {
String documentid = bo.getString("DOCUMENTID");
deleteIndex(processExecutionContext,documentid);
}
return ro.isOk();
}
/**
* 创建索引
* @param processExecutionContext 流程实例
@ -710,7 +773,7 @@ public class UpateFileStateController {
* @return
*/
public boolean createIndexesByContent(ProcessInstance processExecutionContext,JSONArray contents) {
public boolean createIndexesByContent(ProcessInstance processExecutionContext,JSONArray contents,String cardId) {
// 调用App
String sourceAppId =processExecutionContext.getAppId() ;
// aslp服务地址
@ -726,6 +789,18 @@ public class UpateFileStateController {
AppAPI appAPI = SDK.getAppAPI();
//入库操作创建内容索引(多个)
ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params);
if(ro.isOk()){
String documentId = ((LinkedHashMap) ro.getData()).get("documentId").toString();
BO bo = new BO();
bo.set("DOCUMENTID",documentId);
bo.set("CARDID",cardId);
JSONObject jsonObject = contents.getJSONObject(0);
String title = jsonObject.get("title").toString();
bo.set("TITLE",title);
SDK.getBOAPI().create("BO_ACT_DOCUMENT",bo,processExecutionContext,UserContext.fromUID(processExecutionContext.getCreateUser()));
}
return ro.isOk();
}

View File

@ -55,7 +55,7 @@ public class OaPendComponent {
private String userName = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "restUserName");
private String password = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "restUserPwd");
private String[] GO_BACK = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "GO_BACK").split("\\|");
private String[] TERMINATION = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "TERMINATION").split("\\|");
private static class PostPendTask implements Runnable {
int type;
@ -469,25 +469,24 @@ public class OaPendComponent {
xmlDatasUtil.setReceivetime(der.substring(der.indexOf(" "),der.length()));
if (taskInstance!=null){
String actionName = getActionName(taskInstance);
if (actionName.equals("确认发布")||equalsAction(GO_BACK, actionName)){
xmlDatasUtil.setCurrentnodetype("1");
if (actionName.equals("确认发布")||equalsAction(GO_BACK, actionName)||equalsAction(TERMINATION,actionName)){
//流程结束时归档所有任务
try {
String processInstId = pec.getProcessInstance().getId();
List<HistoryTaskInstance> list = SDK.getHistoryTaskQueryAPI().processInstId(processInstId).list();
System.err.println(pec.getProcessInstance().getTitle()+"_当前流程的历史任务========>"+list);
for (HistoryTaskInstance historyTaskInstance : list) {
try {
updatePending2(historyTaskInstance, pec);
} catch (Exception e) {
// TODO: handle exception
xmlDatasUtil.setCurrentnodetype("1");
//如果是终止或者废止的话,将历史记录全部更新
if (!actionName.equals("确认发布")){
try {
String processInstId = pec.getProcessInstance().getId();
List<HistoryTaskInstance> list = SDK.getHistoryTaskQueryAPI().processInstId(processInstId).list();
System.err.println(pec.getProcessInstance().getTitle()+"_当前流程的历史任务========>"+list);
for (HistoryTaskInstance historyTaskInstance : list) {
try {
updatePending2(historyTaskInstance, pec);
} catch (Exception e) {
}
}
} catch (Exception e) {
}
} catch (Exception e) {
// TODO: handle exception
}
}else{
xmlDatasUtil.setCurrentnodetype("0");
}