diff --git a/com.actionsoft.apps.kms/lib/com.actionsoft.apps.kms.jar b/com.actionsoft.apps.kms/lib/com.actionsoft.apps.kms.jar index 001c9e09..9ba3bf73 100644 Binary files a/com.actionsoft.apps.kms/lib/com.actionsoft.apps.kms.jar and b/com.actionsoft.apps.kms/lib/com.actionsoft.apps.kms.jar differ diff --git a/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/controller/KnwlSearchController.java b/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/controller/KnwlSearchController.java index ed5314bd..e445ed39 100644 --- a/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/controller/KnwlSearchController.java +++ b/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/controller/KnwlSearchController.java @@ -77,6 +77,15 @@ public class KnwlSearchController { return knwlSearchWeb.getUserList(term); } + // 点击下载打开文档预览界面 + @Mapping("com.actionsoft.apps.kms_knwl_filePreview") + public String filePreview(UserContext uc,String fileId) { + KnwlSearchWeb knwlSearchWeb = new KnwlSearchWeb(uc); + return knwlSearchWeb.filePreview(uc,fileId); + } + + + /** * 全文检索查询 * diff --git a/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/web/KnwlSearchWeb.java b/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/web/KnwlSearchWeb.java index 4d246cce..4b38bccd 100644 --- a/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/web/KnwlSearchWeb.java +++ b/com.actionsoft.apps.kms/src/com/actionsoft/apps/kms/web/KnwlSearchWeb.java @@ -1,5 +1,6 @@ package com.actionsoft.apps.kms.web; +import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; @@ -12,6 +13,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import com.actionsoft.apps.coe.pal.pal.output.OutputAPIManager; +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.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.kms.KMSConstant; import com.actionsoft.apps.kms.KMSUtil; import com.actionsoft.apps.kms.ac.XpageMgrACCM; @@ -32,6 +40,8 @@ import com.actionsoft.apps.kms.service.MetaSchemaService; import com.actionsoft.apps.kms.service.OptService; import com.actionsoft.apps.kms.service.PublishService; import com.actionsoft.apps.kms.service.SearchService; +import com.actionsoft.apps.resource.AppContext; +import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.commons.database.RowMap; import com.actionsoft.bpms.commons.htmlframework.AlertWindow; import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate; @@ -43,13 +53,12 @@ import com.actionsoft.bpms.org.cache.UserCache; import com.actionsoft.bpms.org.model.DepartmentModel; import com.actionsoft.bpms.org.model.UserModel; import com.actionsoft.bpms.server.UserContext; -import com.actionsoft.bpms.util.DBSql; -import com.actionsoft.bpms.util.UUIDGener; -import com.actionsoft.bpms.util.UtilDate; -import com.actionsoft.bpms.util.UtilSerialize; -import com.actionsoft.bpms.util.UtilString; +import com.actionsoft.bpms.server.fs.DCContext; +import com.actionsoft.bpms.server.fs.dc.DCProfileManager; +import com.actionsoft.bpms.util.*; 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 com.awspaas.user.apps.yili.reportform.util.RepositoryAttribute; @@ -594,6 +603,15 @@ public class KnwlSearchWeb extends ActionWeb { } + /** + * 获取人员信息 + * @param curPage + * @param rowsPerPage + * @param searchText + * @param docTypes + * @param searchType + * @return + */ public String getUserList(int curPage, int rowsPerPage, String searchText, String docTypes, String searchType) { ResponseObject ro = ResponseObject.newOkResponse(); JSONArray data = new JSONArray(); @@ -660,6 +678,140 @@ public class KnwlSearchWeb extends ActionWeb { return userJsonArray.toString(); } + + /** + * 根据模型ID获取文档预览链接地址 + * @param uc + * @param fileId + * @return + */ + public String filePreview(UserContext uc,String fileId) { + ResponseObject responseObject = ResponseObject.newOkResponse(); + String sqls = "select taskId from (select * from BO_ACT_COE_PUBLISH_N where PUBLISHFILEID = '" + fileId + + "' order by CREATEDATE desc) where rownum = 1"; + String taskId = DBSql.getString(sqls); + + String resultUrl=outputReportPreview(uc, taskId, fileId); + responseObject.setData(resultUrl); + return responseObject.toString(); + } + + + + + public String outputReportPreview(UserContext _uc, String taskId, String palId) { + + String returnUrl=""; + + String sql = "select * from App_Act_Coe_Pal_Repository where id = '" + palId + "' "; + RowMap map = DBSql.getMap(sql); + if (map != null) { + String ispulish = map.getString("ISPUBLISH"); + String palname = map.getString("PLNAME"); + String methodid = map.getString("PLMETHODID"); + String plparid = map.getString("PLPARENTID"); + if ("1".equals(ispulish)) { + // if ("control.policy".equals(methodid)) { + if ("control.policy".equals(methodid) || "data.form".equals(methodid) || "process.epc".equals(methodid) + || "process.flowchart".equals(methodid) || "process.scheme".equals(methodid) || "engineering.standard".equals(methodid)) { + try { + OutputTaskModel model = new OutputTask().getTaskReportById(taskId); + ResponseObject result = ResponseObject.newOkResponse(); + if (model != null) { + UtilFile file = OutputAPIManager.getInstance().getFilePath(model.getWsId(), taskId, + model.getProfileId()); + if (file.exists()) { + File[] fileList = file.listFiles(); + if (fileList.length > 0) { + File docFile = null; + for (File file2 : fileList) { + if (file2.isFile() && "doc".equals( + (file2.getName().substring(file2.getName().lastIndexOf(".") + 1)))) { + docFile = file2; + break; + } + } + if (docFile == null) { + result = ResponseObject.newErrResponse("没有手册文件!"); + } + if (SDK.getAppAPI().isActive("com.actionsoft.apps.addons.onlinedoc")) { + OutputAppProfile appFile = OutputAppManager.getProfile(model.getProfileId()); + String sourceAppId = appFile.getAppContext().getId(); + String filename = docFile.getName(); + System.err.println("开始转换===>" + filename + "===>" + sourceAppId); + DCContext sourceDc = new DCContext(_uc, + DCProfileManager.getDCProfile(sourceAppId, "output"), sourceAppId, + model.getWsId(), taskId, filename); + + + // 调用App + // aslp服务地址 + String aslp = "aslp://com.actionsoft.apps.addons.onlinedoc/fileConvert"; + // 参数定义列表 + HashMap params = new HashMap(); + // PDF转图片处理选项。- 0代表只在需要时做转换;- 1代表打开即检查是否已转换成图片,如未处理,强制转换。默认0,非必填 + params.put("isPDFCovertPNG", "0"); + // 原文件DC,必填 + params.put("sourceDc", sourceDc); + // 文档是否允许复制。true为允许复制,转换结果为PDF格式文件;false为不可复制,转换结果为PNG格式文件(注意参数值为false时转换时间稍长),必填 + params.put("isCopy", true); + // sessionid,必填 + params.put("sid", _uc.getSessionId()); + AppAPI appAPI = SDK.getAppAPI(); + // 调用转换服务.在预览之前提前进行转换,预览时直接打开转换后的文件 + String sourceId = "com.actionsoft.apps.coe.pal.publisher"; + AppContext appContext = appAPI.getAppContext(sourceId); + ResponseObject responseObject = appAPI.callASLP(appContext, aslp, params); + System.err.println("转换结果=======>" + responseObject); + if (responseObject != null) { + String results = responseObject.toString(); + if (UtilString.isNotEmpty(results)) { + if (results.contains("200")) { + Map aslpParams = new HashMap(); + aslpParams.put("sid", _uc.getSessionId()); + aslpParams.put("fileNameOriginal", filename); + aslpParams.put("sourceDc", sourceDc); + aslpParams.put("isShowDefaultToolbar", true); + aslpParams.put("isShowBackbtn", false); + aslpParams.put("isEncrypt", true); + aslpParams.put("isCopy", true); + aslpParams.put("isPrint", true); + aslpParams.put("isDownload", true); + ResponseObject responseObjects = appAPI.callASLP( + appAPI.getAppContext(sourceAppId), + "aslp://com.actionsoft.apps.addons.onlinedoc/filePreview", + aslpParams); + + if (responseObjects != null) { + if (responseObjects.isOk()) { + String url = responseObjects.get("url").toString(); + returnUrl= url.substring(url.indexOf("&cmd")); + } + } + } else { + result = ResponseObject.newErrResponse("文档转换服务不可用,请联系管理员"); + } + } + } + + } + } + } + + } + } catch (Exception e) { + } finally { + + } + } + + } + } + return returnUrl; + } + + + public String openEsSearchPage(String q) { Map macroLibraries = new HashMap(); macroLibraries.put("sid", super.getContext().getSessionId());