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.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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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<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);
|
||||
//写入新文件
|
||||
//调用刷新逻辑
|
||||
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});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user