package com.hxhq.business.service;

import java.util.List;
import com.hxhq.business.domain.StudyFormFill;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.dto.study.StudyFormFillListDto;
import com.hxhq.business.form.study.StudyFormFillGcForm;
import com.hxhq.business.form.study.StudyFormFillSearchForm;
import com.hxhq.business.form.study.StudyFormFillShfzForm;
import com.hxhq.business.form.study.StudyFormUpdateForm;

/**
 * 试验-填报单Service接口
 *
 * @author hxhq
 * @date 2025-12-29
 */
public interface IStudyFormFillService extends IService<StudyFormFill>
{
    /**
     * 查询试验-填报单列表
     *
     * @param form 试验-填报单
     * @return 试验-填报单集合
     */
    public List<StudyFormFillListDto> queryList(StudyFormFillSearchForm form);

    /**
     * 详情
     *
     * @param id
     * @return 详情
     */
    public StudyFormFill queryInfo(Long id);

    /**
     * 加签
     * @param studyFormFill
     */
    public void jq(StudyFormFill studyFormFill);

    /**
     * 废止
     * @param studyFormFill
     */
    public void fz(StudyFormFill studyFormFill);


    /**
     * 确认废止
     * @param form
     */
    public void qrfz(StudyFormFillShfzForm form);


    /**
     * 更换归属人
     * @param studyFormFill
     */
    public void ghgsr(StudyFormFill studyFormFill);

    /**
     * 保存
     * @param studyFormFill
     */
    public StudyFormFill bc(StudyFormFill studyFormFill);

    /**
     * 预填填报
     * @param studyFormFill
     */
    public void bcAuto(StudyFormFill studyFormFill);

    /**
     * 仅保存
     * @param studyFormFill
     */
    public StudyFormFill bcOnly(StudyFormFill studyFormFill);

    /**
     * 提交
     * @param studyFormFill
     */
    public void tj(StudyFormFill studyFormFill);


    /**
     * 观察
     * @param form
     */
    public void gc(StudyFormFillGcForm form);


    /**
     * 复核通过
     * @param studyFormFill
     */
    public void fhtg(StudyFormFill studyFormFill);


    /**
     * 复核拒绝
     * @param studyFormFill
     */
    public void fhjj(StudyFormFill studyFormFill);

    /**
     * 通过
     * @param studyFormFill
     */
    public void tg(StudyFormFill studyFormFill);

    /**
     * 审阅
     * @param studyFormFill
     */
    public void sy(StudyFormFill studyFormFill);

    /**
     * 更新表单内容
     */
    public void updateBdnr(StudyFormUpdateForm form);

    /**
     * 更新复核意见
     */
    public void updateFhyjjl(StudyFormUpdateForm form);

    /**
     * 更新字段勾选记录
     */
    public void updateZdgxjl(StudyFormUpdateForm form);

}
