From c42176c3b16903c0d26fd289edfede914eed02b0 Mon Sep 17 00:00:00 2001 From: Mr-wang Date: Tue, 17 Oct 2023 17:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83=E5=B7=B2?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E7=9A=84=E6=96=87=E4=BB=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?,=E6=89=B9=E9=87=8F=E5=88=B7=E5=88=B0kms=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/bpa/job/BatchRefreshKnowJob.java | 479 +++++++++++++++++- 1 file changed, 477 insertions(+), 2 deletions(-) diff --git a/com.awspaas.user.bpa/src/com/awspaas/user/bpa/job/BatchRefreshKnowJob.java b/com.awspaas.user.bpa/src/com/awspaas/user/bpa/job/BatchRefreshKnowJob.java index e33eb46c..6ff639ec 100644 --- a/com.awspaas.user.bpa/src/com/awspaas/user/bpa/job/BatchRefreshKnowJob.java +++ b/com.awspaas.user.bpa/src/com/awspaas/user/bpa/job/BatchRefreshKnowJob.java @@ -1,16 +1,45 @@ package com.awspaas.user.bpa.job; +import com.actionsoft.apps.coe.pal.pal.output.constant.OutputConst; +import com.actionsoft.apps.coe.pal.pal.output.dao.OutputTask; +import com.actionsoft.apps.coe.pal.pal.output.extend.OutputAppManager; +import com.actionsoft.apps.coe.pal.pal.output.extend.OutputAppProfile; +import com.actionsoft.apps.coe.pal.pal.output.model.OutputTaskModel; +import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager; +import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; +import com.actionsoft.apps.coe.pal.pal.repository.upfile.model.UpfileModel; +import com.actionsoft.apps.coe.pal.pal.repository.upfile.web.UpfileWeb; +import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile; +import com.actionsoft.bpms.bo.engine.BO; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.commons.login.constant.LoginConst; +import com.actionsoft.bpms.commons.mvc.view.ResponseObject; import com.actionsoft.bpms.schedule.IJob; +import com.actionsoft.bpms.server.SSOUtil; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.server.fs.DCContext; import com.actionsoft.bpms.util.DBSql; +import com.actionsoft.bpms.util.UUIDGener; +import com.actionsoft.bpms.util.UtilString; +import com.actionsoft.exception.AWSException; +import com.actionsoft.sdk.local.SDK; +import com.actionsoft.sdk.local.api.AppAPI; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; +import java.util.*; + public class BatchRefreshKnowJob implements IJob { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - DBSql.getMaps("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE" + + List maps = DBSql.getMaps("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE" + " ISPUBLISH = 1 AND ISUSE = 1 AND ISSTOP = 0 AND EXT4 IS NULL" + - " PLCATEGORY = 'process'and PLMETHODID !='process.framework'" + + " AND PLCATEGORY = 'process'and PLMETHODID !='process.framework'" + "and PLNAME not in ('流程架构图','测试用','GMY-截图用','sx批量测试'" + ",'8.2培训使用','用户练习使用','YX测试分部','yx测试人员','yx测试部','流程架构测试')" + " and PLPARENTID not in ('63ff93c6-2f27-4851-a396-6830c428db2e'," @@ -19,5 +48,451 @@ public class BatchRefreshKnowJob implements IJob { + " '98bd5917-7563-4b29-b775-815e91d9864c','f07da63c-3423-4c1e-ae75-b323c6a69093'," + " '79cb4c35-d2f7-4c43-a7db-44038b557eac','7ad79a73-a497-417a-a5ec-d4c9fd45061c'," + " '42c09260-c1d3-44b7-ac3d-f8280e04c294')"); + + for (RowMap rowMap: + maps) { + String id = rowMap.getString("ID");//PAL模型ID + UserContext me = UserContext.fromUID("admin"); + createFile(id,me); + SDK.getLogAPI().consoleInfo("该文件名称创建成功>>>>>>>>>>"+rowMap.getString("PLNAME")); + } } + + /** + * 创建手册,如果是未发布的流程模型,会在N表中创建一个数据 + * @param plId 流程模型ID + * @param me 用户信息 + */ + public void createFile(String plId, UserContext me){ + int count = 0; + // 生成手册 + PALRepositoryModel model = PALRepositoryCache.getCache().get(plId); + String taskId = createOutputReport(model, "7d3ca852-a0bd-42e6-80b1-3dcea6f55083", "admin", "", plId); + System.err.println("======手动生成手册id======"+taskId); + // 刷新预览加载的表 + String sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + taskId + "' WHERE PLID = '" + plId + "'"; + DBSql.update(sqlr); + String sql1 = "SELECT ID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID = '" + plId + "'"; + String string = DBSql.getString(sql1); + System.out.println(">>>>>>>>>>>>>>>"+string); + String sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'"; + if (UtilString.isNotEmpty(DBSql.getString(sql1))) { + count = DBSql.update( + "UPDATE BO_ACT_COE_PUBLISH_N SET TASKID='" + taskId + "'WHERE PUBLISHFILEID ='" + plId + "'"); + } + if (UtilString.isNotEmpty(DBSql.getString(sql2))) { + count = DBSql.update( + "UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + taskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'"); + } + if (count != 0) { + DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + taskId + "'WHERE PALREPOSITORYID='" + + plId + "'"); + } + if(UtilString.isEmpty(DBSql.getString(sql1)) && UtilString.isEmpty(DBSql.getString(sql2))){ + System.out.println("发布流程无数据==================================================="); + ////String sql = "SELECT pl.TASKID FROM APP_ACT_COE_PAL_PUBLISH p, APP_ACT_COE_PAL_PUBLISH_LIST pl + // // WHERE pl.pid = p.id AND pl.palrepositoryid = ? ORDER BY publishdate DESC"; + + //审批改为发布,如果发布表未存数据,则自动生成发布关联表数据,可使部门视图正常使用 + BO publishN=new BO(); + publishN.set("PUBLISTHTYPE","N"); + publishN.set("PUBLISHFILENAME",model.getName()); + publishN.set("PUBLISHFILEID",plId); + ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_a228b4816a7b4f58a862b9612299948c", "admin", ""); + SDK.getBOAPI().create("BO_ACT_COE_PUBLISH_N",publishN,processInstance,me); + + + /*BO publish=new BO(); + publish.set("PROCESSINSTID",processInstance.getId()); + publish.set("PUBLISH","1"); + SDK.getBOAPI().createDataBO("APP_ACT_COE_PAL_PUBLISH",publish,me);*/ + + String sql = "insert into APP_ACT_COE_PAL_PUBLISH (ID,PROCESSINSTID,PUBLISHN) values ('%s', '%s', '%s')"; + String id = UUIDGener.getUUID(); + int update = DBSql.update(String.format(sql, id, processInstance.getId(), '1')); + + + //BO app_act_coe_pal_publish = SDK.getBOAPI().query("APP_ACT_COE_PAL_PUBLISH").addQuery("BINDID=", processInstance.getId()).detail(); + RowMap map = DBSql.getMap("select * from APP_ACT_COE_PAL_PUBLISH where PROCESSINSTID = '" + processInstance.getId() + "'"); + /*BO publishList=new BO(); + publishList.set("PID",app_act_coe_pal_publish.getString("ID")); + publishList.set("PALREPOSITORYID",plId); + SDK.getBOAPI().createDataBO("APP_ACT_COE_PAL_PUBLISH_LIST",publishList,me);*/ + + + String app_act_coe_pal_publishsql = "insert into APP_ACT_COE_PAL_PUBLISH_LIST (ID,PID,PALREPOSITORYID) values ('%s', '%s', '%s')"; + String app_act_coe_pal_publishid = UUIDGener.getUUID(); + int app_act_coe_pal_publishupdate = DBSql.update(String.format(app_act_coe_pal_publishsql, app_act_coe_pal_publishid,map.getString("ID"), plId)); + String repetition_TaskId = createOutputReport(model, "7d3ca852-a0bd-42e6-80b1-3dcea6f55083", "admin", "", plId); + System.err.println("======手动生成手册id======"+repetition_TaskId); + // 刷新预览加载的表 + String repetition_sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + repetition_TaskId + "' WHERE PLID = '" + plId + "'"; + String n_sql = "UPDATE BO_ACT_COE_PUBLISH_N SET TASKID = '" + repetition_TaskId + "' WHERE PUBLISHFILEID = '" + plId + "'"; + DBSql.update(sqlr); + DBSql.update(n_sql); + String repetition_sql1 = "SELECT ID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID = '" + plId + "'"; + BO bo_act_coe_publish_n = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N", true).addQuery("PUBLISHFILEID = ", plId).detail(); + System.out.println("bo_act_coe_publish_nL>>>>>>>>>>>>>>>>>>"+bo_act_coe_publish_n); + createKmsByNew(bo_act_coe_publish_n,"7d3ca852-a0bd-42e6-80b1-3dcea6f55083",processInstance,"admin"); + String repetition_sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'"; + if (UtilString.isNotEmpty(DBSql.getString(repetition_sql1))) { + count = DBSql.update( + "UPDATE BO_ACT_COE_PUBLISH_N SET TASKID='" + repetition_TaskId + "'WHERE PUBLISHFILEID ='" + plId + "'"); + } + if (UtilString.isNotEmpty(DBSql.getString(repetition_sql2))) { + count = DBSql.update( + "UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + repetition_TaskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'"); + } + if (count != 0) { + DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + repetition_TaskId + "'WHERE PALREPOSITORYID='" + + plId + "'"); + } + } + System.err.println("重新生成手册成功=====》" + count); + } + + + + private String createOutputReport(PALRepositoryModel model, String wsId, String userId, String teamId, String uuid) { + String taskId = ""; + if (model.getMethodId().contains("process.")) { + taskId = PALRepositoryQueryAPIManager.getInstance().createOutputReportPr(wsId, userId, teamId, uuid); + JSONObject object = JSONObject.parseObject(taskId); + if ("ok".equals(object.getString("result"))) { + taskId = object.getJSONObject("data").getString("taskId"); + } + } else if ("data.form".equals(model.getMethodId())) { + taskId = PALRepositoryQueryAPIManager.getInstance().createOutputReportBd(wsId, userId, teamId, uuid); + JSONObject object = JSONObject.parseObject(taskId); + if ("ok".equals(object.getString("result"))) { + taskId = object.getJSONObject("data").getString("taskId"); + } + } else if ("control.policy".equals(model.getMethodId())) { + taskId = PALRepositoryQueryAPIManager.getInstance().createOutputReportZd(wsId, userId, teamId, uuid); + JSONObject object = JSONObject.parseObject(taskId); + if ("ok".equals(object.getString("result"))) { + taskId = object.getJSONObject("data").getString("taskId"); + } + } + return taskId; + } + + + /** + * 通过发布知识创建知识 + * + * @param bo 发布清单表数据 + * @param wsId 知识库id + * @param processExecutionContext 流程数据 + * @param uid 账户合计 + */ + public void createKmsByNew(BO bo, String wsId, ProcessInstance processExecutionContext, + String uid) { + { + OutputTaskModel model = new OutputTask().getTaskReportById(bo.getString("TASKID")); + wsId = model.getWsId(); + String publishfileid = bo.getString("PUBLISHFILEID"); + String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'"; + RowMap map = DBSql.getMap(sql_n); + if (StringUtils.isEmpty(map.getString("EXT4"))) { + // aslp服务地址 + String aslps_create = "aslp://com.actionsoft.apps.kms/CreateKnwl"; +// 参数定义列表 + Map params_create = new HashMap(); +//保密级别, 0: 普通 1:秘密 2:机密,必填 + params_create.put("securityLevel", 0); +//知识名称,必填 + + String level = ""; + if (map != null) { + String pver = map.getString("PLVER"); + if (UtilString.isNotEmpty(pver)) { + if (pver.contains(".00")) { + String levels = pver; + String[] plvers = levels.split("\\."); + plvers[1] = plvers[1].replaceAll("0", ""); + level = plvers[0] + "." + plvers[1]; + } else { + level = pver + ".0"; + } + } + } + params_create.put("knwlName", map.getString("PLNAME") + "V" + level); +//是否可以评论,必填 + params_create.put("isComment", true); +//是否可以评分,必填 + params_create.put("isRate", true); +//有效期:yyyy-MM-dd,非必填 + params_create.put("validDate", "2099-12-31"); +//只读控制,1:在线阅读和下载 0:在线阅读,必填 + params_create.put("onlineLevel", 1); +//知识创建人,某些特殊场景下,sid和createUser代表的用户并不一样,如果此参数为null,则使用sid代表的用户,非必填 + params_create.put("createUser", "admin"); +//知识内容,非必填 + params_create.put("cardContext", ""); +//sid,必填 + params_create.put("sid", UserContext.fromUID(processExecutionContext.getCreateUser()).getSessionId()); + AppAPI appAPI_create = SDK.getAppAPI(); +//创建知识 + ResponseObject ro_create = appAPI_create.callASLP( + appAPI_create.getAppContext(processExecutionContext.getAppId()), + aslps_create, params_create); + String cardId = ((LinkedHashMap) ro_create.getData()).get("cardId").toString(); + String sessionId = new SSOUtil().registerClientSessionNoPassword("admin", LoginConst.DEFAULT_LANG, "localhost", LoginConst.DEVICE_PC); + //AddKnwlAC(processExecutionContext, jsonArray1, processExecutionContext.getUserContext().getSessionId(),cardId); + + String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '" + cardId + "' WHERE " + + " PLCATEGORY = 'process'and PLMETHODID !='process.framework' " + + " and PLNAME not in ('流程架构图','测试用','GMY-截图用','sx批量测试'" + + " ,'8.2培训使用','用户练习使用','YX测试分部','yx测试人员','yx测试部','流程架构测试')" + + " and PLPARENTID not in ('63ff93c6-2f27-4851-a396-6830c428db2e'," + + " 'c84f497a-4de3-4404-86e8-cd5af71c3b47','94dabf55-b032-4316-a4c3-00b83763da09'," + + " '36ac7cdd-a361-4bd3-9511-c03c1b3627a4','84e534b4-e51a-4874-9ff1-8a0206d9e0c5'," + + " '98bd5917-7563-4b29-b775-815e91d9864c','f07da63c-3423-4c1e-ae75-b323c6a69093'," + + " '79cb4c35-d2f7-4c43-a7db-44038b557eac','7ad79a73-a497-417a-a5ec-d4c9fd45061c'," + + " '42c09260-c1d3-44b7-ac3d-f8280e04c294') and ID = '" + publishfileid + "'"; + int update = DBSql.update(update_sql); + System.out.println("更新id为:" + publishfileid + "版本为:的知识对应的资产库的EXT4的影响行数为" + update); + creadteFile(processExecutionContext, "BO_ACT_COE_PUBLISH_N", UserContext.fromUID(processExecutionContext.getCreateUser()), + cardId, "PUBLISHFILEID = ",sessionId); + } + } + } + + + + /** + * 创建附件及文件 + * + * @param processExecutionContext + * @param bo_name + * @param userContext + * @param cardId + * @param fileid + */ + public void creadteFile(ProcessInstance processExecutionContext, String bo_name, UserContext userContext, + String cardId, String fileid,String sid) { + /** + * 这个主要是负责对流程手册进行相关的文件的生成 + */ + String sourceAppId = processExecutionContext.getAppId(); +// aslp服务地址 + String aslp = "aslp://com.actionsoft.apps.kms/CreateFile"; + + if (StringUtils.isNotEmpty(cardId)) { + String sql_ext4 = "select * from APP_ACT_COE_PAL_REPOSITORY where EXT4 = '" + cardId + "'"; + RowMap map = DBSql.getMap(sql_ext4); + System.out.println("maps======>>>>>>>" + map); + System.out.println("fileid==》》》》" + fileid); + System.out.println("id==》》》》" + map.getString("ID")); + RowMap rowMap = DBSql + .getMap("SELECT * FROM " + bo_name + " where " + fileid + " '" + map.getString("ID") + "'"); + // BO bos = + // SDK.getBOAPI().query(bo_name,true).addQuery(fileid,"17e7d198-1656-4a2c-8912-a81850170be9").detail(); + if (rowMap != null) { + + if (StringUtils.isNotEmpty(rowMap.getString("TASKID"))) { + + OutputTaskModel model = new OutputTask().getTaskReportById(rowMap.getString("TASKID")); + if (model != null) { + // System.out.println(",pdel============" + model); + OutputAppProfile appProfile = OutputAppManager.getProfile(model.getProfileId()); + if (appProfile == null) { + throw new AWSException("Not Find OutputAppProfile! profileId=" + model.getProfileId()); + } + DCPluginProfile dcProfile = SDK.getDCAPI().getDCProfile(appProfile.getAppContext().getId(), + OutputConst.EXT_APP_DC_OUTPUT); + if (dcProfile == null) + throw new AWSException( + "Not Find DCProfile! repositoryName=" + OutputConst.EXT_APP_DC_OUTPUT); + String sql_lever = ""; + if (bo_name.equals("BO_ACT_COE_PUBLISH_N")) { + sql_lever = "SELECT PLVER FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" + + rowMap.getString("PUBLISHFILEID") + "'"; + + } else if (bo_name.equals("BO_ACT_COE_PUBLISH_C")) { + sql_lever = "SELECT PLVER FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" + + rowMap.getString("CHANGEDFILEIDNEW") + "'"; + } + String lever = DBSql.getString(sql_lever); + System.out.println("版本号::::::::::::" + lever); + // lever = lever.substring(0,3); + if (lever.length() == 5 && lever.substring(4).equals("0")) { + lever.substring(0, 3); + } else if (lever.length() == 1) { + lever = lever + ".0"; + } + String filename = ""; + if (bo_name.equals("BO_ACT_COE_PUBLISH_N")) { + filename = rowMap.getString("PUBLISHFILENAME"); + } else if (bo_name.equals("BO_ACT_COE_PUBLISH_C")) { + filename = rowMap.getString("CHANGEDFILENAMENEW"); + } + DCContext dcContext = new DCContext(userContext, dcProfile, appProfile.getAppContext().getId(), + model.getWsId(), rowMap.getString("TASKID"), filename + "_" + lever + ".doc"); + // UtilFile file = new UtilFile(dcContext.getPath()); + + Map params = new HashMap(); +//知识ID,必填 + params.put("cardId", cardId); +//sid,必填 + params.put("sid", sid); + + params.put("dc", dcContext); + AppAPI appAPI = SDK.getAppAPI(); +//创建文件 + ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params); + System.out.println("流程手册的存入=================" + ro); + JSONArray coontest = new JSONArray(new LinkedList<>()); + JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); + jsonObject.put("documentId", cardId); + jsonObject.put("content", "");//信息附件 + //jsonObject.put("abstract", dcContext);//信息摘要 + jsonObject.put("title", dcContext.getFileName().substring(0,dcContext.getFileName().indexOf(".")));//信息标题 + coontest.add(jsonObject); + createIndexesByContent(processExecutionContext,coontest); + + } + } + + } + String sql_A = "SELECT PLNAME FROM APP_ACT_COE_PAL_REPOSITORY where ID = '" + map.getString("ID") + + "' AND PLMETHODID != 'process.framework' AND PLMETHODID IN (select distinct PLMETHODID from APP_ACT_COE_PAL_REPOSITORY)"; + List rows = DBSql.getMaps(sql_A); + + for (RowMap bo : rows) { + + /** + * 这个是模型中的附件获取的并插入的数据信息,需要做修改 + */ + // 调用App + +// 参数定义列表 + Map paramss = new HashMap(); +//知识ID,必填 + paramss.put("cardId", cardId); +//sid,必填 + paramss.put("sid", sid); + + UpfileWeb upfileWeb = new UpfileWeb(userContext); + + String sql_upfile = "select * from APP_ACT_COE_PAL_UPFILE where palrepositoryid in (select ID from APP_ACT_COE_PAL_REPOSITORY where PLMETHODID != 'process.framework' AND ID= '" + + map.getString("ID") + "'" + ") ORDER BY FILENAME ASC"; + List maps = DBSql.getMaps(sql_upfile); + for (RowMap row : maps) { + if (!row.getString("FILENAME").contains(".xml")) { + UpfileModel upfileModel = new UpfileModel(); + upfileModel.setType(row.getString("FILETYPE")); + upfileModel.setFileName(row.getString("FILENAME")); + upfileModel.setPl_uuid(row.getString("PALREPOSITORYID")); + upfileModel.setShape_uuid(row.getString("SHAPEID")); + DCContext dcContexts = upfileWeb.getDCContext(upfileModel); + paramss.put("dc", dcContexts); + AppAPI appAPIs = SDK.getAppAPI(); + ResponseObject ros = appAPIs.callASLP(appAPIs.getAppContext(sourceAppId), aslp, paramss); + + JSONArray coontest = new JSONArray(new LinkedList<>()); + JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); + jsonObject.put("documentId", cardId); + jsonObject.put("content", "");//信息附件 + //jsonObject.put("abstract", dcContexts);//信息摘要 + jsonObject.put("title", dcContexts.getFileName().substring(0,dcContexts.getFileName().indexOf(".")));//信息标题 + coontest.add(jsonObject); + createIndexesByContent(processExecutionContext,coontest); + } + } + } + try { + + PublishKnow(processExecutionContext, userContext, cardId,sid); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + + /** + * 创建索引 + * @param processExecutionContext 流程实例 + * @param contents 索引内容 + * @return + */ + + public boolean createIndexesByContent(ProcessInstance processExecutionContext,JSONArray contents) { +// 调用App + String sourceAppId =processExecutionContext.getAppId() ; +// aslp服务地址 + String aslp = "aslp://com.actionsoft.apps.addons.es/createIndexesByContent"; +// 参数定义列表 + Map params = new HashMap(); +//索引内容(JSONArray格式, JSONArray中包含JSONObject, JSONObject的内容同创建单个索引),必填 + params.put("contents", contents); +//索引名称(文档在哪存放),必填 + params.put("index", "com.actionsoft.apps.kms_kmsdoc_card"); +//类型(索引中对数据进行逻辑分区。不同 type的文档可能有不同的字段,但最好能够非常相似,比如:存储所有产品到索引products中,但是你有许多不同的产品类别,这些产品共享一种相同的(或非常相似)的模式:他们有一个标题、描述、产品代码和价格。他们只是正好属于“产品”下的一些子类。用type表示不同的类别),必填 + params.put("type", "kmsdoc_card"); + AppAPI appAPI = SDK.getAppAPI(); +//入库操作,创建内容索引(多个) + ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params); + return ro.isOk(); + } + + /** + * 发布知识 + * + * @param processExecutionContext + * @param userContext + * @param id + */ + public void PublishKnow(ProcessInstance processExecutionContext, UserContext userContext, String id,String sid) { + + 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 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()) { + + // 调用App + String sourceAppId = processExecutionContext.getAppId(); + // aslp服务地址 + String aslp = "aslp://com.actionsoft.apps.kms/PublishKnwl"; + // 参数定义列表 + Map params = new HashMap(); + // 要发布到的维度ID的JSON数组字符串,必填 + params.put("dimensionIDArray", jsonArray.toString()); + // 要发布的知识ID的JSON数组字符串,必填 + params.put("knwlIDArray", jsonArray_das.toString()); + // 标签的JSON数组字符串,非必填 + + // sid,必填 + params.put("sid", sid); + AppAPI appAPI = SDK.getAppAPI(); + // 发布知识 + ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params); + + System.out.println("知识发布============" + ro); + + } + + } + }