package cn.iocoder.yudao.module.museum.service.museumflow;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowSaveVO;
import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;

import java.util.Collection;
import java.util.List;

public interface MuseumFlowService {
    /**
     * 创建标本
     * */
    Integer createMuseumFlow(MuseumFlowSaveVO saveVO);

    /**
     * 更新标本
     * */
    void updateMuseumFlow(MuseumFlowSaveVO saveVO);

    /**
     * 删除标本
     * */
    void deleteMuseumFlow(Integer id);


    /**
     * 查询标本
     * */
    MuseumFlowDO selectMuseumFlow(Integer id);


    /**
     * 根据样本编号查找
     * */
    MuseumInfoDO selectMuseumFlowSampleId(String sample_id);

    /**
     * 将样品状态设置为1
     * */
    void updateMuseumFlowState(MuseumFlowSaveVO saveVO);

    /**
     * 将样品状态设置为4
     * */
    void updateMuseumFlowState4(MuseumFlowSaveVO saveVO);

    /**
     * 将样品状态设置为3
     * */
    void updateMuseumFlowState3(MuseumFlowSaveVO saveVO);

    /**
     * 根据出库员进行分页查找
     * */
    List<MuseumFlowDO> selectPageMuseumFlowOutboundPerson(MuseumFlowPageVO pageVO);

    /**
     * 根据分页长度进行排序
     * */
    PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO);
}