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

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoRespVO;
import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoSaveVO;
import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public interface MuseumInfoService {
   /**
    * 创建标本
   * */
   Integer createMuseumInfo(MuseumInfoSaveVO saveVO);

   /**
    * 更新标本
    * */
   void updateMuseumInfo(MuseumInfoSaveVO saveVO);

   /**
    * 删除标本(原因）
    * */
   void deleteMuseumInfo(Integer id,String reason);
   /**
    * 查询标本
    * */
   MuseumInfoDO selectMuseumInfo (Integer id);

   /**
    * 查询标本编号
    * */
   MuseumInfoDO getMuseumInfoBySampleId(String sampleId);
   /**
   * 查询标本类型
   * */
   List<MuseumInfoDO> selectMuseumInfoListBySampleType(Integer sampleType);
    /**
    * 分页列表
    *
    * @param pageReqVO 分页条件
    * @return 分页列表
    */
    PageResult<MuseumInfoDO> getMuseumInfoPage(MuseumInfoPageReqVO pageReqVO);
   /**
    * 标本类型计数
    * */
   Map<MuseumInfoRespVO,Integer> MuseumInfoBySampleType(Integer sampleType);
   /**
    * 标本出入库状态计数
    * */
   Map<String,Integer> MuseumInfoBySave(Integer save);
}
