文件状态批量修改将文件发布到文档中心
This commit is contained in:
parent
4f658d5c3e
commit
6a7112943d
@ -1,13 +1,32 @@
|
||||
package com.awspaas.user.apps.app.controller;
|
||||
|
||||
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.dao.CoeProcessLevelDaoFacotory;
|
||||
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.coe.pal.system.util.StringUtil;
|
||||
import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile;
|
||||
import com.actionsoft.bpms.bo.engine.BO;
|
||||
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
|
||||
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.commons.database.RowMapper;
|
||||
import com.actionsoft.bpms.commons.login.constant.LoginConst;
|
||||
import com.actionsoft.bpms.org.model.DepartmentModel;
|
||||
import com.actionsoft.bpms.server.SSOUtil;
|
||||
import com.actionsoft.bpms.server.UserContext;
|
||||
import com.actionsoft.bpms.server.fs.DCContext;
|
||||
import com.actionsoft.bpms.util.UUIDGener;
|
||||
import com.actionsoft.exception.AWSException;
|
||||
import com.actionsoft.sdk.local.api.AppAPI;
|
||||
import com.actionsoft.sdk.local.api.BOQueryAPI;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.awspaas.user.apps.app.util.RepositoryAttribute;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -23,10 +42,10 @@ import com.actionsoft.bpms.util.UtilString;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 修改文件状态
|
||||
@ -77,16 +96,19 @@ public class UpateFileStateController {
|
||||
* "'WHERE PALREPOSITORYID='" + plId + "'"); } }
|
||||
*/
|
||||
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("更新状态后刷新缓存结束===========>");
|
||||
if(Integer.valueOf(state) == 1){
|
||||
UpdateDept(plModel,plId);
|
||||
createPermScopeData(plId , me);
|
||||
SDK.getLogAPI().consoleInfo("修改为发布状态后同步权限数据到权限阅览成功===========>");
|
||||
}
|
||||
|
||||
createFile(plId,me);
|
||||
|
||||
} else if ("2".equals(type)) {
|
||||
// 修改流程文件的审批状态
|
||||
String updataSql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET ISAPPROVAL = '" + state + "',MODIFYDATE =TO_DATE('"+date+"','YY-MM-DD HH24:MI:SS') WHERE ID = '" + plId
|
||||
@ -94,10 +116,10 @@ public class UpateFileStateController {
|
||||
System.err.println("审批改为设计=======>" + updataSql);
|
||||
count = DBSql.update(updataSql);
|
||||
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
SDK.getLogAPI().consoleInfo("更新状态后刷新缓存结束===========>");
|
||||
} else if ("3".equals(type)) {
|
||||
// 重新生成手册
|
||||
@ -121,6 +143,62 @@ public class UpateFileStateController {
|
||||
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,PUBLISH) 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 BINDID = '" + 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 + "'";
|
||||
DBSql.update(sqlr);
|
||||
String repetition_sql1 = "SELECT ID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID = '" + plId + "'";
|
||||
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);
|
||||
}else if ("4".equals(type)) {
|
||||
// 修改流程文件的停用状态
|
||||
@ -129,10 +207,10 @@ public class UpateFileStateController {
|
||||
System.err.println("停用改设计=======>" + updataSql);
|
||||
count = DBSql.update(updataSql);
|
||||
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(plId);
|
||||
if (plModel != null) {
|
||||
PALRepositoryCache.getCache().put(plId, plModel);
|
||||
}
|
||||
|
||||
|
||||
SDK.getLogAPI().consoleInfo("更新状态后刷新缓存结束===========>");
|
||||
@ -190,7 +268,7 @@ public class UpateFileStateController {
|
||||
SDK.getBOAPI().create("BO_ACT_PUBLISH_PERM_SCOPE", scopeBo, processInst, me);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private String createOutputReport(PALRepositoryModel model, String wsId, String userId, String teamId, String uuid) {
|
||||
String taskId = "";
|
||||
if (model.getMethodId().contains("process.")) {
|
||||
@ -270,5 +348,443 @@ public class UpateFileStateController {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @methodName:
|
||||
* @param:
|
||||
* @return:
|
||||
* @description:获取taskId
|
||||
* @auther: Lizj
|
||||
* @date: 2022/8/5 16:18
|
||||
*/
|
||||
public static String getLastPublishTaskIdByModelId(String repositoryId) {
|
||||
//String sql = "SELECT pl.TASKID FROM APP_ACT_COE_PAL_PUBLISH p, APP_ACT_COE_PAL_PUBLISH_N pl WHERE pl.pid = p.id AND pl.palrepositoryid = ? ORDER BY publishdate DESC";
|
||||
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";
|
||||
//String sql = "SELECT * FROM (SELECT TASKID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID= ? ORDER BY CREATEDATE DESC) WHERE ROWNUM = 1";
|
||||
String taskId = DBSql.getObject(sql, new RowMapper<String>() {
|
||||
@Override
|
||||
public String mapRow(ResultSet rs, int arg1) throws SQLException {
|
||||
return rs.getString(1);
|
||||
}
|
||||
}, new Object[] { repositoryId });
|
||||
return taskId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建手册,如果是未发布的流程模型,会在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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 通过发布知识创建知识
|
||||
*
|
||||
* @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<String, Object>();
|
||||
//保密级别, 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<String, Object>();
|
||||
//知识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<RowMap> rows = DBSql.getMaps(sql_A);
|
||||
|
||||
for (RowMap bo : rows) {
|
||||
|
||||
/**
|
||||
* 这个是模型中的附件获取的并插入的数据信息,需要做修改
|
||||
*/
|
||||
// 调用App
|
||||
|
||||
// 参数定义列表
|
||||
Map paramss = new HashMap<String, Object>();
|
||||
//知识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<RowMap> 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<String, Object>();
|
||||
//索引内容(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<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()) {
|
||||
|
||||
// 调用App
|
||||
String sourceAppId = processExecutionContext.getAppId();
|
||||
// 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", sid);
|
||||
AppAPI appAPI = SDK.getAppAPI();
|
||||
// 发布知识
|
||||
ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params);
|
||||
|
||||
System.out.println("知识发布============" + ro);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user