diff --git a/com.awspaas.user.apps.app20221008163300/src/com/awspaas/user/apps/app/controller/UpateFileStateController.java b/com.awspaas.user.apps.app20221008163300/src/com/awspaas/user/apps/app/controller/UpateFileStateController.java index 44d8bbeb..2bdc582b 100644 --- a/com.awspaas.user.apps.app20221008163300/src/com/awspaas/user/apps/app/controller/UpateFileStateController.java +++ b/com.awspaas.user.apps.app20221008163300/src/com/awspaas/user/apps/app/controller/UpateFileStateController.java @@ -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(); +//索引名称(文档在哪存放),必填 + 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(); + // 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_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(); } diff --git a/com.awspaas.user.apps.yili.integration/src/com/awspaas/user/apps/integration/oa/OaPendComponent.java b/com.awspaas.user.apps.yili.integration/src/com/awspaas/user/apps/integration/oa/OaPendComponent.java index 08ff4db0..bc81bdca 100644 --- a/com.awspaas.user.apps.yili.integration/src/com/awspaas/user/apps/integration/oa/OaPendComponent.java +++ b/com.awspaas.user.apps.yili.integration/src/com/awspaas/user/apps/integration/oa/OaPendComponent.java @@ -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 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 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"); }