模板文件填充接口
This commit is contained in:
parent
457133202b
commit
b09e3afd70
|
|
@ -0,0 +1,41 @@
|
|||
package com.weaver.seconddev.jcl.organization.controller;
|
||||
|
||||
import com.weaver.common.authority.annotation.WeaPermission;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.eteams.file.client.file.FileCapabilityResult;
|
||||
import com.weaver.seconddev.jcl.organization.entity.ContractData;
|
||||
import com.weaver.seconddev.jcl.organization.service.ContractManageService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/secondev/jcl/contractManagement")
|
||||
public class ContractManageController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(ContractManageController.class);
|
||||
|
||||
@Autowired
|
||||
private ContractManageService contractManageService;
|
||||
|
||||
/**
|
||||
* 书签套用
|
||||
* @return
|
||||
*/
|
||||
@WeaPermission(publicPermission = true)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@PostMapping("/convertOfferFileByFileId")
|
||||
public WeaResult<FileCapabilityResult> convertOfferFileByFileId(
|
||||
@RequestBody ContractData contractData){
|
||||
log.error("convertOfferFileByFileId.contractData:{}",contractData);
|
||||
String fileId = contractData.getFileId();
|
||||
String fileNameTemplate = contractData.getFileNameTemplate();
|
||||
Map<String, Object> dataMap = contractData.getDataMap();
|
||||
return contractManageService.convertOfferFileByFileId(Long.valueOf(fileId), fileNameTemplate, dataMap);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.weaver.seconddev.jcl.organization.entity;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* Bookmark
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Bookmark {
|
||||
|
||||
private String bookmark;
|
||||
|
||||
private String bookmark_type;
|
||||
|
||||
private String bookmark_content;
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.weaver.seconddev.jcl.organization.entity;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* ContractData
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ContractData {
|
||||
|
||||
private String fileId;
|
||||
|
||||
private String fileNameTemplate;
|
||||
|
||||
private Map<String, Object> dataMap;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.weaver.seconddev.jcl.organization.service;
|
||||
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.eteams.file.client.file.FileCapabilityResult;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ContractManageService {
|
||||
|
||||
WeaResult<FileCapabilityResult> convertOfferFileByFileId(Long fileId, String fileNameTemplate, Map<String, Object> dataMap);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
package com.weaver.seconddev.jcl.organization.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.eteams.file.client.file.FileCapabilityParam;
|
||||
import com.weaver.eteams.file.client.file.FileCapabilityResult;
|
||||
import com.weaver.eteams.file.client.param.FileCovertParam;
|
||||
import com.weaver.eteams.file.client.param.FileReplaceParamVo;
|
||||
import com.weaver.eteams.file.client.remote.OfficialFileConvertService;
|
||||
import com.weaver.framework.rpc.annotation.RpcReference;
|
||||
import com.weaver.seconddev.jcl.organization.controller.EmployeeRelationController;
|
||||
import com.weaver.seconddev.jcl.organization.entity.Bookmark;
|
||||
import com.weaver.seconddev.jcl.organization.service.ContractManageService;
|
||||
import com.weaver.teams.security.context.UserContext;
|
||||
import com.weaver.teams.security.user.User;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class ContractManageServiceImpl implements ContractManageService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(EmployeeRelationController.class);
|
||||
|
||||
@RpcReference
|
||||
OfficialFileConvertService officialFileConvertService;
|
||||
|
||||
@Override
|
||||
public WeaResult<FileCapabilityResult> convertOfferFileByFileId(Long fileId, String fileNameTemplate, Map<String, Object> dataMap) {
|
||||
//查询书签
|
||||
List<Bookmark> bookmarks = queryDocBookmarks(fileId);
|
||||
log.error("convertOfferFileByFileId.bookmarks:{}",bookmarks);
|
||||
//赋值书签
|
||||
List<FileReplaceParamVo.BookmarkReplace> bookmarkReplaces = new ArrayList<>();
|
||||
for (Bookmark bookmark : bookmarks) {
|
||||
String bookmarkName = bookmark.getBookmark();
|
||||
if (StrUtil.isBlank(bookmarkName)) {
|
||||
continue;
|
||||
}
|
||||
//重名书签使用两个下划线+任意序号分开;不使用一个下划线是为了兼容可能的按数据库字段key名称替换
|
||||
bookmarkName = bookmarkName.split("__")[0];
|
||||
String data = Convert.toStr(dataMap.get(bookmarkName), "-");
|
||||
//构建书签替换参数
|
||||
FileReplaceParamVo.BookmarkReplace bookmarkReplace = new FileReplaceParamVo.BookmarkReplace();
|
||||
bookmarkReplace.setType("TEXT");
|
||||
bookmarkReplace.setBookmark(bookmark.getBookmark());
|
||||
bookmarkReplace.setText(data);
|
||||
bookmarkReplaces.add(bookmarkReplace);
|
||||
}
|
||||
log.error("convertOfferFileByFileId.bookmarkReplaces:{}",bookmarkReplaces);
|
||||
String fileName = fileNameTemplate;
|
||||
//文件名称自定义
|
||||
for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
|
||||
String k = entry.getKey();
|
||||
Object v = entry.getValue();
|
||||
fileName = fileName.replace("{" + k + "}", Convert.toStr(v, ""));
|
||||
}
|
||||
fileName = fileName + ".pdf";
|
||||
FileCapabilityParam capabilityParam = new FileCapabilityParam();
|
||||
capabilityParam.setOption("COMPOSITE");
|
||||
//1、套用 2、输出pdf
|
||||
capabilityParam.setSteps(Arrays.asList("REPLACE", "CONVERT"));
|
||||
capabilityParam.setFileId(fileId);
|
||||
capabilityParam.setResultFileName(fileName);
|
||||
capabilityParam.setUserId(String.valueOf(UserContext.getCurrentUser().getEmployeeId()));
|
||||
capabilityParam.setModule("ebuilderform");
|
||||
capabilityParam.setTemporaryFile(true);//设置为临时文件,使用复制附件联动功能实现赋值
|
||||
//书签套用参数
|
||||
FileReplaceParamVo fileReplaceParam = new FileReplaceParamVo();
|
||||
fileReplaceParam.setBookmarkReplaces(bookmarkReplaces);
|
||||
capabilityParam.setFileReplaceParam(fileReplaceParam);
|
||||
//文档转换参数
|
||||
FileCovertParam fileCovertParam = new FileCovertParam();
|
||||
fileCovertParam.setTargetType("pdf");
|
||||
capabilityParam.setFileCovertParam(fileCovertParam);
|
||||
log.error("convertOfferFileByFileId.capabilityParam:{}",capabilityParam);
|
||||
WeaResult<FileCapabilityResult> result = officialFileConvertService.capabilityFile(capabilityParam);
|
||||
// if (result.getData() != null) {
|
||||
// ConvertedFileCapabilityResult converted = ConvertedFileCapabilityResult.convert(result.getData(), fileName);
|
||||
// result.setData(converted);
|
||||
// }
|
||||
log.error("convertOfferFileByFileId.result:{}",result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Bookmark> queryDocBookmarks(Long fileId) {
|
||||
FileCapabilityParam queryBookmarkParam = new FileCapabilityParam();
|
||||
queryBookmarkParam.setOption("BOOKMARK");
|
||||
queryBookmarkParam.setFileId(fileId);
|
||||
User currentUser = UserContext.getCurrentUser();
|
||||
//queryBookmarkParam.setUserId(RecruitModuleUtils.getCurrentUserIdStr());
|
||||
queryBookmarkParam.setUserId(String.valueOf(currentUser.getEmployeeId()));
|
||||
queryBookmarkParam.setModule("ebuilderform");
|
||||
WeaResult<FileCapabilityResult> result = officialFileConvertService.capabilityFile(queryBookmarkParam);
|
||||
String bookmarksJSON = JSON.toJSONString(result.getData().getData());
|
||||
log.info("书签内容 {}", bookmarksJSON);
|
||||
return JSON.parseArray(bookmarksJSON, Bookmark.class);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue