package com.hxhq.business.service;

import java.util.List;
import com.hxhq.business.domain.Sj;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.domain.StudyFormFill;
import com.hxhq.business.domain.Template;
import com.hxhq.business.dto.gsp.GspListDto;
import com.hxhq.business.dto.sj.SjListDto;
import com.hxhq.business.form.gsp.GspGdForm;
import com.hxhq.business.form.gsp.GspJyForm;
import com.hxhq.business.form.gsp.GspSearchListForm;
import com.hxhq.business.form.mjy.GdForm;
import com.hxhq.business.form.sj.*;

/**
 * 试剂Service接口
 *
 * @author HanLong
 * @date 2025-12-22
 */
public interface ISjService extends IService<Sj>
{
    /**
     * 查询试剂库存列表
     *
     * @param form 试剂库存
     * @return 试剂库存集合
     */
    public List<SjListDto> queryList(SjSearchListForm form);
    public List<SjListDto> queryPublicList(SjSearchListForm form);

    Sj getSjByBh(String bh);

    /**
     * 获取试剂详情
     * @param id    试剂id
     * @return
     */
    SjListDto getInfo(Long id);

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

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

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

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

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

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

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

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

    /** 归档 */
    void gd(GdSjForm form);

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

    /** 编辑 */
    void bj(SjBjForm form);

    /** 试验物资列表 */
    List<SjListDto> queryStudyList(GspSearchListForm form);

    /** 表单生成试剂逻辑处理 */
    void genResource(StudyFormFill studyFormFill, Template template);

    /** 同意归档 */
    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);
}
