package com.hxhq.business.service;

import java.util.List;
import com.hxhq.business.domain.Gsp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.dto.gsp.GspDto;
import com.hxhq.business.dto.gsp.GspListDto;
import com.hxhq.business.form.gsp.*;
import com.hxhq.business.form.gyzj.SearchForm;

/**
 * 供试品管理Service接口
 *
 * @author HanLong
 * @date 2025-12-30
 */
public interface IGspService extends IService<Gsp>
{
    /**
     * 查询供试品管理列表
     *
     * @param form 供试品列表参数
     * @return 供试品管理集合
     */
    public List<Gsp> queryList(GspSearchListForm form);

    GspDto queryInfo(Long id);


    /**
     * 新增供试品
     * @param gspForm 供试品表单
     */
    void save(GspForm gspForm);

    /**
     * 编辑供试品
     * @param gspForm 供试品编辑表单
     */
    void edit(GspBjForm gspForm);

    /** 审核编辑 */
    void shbj(GspShbjForm form);

    /** 钥匙发放 */
    void ysff(GspYsffForm form);

    /** 发放 */
    void ff(FfGspForm form);

    /** 批量发放 */
    void plff(GspPlffForm form);

    /** 修改库存 */
    void xgkc(GspXgkcForm form);

    /** 审核修改库存 */
    void shxgkc(GspShxgkcForm form);

    /** 批量锁定 */
    void plsd(GspSdForm form);

    /** 锁定 */
    void sd(GspSdForm form);

    /** 解锁 */
    void js(GspJsForm form);

    /** 处置 */
    void cz(GspCzForm form);

    /** 批量处置 */
    void plcz(GspPlczForm form);

    /** 借阅 */
    void jy(GspJyForm form);

    /** 解档 */
    void jd(GspJdForm form);

    /** 供试品归档 */
    void gd(GspGdForm form);

    /** 批量归档 */
    void plgd(GspGdForm form);

    /** 归还 */
    void gh(GspGhForm form);

    /** 试验关联的供试品列表 */
    List<GspListDto> queryStudyList(GspSearchListForm form);

    /** 同意归档 */
    void agreeGd(GspGdForm form);

    /** 拒绝归档 */
    void refuseGd(GspGdForm form);

    /** 同意解档 */
    void agreeJd(GspGdForm form);

    /** 拒绝解档 */
    void refuseJd(GspGdForm form);

    /** 同意借阅 */
    void agreeJy(GspJyForm form);

    /** 拒绝借阅 */
    void refuseJy(GspJyForm form);

    /** 档案确认归还 */
    void archiveGh(GspGdForm form);

}
