package com.shzg.project.unique.service;

import java.util.List;
import com.shzg.project.unique.domain.WornUniqueCode;
import com.shzg.project.worn.domain.dto.WornInboundItemDTO;

/**
 * 唯一码管理Service接口
 * 
 * @author shzg
 * @date 2026-03-17
 */
public interface IWornUniqueCodeService 
{
    /**
     * 查询唯一码管理
     * 
     * @param id 唯一码管理主键
     * @return 唯一码管理
     */
    public WornUniqueCode selectWornUniqueCodeById(Long id);

    /**
     * 查询唯一码管理列表
     * 
     * @param wornUniqueCode 唯一码管理
     * @return 唯一码管理集合
     */
    public List<WornUniqueCode> selectWornUniqueCodeList(WornUniqueCode wornUniqueCode);

    /**
     * 新增唯一码管理
     * 
     * @param wornUniqueCode 唯一码管理
     * @return 结果
     */
    public int insertWornUniqueCode(WornUniqueCode wornUniqueCode);

    /**
     * 修改唯一码管理
     * 
     * @param wornUniqueCode 唯一码管理
     * @return 结果
     */
    public int updateWornUniqueCode(WornUniqueCode wornUniqueCode);

    /**
     * 批量删除唯一码管理
     * 
     * @param ids 需要删除的唯一码管理主键集合
     * @return 结果
     */
    public int deleteWornUniqueCodeByIds(Long[] ids);
    /**
     * 根据唯一码编号查询物料信息
     *
     * @param code 唯一码编号
     * @return 物料信息列表
     */
    List<WornInboundItemDTO> selectMaterialInfoByCode(Integer code);
    /**
     * 根据唯一码编号查询物料信息（出库）
     *
     * @param code 唯一码编号
     * @return 物料信息列表
     */
    List<WornInboundItemDTO> selectMaterialInfoForOutbound(Integer code, List<Integer> existList);

}
