package com.xingxi.business.ProdInventory.service;

import com.xingxi.business.ProdInventory.domain.ProdInventoryOrder;

import java.util.List;

/**
 * 商品出入库单Service接口
 *
 * @author xingxi
 * @date 2025-03-06
 */
public interface IProdInventoryOrderService {
    /**
     * 查询商品出入库单
     *
     * @param inventoryOrderId 商品出入库单主键
     * @return 商品出入库单
     */
    ProdInventoryOrder selectProdInventoryOrderByInventoryOrderId(Long inventoryOrderId);

    /**
     * 查询商品出入库单列表
     *
     * @param prodInventoryOrder 商品出入库单
     * @return 商品出入库单集合
     */
    List<ProdInventoryOrder> selectProdInventoryOrderList(ProdInventoryOrder prodInventoryOrder);

    /**
     * 新增商品出入库单
     *
     * @param prodInventoryOrder 商品出入库单
     * @return 结果
     */
    int insertProdInventoryOrder(ProdInventoryOrder prodInventoryOrder);

    /**
     * 新增商品出入库单
     *
     * @param prodInventoryOrderList 商品出入库单
     * @return 结果
     */
    int batchInsertProdInventoryOrder(List<ProdInventoryOrder> prodInventoryOrderList);

    /**
     * 修改商品出入库单
     *
     * @param prodInventoryOrder 商品出入库单
     * @return 结果
     */
    int updateProdInventoryOrder(ProdInventoryOrder prodInventoryOrder);

    /**
     * 批量删除商品出入库单
     *
     * @param inventoryOrderIds 需要删除的商品出入库单主键集合
     * @return 结果
     */
    int deleteProdInventoryOrderByInventoryOrderIds(String inventoryOrderIds);

    /**
     * 删除商品出入库单信息
     *
     * @param inventoryOrderId 商品出入库单主键
     * @return 结果
     */
    int deleteProdInventoryOrderByInventoryOrderId(Long inventoryOrderId);

    /**
     * 逻辑删除商品出入库单
     *
     * @param inventoryOrderId 商品出入库单主键
     * @return 结果
     */
    int logicDeleteProdInventoryOrderByInventoryOrderId(Long inventoryOrderId);

    /**
     * 逻辑批量删除商品出入库单
     *
     * @param inventoryOrderIds 需要删除的数据主键集合
     * @return 结果
     */
    int logicDeleteProdInventoryOrderByInventoryOrderIds(String[] inventoryOrderIds);

    /**
     * 逻辑批量删除商品出入库单
     *
     * @param prodInventoryOrder 商品出入库单
     * @return 结果
     */
    int logicDeleteProdInventoryOrderByCondition(ProdInventoryOrder prodInventoryOrder);
}
