模版编制相关实现

This commit is contained in:
潘荣晟
2025-09-26 14:59:38 +08:00
parent b373f9c308
commit eab5668023
6 changed files with 101 additions and 67 deletions

View File

@@ -59,11 +59,11 @@ public class TemplateInstanceController extends AbstractFileUploadController {
private TemplateInstanceService templateInstanceService;
//上传文件
@PostMapping("/save-file")
@Operation(summary = "上传文件", description = "上传文件,传入文件对象和模版实例id")
public CommonResult<Map<String, Object>> uploadFile(@NotEmpty(message = "文件不能为空") @RequestParam("file") MultipartFile file,@RequestParam("id") String id) {
return success(templateInstanceService.saveFile(file,id));
}
// @PostMapping("/save-file")
// @Operation(summary = "上传文件", description = "上传文件,传入文件对象和模版实例id")
// public CommonResult<Map<String, Object>> uploadFile(@NotEmpty(message = "文件不能为空") @RequestParam("file") MultipartFile file,@RequestParam("id") String id) {
// return success(templateInstanceService.saveFile(file,id));
// }
@PostMapping("/create")
@Operation(summary = "创建模板实例")

View File

@@ -1,11 +1,14 @@
package com.zt.plat.module.base.controller.admin.templtp.onlyoffice.service;
import com.alibaba.fastjson2.JSONObject;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.Action;
import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.History;
import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.OnlyOfficeCallback;
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService;
import com.zt.plat.module.infra.api.file.FileApi;
import com.zt.plat.module.infra.api.file.dto.FileCreateReqDTO;
import com.zt.plat.module.infra.api.file.dto.FileRespDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -13,6 +16,8 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import static com.zt.plat.module.base.controller.admin.templtp.onlyoffice.util.UrlFileDownloader.downloadFileAsMultipart;
@@ -23,6 +28,7 @@ import static com.zt.plat.module.base.controller.admin.templtp.onlyoffice.util.U
public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService {
private final FileApi fileApi;
private final TemplateInstanceService templateInstanceService;
@Override
public void processCallback(OnlyOfficeCallback callback,String id) {
log.info("Received OnlyOffice callback for document: {}", callback.getKey());
@@ -151,7 +157,21 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
fileCreateReqDTO.setDirectory(directory); // 设置文件存储目录
// 7. 调用文件服务创建文件
CommonResult<String> result = fileApi.createFile(fileCreateReqDTO);
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
if (result.isSuccess()) {
// 创建文件成功,处理结果
log.info("文件创建成功文件ID{}", result.getData());
// 创建文件成功,处理结果
FileRespDTO fileRespDTO = result.getData();
Map<String, Object> fileInfo = new HashMap<>();
fileInfo.put("id", fileRespDTO.getId());
fileInfo.put("name", fileRespDTO.getName());
fileInfo.put("directory", fileRespDTO.getDirectory());
templateInstanceService.updateTemplateInstanceFileUrlByInstanceId(id, JSONObject.toJSONString(fileInfo));
} else {
// 创建文件失败,处理错误
log.error("文件创建失败,错误信息:{}", result.getMsg());
}
log.info("文件创建结果:{}", result);
} catch (IOException e) {
throw new RuntimeException(e);

View File

@@ -9,7 +9,7 @@ import java.util.List;
@Schema(description = "管理后台 - 实例启用与禁用 Request VO")
@Data
public class DisableEnableReqVO {
@Schema(description = "实例主键(id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@Schema(description = "实例主键(id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "['1','2']")
@NotEmpty(message = "实例主键不能为空")
private List<String> ids;
@Schema(description = "操作类型;操作类型type,type的值启用为enable禁用为disable", requiredMode = Schema.RequiredMode.REQUIRED, example = "enable")

View File

@@ -83,6 +83,8 @@ public interface TemplateInstanceService {
Map<String, Object> getVersion(String id);
List<TemplateInstanceRespVO> listByCdg(String cdg);
//
// Map<String, Object> saveFile(MultipartFile file, String id);
Map<String, Object> saveFile(MultipartFile file, String id);
boolean updateTemplateInstanceFileUrlByInstanceId(@Valid @NotEmpty(message = "模版实例id不能为空") String id, @Valid @NotEmpty(message = "文件参数不能为空") String params);
}