Merge branch 'dev' into 'test'

模版编制相关实现

See merge request jygk/dsc-base!3
This commit is contained in:
付鹏飞
2025-09-26 08:45:10 +00:00
9 changed files with 187 additions and 123 deletions

View File

@@ -7,7 +7,7 @@ public enum DeleteStatusEnum {
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>());
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{add(TmplStsEnum.STOPPED.getCode());}});
private final String code;

View File

@@ -55,15 +55,16 @@ public class TemplateInstanceController extends AbstractFileUploadController {
setFileUploadInfo(annotation);
}
}
@Resource
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 = "创建模板实例")
@@ -105,6 +106,9 @@ public class TemplateInstanceController extends AbstractFileUploadController {
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@RequestParam("id") Long id) {
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(id);
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
if (templateInstance == null) {
return success(templateInstanceRespVO);
}
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
return success(templateInstanceRespVO);
}
@@ -116,7 +120,9 @@ public class TemplateInstanceController extends AbstractFileUploadController {
PageResult<TemplateInstanceDO> pageResult = templateInstanceService.getTemplateInstancePage(pageReqVO);
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(pageResult, TemplateInstanceRespVO.class);
templateInstanceRespVOPageResult.getList().forEach(templateInstanceRespVO -> {
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
if (templateInstanceRespVO != null) {
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
}
});
return success(templateInstanceRespVOPageResult);
}
@@ -150,23 +156,28 @@ public class TemplateInstanceController extends AbstractFileUploadController {
public CommonResult<PageResult<TemplateInstanceRespVO>> listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO) {
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(templateInstanceService.listExcludingDisabled(pageReqVO), TemplateInstanceRespVO.class);
templateInstanceRespVOPageResult.getList().forEach(
templateInstanceRespVO ->
templateInstanceService.getDetailedInfo(templateInstanceRespVO));
templateInstanceRespVO -> {
if (templateInstanceRespVO != null) {
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
}
}
);
return success(templateInstanceRespVOPageResult);
}
//停用和启用接口
@PostMapping("/disable-enable")
@Operation(summary = "实例停用和启用接口",description = "实例停用和启用接口")
@Operation(summary = "实例停用和启用接口", description = "实例停用和启用接口")
@PreAuthorize("@ss.hasPermission('bse:template-instance:disable-enable')")
public CommonResult<Boolean> setDisableOrEnable(@Valid @RequestBody DisableEnableReqVO reqVO) {
templateInstanceService.setDisableOrEnable(reqVO);
return success(true);
}
//根据id获取实例版本号
@GetMapping("/get-version")
@Operation(summary = "根据id获取实例版本号")
public CommonResult<Map<String,Object>> getVersion(@Valid @NotEmpty(message = "模版实例id不能为空") @RequestParam("id") String id) {
public CommonResult<Map<String, Object>> getVersion(@Valid @NotEmpty(message = "模版实例id不能为空") @RequestParam("id") String id) {
return success(templateInstanceService.getVersion(id));
}
@@ -175,13 +186,13 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@Operation(summary = "创建版本")
@PreAuthorize("@ss.hasPermission('bse:template-instance:create-version')")
public CommonResult<TemplateInstanceRespVO> createVersion(@Valid @NotEmpty(message = "模版实例id不能为空") String id) {
return success(templateInstanceService.createVersion(id));
return success(templateInstanceService.createVersion(id));
}
//通过模版编码查看历史版本
@GetMapping("/list-by-template-cdg")
@Operation(summary = "通过模版编码(cdg)查看历史版本",description = "通过模版编码查看历史版本,已按照发布时间和创建时间降序排序")
public CommonResult<List<TemplateInstanceRespVO>> listByTemplateCode(@RequestParam("cdg") @Valid @NotEmpty(message = "模版编号不能为空") String templateCode) {
@Operation(summary = "通过模版编码(cdg)查看历史版本", description = "通过模版编码查看历史版本,已按照发布时间和创建时间降序排序")
public CommonResult<List<TemplateInstanceRespVO>> listByTemplateCode(@RequestParam("cdg") @Valid @NotEmpty(message = "模版编号不能为空") String templateCode) {
return success(templateInstanceService.listByCdg(templateCode));
}
}

View File

@@ -79,7 +79,7 @@ public class UrlFileDownloader {
}
/**
* 从URL和响应头中提取文件名
* 从URL和响应头中提取文件名
*/
private static String getFileNameFromUrl(String fileUrl, URLConnection connection) {
// 优先从响应头的Content-Disposition获取attachment;filename="test.pdf"

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

@@ -1,5 +1,7 @@
package com.zt.plat.module.base.controller.admin.templtp.vo;
import com.zt.plat.module.system.api.dept.dto.DeptDetailRespDTO;
import com.zt.plat.module.system.api.dept.dto.DeptRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -59,12 +61,18 @@ public class TemplateInstanceRespVO {
@Schema(description = "发布时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发布时间")
private LocalDateTime publishTime;
@Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
private List<String> deptIds;
@Schema(description = "实例字段;这个是实例字段绑定的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
private List<TemplateInstanceDataRespVO> templateInstanceDataRespVOS;
@Schema(description = "实例条款;这个是实例条款绑定的条款;", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
private List<TemplateInstanceItemRespVO> instanceItemRespVOS;
@Schema(description = "使用部门编", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
private List<DeptRespDTO> DeptRespVOS;
@Schema(description = "模版分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试分类名称")
@ExcelProperty("模版分类名称")
private String tpName;
}

View File

@@ -6,6 +6,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(value = "baseRpcConfiguration", proxyBeanMethods = false)
@EnableFeignClients(clients = {DeptApi.class, FileApi.class})
@EnableFeignClients(clients = {DeptApi.class, FileApi.class,DeptApi.class})
public class RpcConfiguration {
}

View File

@@ -7,9 +7,7 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
import jakarta.validation.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
import jakarta.validation.constraints.NotEmpty;
import org.springframework.web.multipart.MultipartFile;
/**
* 模板实例 Service 接口
@@ -83,6 +81,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);
void updateTemplateInstanceFileUrlByInstanceId(@Valid @NotEmpty(message = "模版实例id不能为空") String id, @Valid @NotEmpty(message = "文件参数不能为空") String params);
}