diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/DataMigrationController.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/DataMigrationController.java index 98afbcaf..cec2a22a 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/DataMigrationController.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/DataMigrationController.java @@ -7,6 +7,7 @@ import com.actionsoft.apps.coe.pal.datamigration.util.readword.ReadWordUtil; import com.actionsoft.apps.coe.pal.datamigration.versionNo.web.VersionNoExcelImportWeb; import com.actionsoft.apps.coe.pal.datamigration.web.DataMigrationWeb; import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.web.DesignerRelationShapeWeb; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.coe.pal.pal.repository.web.CoeProcessLevelWeb; import com.actionsoft.bpms.commons.mvc.view.ResponseObject; @@ -313,4 +314,15 @@ public class DataMigrationController { return new VersionNoExcelImportWeb(uc).downloadVersionNoExcelImportLog(logId, path); } + /** + * 下载一个合同正文模版文件 + * @param me + * @return + */ + @Mapping("com.actionsoft.apps.coe.pal.datamigration_reloadFile") + public String reloadFile(UserContext me,String palId) { + DataMigrationWeb web = new DataMigrationWeb(me); + return web.reloadFile(palId); + } + } diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/web/DataMigrationWeb.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/web/DataMigrationWeb.java index b6a92c57..03fa374b 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/web/DataMigrationWeb.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/web/DataMigrationWeb.java @@ -1,6 +1,7 @@ package com.actionsoft.apps.coe.pal.datamigration.web; import com.actionsoft.apps.coe.pal.constant.CoEConstant; +import com.actionsoft.apps.coe.pal.constant.YiliWpsConst; import com.actionsoft.apps.coe.pal.datamigration.aris.mapping.ModelMappingAPIManager; import com.actionsoft.apps.coe.pal.datamigration.aris.model.*; import com.actionsoft.apps.coe.pal.datamigration.aris.util.XMLUtil; @@ -41,6 +42,9 @@ import com.actionsoft.apps.coe.pal.pal.repository.util.CoeRepositoryImportUtil; import com.actionsoft.apps.coe.pal.yili.log.datamigration.log.Cache.LogRealTimeCountCache; import com.actionsoft.apps.coe.pal.yili.log.datamigration.log.Model.LogRealTimeCountModel; import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile; +import com.actionsoft.bpms.bo.engine.BO; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.commons.formfile.model.delegate.FormFile; import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate; import com.actionsoft.bpms.commons.mvc.view.ActionWeb; import com.actionsoft.bpms.commons.mvc.view.ResponseObject; @@ -53,6 +57,7 @@ import com.actionsoft.bpms.org.model.UserModel; import com.actionsoft.bpms.server.UserContext; import com.actionsoft.bpms.server.fs.DCContext; import com.actionsoft.bpms.server.fs.dc.DCProfileManager; +import com.actionsoft.bpms.util.DBSql; import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.bpms.util.UtilDate; import com.actionsoft.bpms.util.UtilString; @@ -79,6 +84,8 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +import static com.actionsoft.apps.coe.pal.pal.output.util.OutputExcelUtil.fileId; + public class DataMigrationWeb extends ActionWeb { UserContext _uc; @@ -933,4 +940,109 @@ public class DataMigrationWeb extends ActionWeb { public String positionImport(String wsId, String groupValue, String fileValue, String fileName) { return new PositionExcelImportWeb(_uc).positionImport(wsId, groupValue, fileValue, fileName); } + + /** + * 刷新正文 + * @return + */ + public String reloadFile(String palId){ + RowMap row = getFileIdByPalId(palId); + DCContext sourceDc = getFileDCContext(row.getString("ID"),row.getString("FILENAME")); + DCPluginProfile dcProfilepdf = DCProfileManager.getDCProfile("com.actionsoft.apps.coe.pal.datamigration", + "migration"); + DCContext dcContextpdf = new DCContext(_uc, dcProfilepdf, "com.actionsoft.apps.coe.pal.datamigration", + "policyFile", palId, row.getString("FILENAME")); + System.out.println(">>>>>>>>>>>>开始重画"); + boolean write = SDK.getDCAPI().write(SDK.getDCAPI().read(sourceDc), dcContextpdf); + PALRepositoryModel plModel = PALRepositoryCache.getCache().get(palId); + if (plModel == null) { + return ResponseObject.newErrResponse("找不到该流程").toString(); + } + String wsId = plModel.getWsId(); + new ReadWordUtil().translateDoc(_uc,wsId,"policyFile",palId,row.getString("FILENAME")); + return getCoeDefinition(palId); + } + + /** + * 通过文件ID获取主要模型块的附件ID + * @param palId + * @return + */ + public RowMap getFileIdByPalId(String palId){ + List> repositoryFileElements = CoeDesignerUtil.getShapeMessageJson(palId); + List ids = repositoryFileElements.stream() + .filter(map -> "制度".equals(map.get("title")) || "操作指导".equals(map.get("title")) || "工程技术标准".equals(map.get("title")) || "方案".equals(map.get("title"))) + .map(map -> map.get("id")) + .collect(Collectors.toList()); + if(ids.size()>0){ + String querySql = " SELECT ID,FILENAME FROM " + YiliWpsConst.APP_ACT_COE_PAL_UPFILE+" WHERE PALREPOSITORYID = ? AND SHAPEID =? AND FILETYPE=? ORDER BY CREATETIME DESC"; + RowMap map = DBSql.getMap(querySql, new Object[]{palId, ids.get(0).toString(), "s"}); + System.out.println(">>>>>>>>>>fileId = " + fileId); + return map; + }else{ + return null; + } + } + + /** + * 获取附件的附件ID + * @param palId + * @return + */ + public DCContext getFileDCContext(String palId,String fileName){ + DCContext sourceDc = null; + //先判断该fileId有无附件 + String querySql = " SELECT PALREPOSITORYID,SHAPEID,FILETYPE,FILENAME FROM " + YiliWpsConst.APP_ACT_COE_PAL_UPFILE+" WHERE ID = ? ORDER BY CREATETIME DESC"; + RowMap model = DBSql.getMap(querySql, new Object[]{palId}); + if(null != model){ + DCPluginProfile dcProfile = DCProfileManager.getDCProfile(YiliWpsConst.FILE_APPID, YiliWpsConst.COE_UPFILE); + if (dcProfile != null) { + if ("f".equals(model.getString("FILETYPE"))) {// 文件 + System.out.println(" >>>>进入普通文件" ); + sourceDc = new DCContext(this.getContext(), dcProfile, YiliWpsConst.FILE_APPID, "file", + model.getString("PALREPOSITORYID"), model.getString("FILENAME")); + } else {// 图形 + System.out.println(" >>>>进入图型文件" ); + sourceDc = new DCContext(this.getContext(), dcProfile, YiliWpsConst.FILE_APPID, model.getString("PALREPOSITORYID"), + model.getString("SHAPEID"), model.getString("FILENAME")); + } + } + return sourceDc; + }else{//无附件则取打开默认模板 + //先获取附件模版 + System.out.println(" >>>>进入模版文件" ); + String repositoryName = "!form-ui-file-"; + BO bo = SDK.getBOAPI().query(YiliWpsConst.BO_EU_SYSTEM_DEMO_FILE).addQuery("FILESTATE=", true).detail(); + List files = SDK.getBOAPI().getFiles(bo.getId(), "SYSTEMFILE"); + FormFile formFile = files.get(0); + sourceDc = SDK.getBOAPI().getFileDCContext(formFile, repositoryName); + sourceDc.setSession(this.getContext()); + //往附件表中写入一个附件 + return sourceDc; + } + } + + public String getCoeDefinition(String palId){ + // coe所需参数 + PALRepositoryModel plModel = PALRepositoryCache.getCache().get(palId); + String uuid = plModel.getId(); + String fileName = com.actionsoft.apps.coe.pal.pal.repository.designer.util.ShapeUtil.replaceBlank(plModel.getName()); + String wsid = plModel.getWsId(); + String methodId = plModel.getMethodId(); + BaseModel model = CoeDesignerAPIManager.getInstance().getDefinition(palId, 0); + if (model == null) { + model = CoeDesignerUtil.createModel(palId, 0); + } + CoeDesignerShapeAPIManager manager = CoeDesignerShapeAPIManager.getInstance(); + String define = model.getDefinition(); + //获取流程定义和排序 + JSONObject object = manager.getCoeDefinitionAndSort(define, wsid, methodId); + model.setDefinition(object.getString("define")); + //处理流程节点形状的通用配置 + JSONObject obj = manager.getCoeProcessShapeConfig(model.getDefinition(), wsid, methodId, palId); + model.setDefinition(obj.getString("define")); + model.setFileName(fileName); + return model.getDefinition(); + } + } diff --git a/com.awspaas.user.apps.yiliwps/src/com/awspaas/user/apps/yiliwps/web/WpsWeb.java b/com.awspaas.user.apps.yiliwps/src/com/awspaas/user/apps/yiliwps/web/WpsWeb.java index ad39f565..c97e308f 100644 --- a/com.awspaas.user.apps.yiliwps/src/com/awspaas/user/apps/yiliwps/web/WpsWeb.java +++ b/com.awspaas.user.apps.yiliwps/src/com/awspaas/user/apps/yiliwps/web/WpsWeb.java @@ -146,10 +146,12 @@ public class WpsWeb extends ActionWeb { FileInputStream fileInputStream=new FileInputStream(file); //写入新文件 //调用刷新逻辑 - CallASLPUtil aslpUtil =new CallASLPUtil(); - aslpUtil.callTranslateDocASLP(me,palId,fileName,fileInputStream); + //CallASLPUtil aslpUtil =new CallASLPUtil(); + //aslpUtil.callTranslateDocASLP(me,palId,fileName,fileInputStream); + //只写入新文件 DCContext sourceDc = getFileDCContext(fileId,fileName); sourceDc.setSession(me); + SDK.getDCAPI().write(fileInputStream,sourceDc); //在重新获取下fileId String querySql = " SELECT ID FROM " + YiliWpsConst.APP_ACT_COE_PAL_UPFILE+" WHERE PALREPOSITORYID = ? ORDER BY CREATETIME DESC"; fileId = DBSql.getString(querySql, new Object[]{palId});