8 小时以前 9bad721754fe8bbe2e5f459d0706e0fefac569f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package cn.iocoder.yudao.module.qcreport.service.version;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.qcreport.controller.admin.version.vo.QcReportTemplateVersionPageReqVO;
import cn.iocoder.yudao.module.qcreport.controller.admin.version.vo.QcReportTemplateVersionSaveReqVO;
import cn.iocoder.yudao.module.qcreport.controller.admin.version.vo.QcReportTemplateVersionUpdateReqVO;
import cn.iocoder.yudao.module.qcreport.dal.dataobject.version.QcReportTemplateVersionDO;
 
import java.util.List;
 
/**
 * 智能质检报告模板版本 Service 接口
 */
public interface QcReportTemplateVersionService {
 
    /**
     * 创建模板版本
     *
     * @param createReqVO 创建信息
     * @return 版本编号
     */
    Long createVersion(QcReportTemplateVersionSaveReqVO createReqVO);
 
    /**
     * 更新模板版本(已发布的版本不允许修改)
     *
     * @param updateReqVO 更新信息
     */
    void updateVersion(QcReportTemplateVersionUpdateReqVO updateReqVO);
 
    /**
     * 删除模板版本(仅草稿可删除)
     *
     * @param id 版本编号
     */
    void deleteVersion(Long id);
 
    /**
     * 发布模板版本,并把模板的当前版本号指向它
     *
     * @param id 版本编号
     */
    void publishVersion(Long id);
 
    /**
     * 回滚:把模板的当前版本号切回指定的历史版本(版本内容不会被修改)
     *
     * @param id 版本编号
     */
    void rollbackVersion(Long id);
 
    /**
     * 停用模板版本
     *
     * @param id 版本编号
     */
    void disableVersion(Long id);
 
    /**
     * 校验版本存在,并返回
     *
     * @param id 版本编号
     * @return 版本
     */
    QcReportTemplateVersionDO validateVersionExists(Long id);
 
    /**
     * 获得模板版本
     *
     * @param id 版本编号
     * @return 版本
     */
    QcReportTemplateVersionDO getVersion(Long id);
 
    /**
     * 获得指定模板的指定版本(要求已发布),供渲染使用
     *
     * @param templateId 模板编号
     * @param version    版本号
     * @return 版本
     */
    QcReportTemplateVersionDO getPublishedVersion(Long templateId, String version);
 
    /**
     * 按「模板编号 + 版本号」取版本,**不要求已发布**,不存在时返回 null。
     * <p>
     * 与 {@link #getPublishedVersion} 的分工:那个用于「第一次出件」,必须是已发布版本;
     * 这个用于「重新生成历史报告」——已发布版本的内容不可改,但状态可能被停用,
     * 不该因此让一份已经出过的报告变成打不开。
     *
     * @param templateId 模板编号
     * @param version    版本号
     * @return 版本,不存在时返回 null
     */
    QcReportTemplateVersionDO getVersionByTemplateIdAndVersion(Long templateId, String version);
 
    /**
     * 获得模板版本分页
     *
     * @param pageReqVO 分页查询
     * @return 版本分页
     */
    PageResult<QcReportTemplateVersionDO> getVersionPage(QcReportTemplateVersionPageReqVO pageReqVO);
 
    /**
     * 获得模板的所有版本
     *
     * @param templateId 模板编号
     * @return 版本列表
     */
    List<QcReportTemplateVersionDO> getVersionListByTemplateId(Long templateId);
 
}