package com.shzg.project.worn.service;

import java.util.List;
import com.shzg.project.worn.domain.WornInboundBill;
import com.shzg.project.worn.domain.dto.WornInboundPartialFinishDTO;

import javax.servlet.http.HttpServletRequest;

/**
 * 入库库存Service接口
 * 
 * @author shzg
 * @date 2026-03-26
 */
public interface IWornInboundBillService 
{
    /**
     * 查询入库库存
     * 
     * @param id 入库库存主键
     * @return 入库库存
     */
    public WornInboundBill selectWornInboundBillById(Long id);

    /**
     * 查询入库库存列表
     * 
     * @param wornInboundBill 入库库存
     * @return 入库库存集合
     */
    public List<WornInboundBill> selectWornInboundBillList(WornInboundBill wornInboundBill);

    /**
     * 新增入库库存
     * 
     * @param wornInboundBill 入库库存
     * @return 结果
     */
    public int insertWornInboundBill(WornInboundBill wornInboundBill);

    /**
     * 修改入库库存
     * 
     * @param wornInboundBill 入库库存
     * @return 结果
     */
    public int updateWornInboundBill(WornInboundBill wornInboundBill);

    /**
     * 批量删除入库库存
     * 
     * @param ids 需要删除的入库库存主键集合
     * @return 结果
     */
    public int deleteWornInboundBillByIds(Long[] ids);

    /**
     * 删除入库库存信息
     * 
     * @param id 入库库存主键
     * @return 结果
     */
    public int deleteWornInboundBillById(Long id);
    /**
     * 提交入库库存信息
     *
     * @param dto 入库单号
     * @return 结果
     */
    public int inboundFinish(WornInboundPartialFinishDTO dto);

    /**
     * 作废入库库存信息
     *
     * @param billNo 入库单号
     * @return 结果
     */
    int voidBill(String billNo);

    /**
     * 生成入库单PDF
     */
    byte[] generatePdf(Long id) throws Exception;
}
