package com.fs.hospital.service;

import java.util.List;

import com.fs.common.core.domain.R;
import com.fs.hospital.domain.HospitalProductOutOrder;
import com.fs.hospital.param.HospitalProductOutOrderAddParam;
import com.fs.hospital.vo.HospitalProductOutOrderHVO;
import com.fs.hospital.vo.HospitalProductOutOrderListHVO;

/**
 * 领用单Service接口
 *
 * @author fs
 * @date 2024-03-14
 */
public interface IHospitalProductOutOrderService
{
    /**
     * 查询领用单
     *
     * @param orderId 领用单主键
     * @return 领用单
     */
    public HospitalProductOutOrder selectHospitalProductOutOrderByOrderId(Long orderId);

    /**
     * 查询领用单列表
     *
     * @param hospitalProductOutOrder 领用单
     * @return 领用单集合
     */
    public List<HospitalProductOutOrder> selectHospitalProductOutOrderList(HospitalProductOutOrder hospitalProductOutOrder);

    /**
     * 新增领用单
     *
     * @param hospitalProductOutOrder 领用单
     * @return 结果
     */
    public R insertHospitalProductOutOrder(HospitalProductOutOrderAddParam hospitalProductOutOrder);

    /**
     * 修改领用单
     *
     * @param hospitalProductOutOrder 领用单
     * @return 结果
     */
    public int updateHospitalProductOutOrder(HospitalProductOutOrder hospitalProductOutOrder);

    /**
     * 批量删除领用单
     *
     * @param orderIds 需要删除的领用单主键集合
     * @return 结果
     */
    public int deleteHospitalProductOutOrderByOrderIds(Long[] orderIds);

    /**
     * 删除领用单信息
     *
     * @param orderId 领用单主键
     * @return 结果
     */
    public int deleteHospitalProductOutOrderByOrderId(Long orderId);

    List<HospitalProductOutOrderListHVO> selectHospitalProductOutOrderListPVO(HospitalProductOutOrder hospitalProductOutOrder);

    HospitalProductOutOrderHVO selectHospitalProductOutOrderByOrderIdHVO(Long orderId);

    R insertReturnHospitalProductOutOrder(HospitalProductOutOrderAddParam param);

    List<HospitalProductOutOrderListHVO> selectHospitalProductOutOrderOutListPVO(HospitalProductOutOrder hospitalProductOutOrder);
}
