package com.hxhq.business.service;

import java.util.Date;
import java.util.List;

import com.hxhq.business.domain.Gyzj;
import com.hxhq.business.domain.GyzjFfjl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hxhq.business.dto.gyzj.FfjlDetailDto;
import com.hxhq.business.dto.gyzj.FfjlListDto;
import com.hxhq.business.form.gyzj.*;
import com.hxhq.system.api.domain.SysUser;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 给药制剂-发放记录Service接口
 *
 * @author hxhq
 * @date 2025-12-21
 */
public interface IGyzjFfjlService extends IService<GyzjFfjl> {

    //region 发放记录
    /**
     * 详情
     *
     * @param gyzjId
     * @return
     */
    public GyzjFfjl queryLastInfoByGyzjId(Long gyzjId);

    /**
     * 列表
     *
     * @param form 给药制剂-发放记录
     * @return
     */
    public List<FfjlListDto> queryList(FfjlSearchForm form);

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

    /**
     * 解档
     *
     * @param form
     */
    public void jd(FfjlJdForm form);

    /**
     * 批量归档
     *
     * @param form
     */
    public void plgd(FfjlGdForm form);

    /**
     * 归档
     *
     * @param form
     */
    public void gd(FfjlGdForm form);


    /**
     * 批量锁定
     *
     * @param form
     */
    public void plsd(FfjlSdForm form);

    /**
     * 锁定
     *
     * @param form
     */
    public void sd(FfjlSdForm form);

    /**
     * 解锁
     *
     * @param form
     */
    public void js(FfjlJsForm form);


    /**
     * 借阅
     *
     * @param form
     */
    public void jy(FfjlJyForm form);


    /**
     * 加签
     *
     * @param form
     */
    public void jq(FfjlJqForm form);


    /**
     * 归还
     * @param form
     * @param gyzj
     * @param ghr1
     * @param ghr2
     * @param jsr1
     * @param jsr2
     */
    public void gh( GhForm form, Gyzj gyzj, SysUser ghr1, SysUser ghr2, SysUser jsr1, SysUser jsr2);

    /**
     * 发放
     * @param form
     * @param gyzj
     * @param lqr1
     * @param lqr2
     * @param ffr1
     * @param ffr2
     * @param time
     */
    public void ff(FfForm form,Gyzj gyzj, SysUser lqr1, SysUser lqr2, SysUser ffr1, SysUser ffr2, Date time);

    //endregion

    //region 档案管理

    /**
     * 查询给药制剂列表
     *
     * @param form 给药制剂
     * @return 给药制剂集合
     */
    public List<FfjlListDto> queryArchiveList(FfjlSearchForm form);

    /**
     * 同意归档
     */
    public void tygd(ArchiveForm form);

    /**
     * 拒绝归档
     */
    public void jjgd(ArchiveForm form);

    /**
     * 同意解档
     */
    public void tyjd(ArchiveForm form);

    /**
     * 拒绝解档
     */
    public void jjjd(ArchiveForm form);

    /**
     * 同意借阅
     */
    public void tyjy(ArchiveForm form);

    /**
     * 拒绝借阅
     */
    public void jjjy(ArchiveForm form);

    /**
     * 确认归还
     */
    public void qrgh(ArchiveForm form);

    //endregion
}
