package cn.iocoder.yudao.module.system.service.biz;

import cn.iocoder.yudao.module.system.dal.dataobject.biz.MedicineInOutRecordsDO;

import java.util.List;

/**
 * 药品出入库记录 Service 接口
 *
 * @author 系统管理员
 */
public interface MedicineInOutRecordsService {

    /**
     * 创建出入库记录
     *
     * @param record 出入库记录
     * @return 记录ID
     */
    Long createRecord(MedicineInOutRecordsDO record);

    /**
     * 更新出入库记录
     *
     * @param record 出入库记录
     */
    void updateRecord(MedicineInOutRecordsDO record);

    /**
     * 根据ID查询出入库记录
     *
     * @param id 记录ID
     * @return 出入库记录
     */
    MedicineInOutRecordsDO getRecord(Long id);

    /**
     * 根据药品标识码查询出入库记录
     *
     * @param barcode 药品标识码
     * @return 出入库记录列表
     */
    List<MedicineInOutRecordsDO> getRecordsByBarcode(String barcode);

    /**
     * 根据批次号查询出入库记录
     *
     * @param batchNumber 批次号
     * @return 出入库记录列表
     */
    List<MedicineInOutRecordsDO> getRecordsByBatchNumber(String batchNumber);

    /**
     * 根据出入库类型查询记录
     *
     * @param inOrOut 出入库类型：1-入库，2-出库
     * @return 出入库记录列表
     */
    List<MedicineInOutRecordsDO> getRecordsByInOrOut(Integer inOrOut);

    /**
     * 根据机构ID查询出入库记录
     *
     * @param tenantId 机构ID
     * @return 出入库记录列表
     */
    List<MedicineInOutRecordsDO> getRecordsByTenantId(Long tenantId);

    /**
     * 删除出入库记录
     *
     * @param id 记录ID
     */
    void deleteRecord(Long id);

    /**
     * 批量删除出入库记录
     *
     * @param ids 记录ID数组
     */
    void deleteRecords(Long[] ids);
}




















































