wps 正文丢失问题优化
This commit is contained in:
parent
1244759402
commit
5c4d344173
@ -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.versionNo.web.VersionNoExcelImportWeb;
|
||||||
import com.actionsoft.apps.coe.pal.datamigration.web.DataMigrationWeb;
|
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.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.model.PALRepositoryModel;
|
||||||
import com.actionsoft.apps.coe.pal.pal.repository.web.CoeProcessLevelWeb;
|
import com.actionsoft.apps.coe.pal.pal.repository.web.CoeProcessLevelWeb;
|
||||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
||||||
@ -313,4 +314,15 @@ public class DataMigrationController {
|
|||||||
return new VersionNoExcelImportWeb(uc).downloadVersionNoExcelImportLog(logId, path);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.actionsoft.apps.coe.pal.datamigration.web;
|
package com.actionsoft.apps.coe.pal.datamigration.web;
|
||||||
|
|
||||||
import com.actionsoft.apps.coe.pal.constant.CoEConstant;
|
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.mapping.ModelMappingAPIManager;
|
||||||
import com.actionsoft.apps.coe.pal.datamigration.aris.model.*;
|
import com.actionsoft.apps.coe.pal.datamigration.aris.model.*;
|
||||||
import com.actionsoft.apps.coe.pal.datamigration.aris.util.XMLUtil;
|
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.Cache.LogRealTimeCountCache;
|
||||||
import com.actionsoft.apps.coe.pal.yili.log.datamigration.log.Model.LogRealTimeCountModel;
|
import com.actionsoft.apps.coe.pal.yili.log.datamigration.log.Model.LogRealTimeCountModel;
|
||||||
import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile;
|
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.htmlframework.HtmlPageTemplate;
|
||||||
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
|
import com.actionsoft.bpms.commons.mvc.view.ActionWeb;
|
||||||
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
|
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.UserContext;
|
||||||
import com.actionsoft.bpms.server.fs.DCContext;
|
import com.actionsoft.bpms.server.fs.DCContext;
|
||||||
import com.actionsoft.bpms.server.fs.dc.DCProfileManager;
|
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.UUIDGener;
|
||||||
import com.actionsoft.bpms.util.UtilDate;
|
import com.actionsoft.bpms.util.UtilDate;
|
||||||
import com.actionsoft.bpms.util.UtilString;
|
import com.actionsoft.bpms.util.UtilString;
|
||||||
@ -79,6 +84,8 @@ import java.util.function.Function;
|
|||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.actionsoft.apps.coe.pal.pal.output.util.OutputExcelUtil.fileId;
|
||||||
|
|
||||||
public class DataMigrationWeb extends ActionWeb {
|
public class DataMigrationWeb extends ActionWeb {
|
||||||
|
|
||||||
UserContext _uc;
|
UserContext _uc;
|
||||||
@ -933,4 +940,109 @@ public class DataMigrationWeb extends ActionWeb {
|
|||||||
public String positionImport(String wsId, String groupValue, String fileValue, String fileName) {
|
public String positionImport(String wsId, String groupValue, String fileValue, String fileName) {
|
||||||
return new PositionExcelImportWeb(_uc).positionImport(wsId, groupValue, fileValue, 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<Map<String, Object>> repositoryFileElements = CoeDesignerUtil.getShapeMessageJson(palId);
|
||||||
|
List<Object> 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<FormFile> 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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -146,10 +146,12 @@ public class WpsWeb extends ActionWeb {
|
|||||||
FileInputStream fileInputStream=new FileInputStream(file);
|
FileInputStream fileInputStream=new FileInputStream(file);
|
||||||
//写入新文件
|
//写入新文件
|
||||||
//调用刷新逻辑
|
//调用刷新逻辑
|
||||||
CallASLPUtil aslpUtil =new CallASLPUtil();
|
//CallASLPUtil aslpUtil =new CallASLPUtil();
|
||||||
aslpUtil.callTranslateDocASLP(me,palId,fileName,fileInputStream);
|
//aslpUtil.callTranslateDocASLP(me,palId,fileName,fileInputStream);
|
||||||
|
//只写入新文件
|
||||||
DCContext sourceDc = getFileDCContext(fileId,fileName);
|
DCContext sourceDc = getFileDCContext(fileId,fileName);
|
||||||
sourceDc.setSession(me);
|
sourceDc.setSession(me);
|
||||||
|
SDK.getDCAPI().write(fileInputStream,sourceDc);
|
||||||
//在重新获取下fileId
|
//在重新获取下fileId
|
||||||
String querySql = " SELECT ID FROM " + YiliWpsConst.APP_ACT_COE_PAL_UPFILE+" WHERE PALREPOSITORYID = ? ORDER BY CREATETIME DESC";
|
String querySql = " SELECT ID FROM " + YiliWpsConst.APP_ACT_COE_PAL_UPFILE+" WHERE PALREPOSITORYID = ? ORDER BY CREATETIME DESC";
|
||||||
fileId = DBSql.getString(querySql, new Object[]{palId});
|
fileId = DBSql.getString(querySql, new Object[]{palId});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user