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
package cn.iocoder.yudao.module.research.service.guideline;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.research.controller.admin.guideline.vo.ResearchGuidelinePageReqVO;
import cn.iocoder.yudao.module.research.controller.admin.guideline.vo.ResearchGuidelineSaveReqVO;
import cn.iocoder.yudao.module.research.dal.dataobject.guideline.ResearchGuidelineDO;
 
import jakarta.validation.Valid;
import java.util.Collection;
import java.util.List;
 
public interface ResearchGuidelineService {
 
    Long createGuideline(@Valid ResearchGuidelineSaveReqVO createReqVO);
 
    void updateGuideline(@Valid ResearchGuidelineSaveReqVO updateReqVO);
 
    void deleteGuideline(Long id);
 
    ResearchGuidelineDO getGuideline(Long id);
 
    PageResult<ResearchGuidelineDO> getGuidelinePage(ResearchGuidelinePageReqVO pageReqVO);
 
    /** 已发布的课题指南列表(供申报单选择指南) */
    List<ResearchGuidelineDO> getPublishedGuidelineList();
 
    /** 按 id 集合批量查询指南(申报单列表回显指南名称) */
    List<ResearchGuidelineDO> getGuidelineList(Collection<Long> ids);
 
    /** 发布指南:草稿 → 已发布 */
    void publishGuideline(Long id);
 
    /** 截止指南:已发布 → 已截止 */
    void closeGuideline(Long id);
 
    /** 校验指南是否可申报(已发布 + 在申报期内),返回该指南 */
    ResearchGuidelineDO validateGuidelineSubmittable(Long guidelineId);
 
}