package com.xisc.pm.domain.repository;

import com.xisc.pm.api.dto.PmPdCcSlabStoveParamDTO;
import com.xisc.pm.api.dto.PmPdCcSlabStoveResDTO;
import com.xisc.pm.domain.entity.PmPdCcSlab;
import org.hzero.mybatis.base.BaseRepository;

import java.util.List;

/**
 * 组板连铸板坯表(PmPdCcSlab)资源库
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-07-31 16:36:58
 */
public interface PmPdCcSlabRepository extends BaseRepository<PmPdCcSlab> {
    /**
     * 查询
     *
     * @param pmPdCcSlab 查询条件
     * @return 返回值
     */
    List<PmPdCcSlab> selectList(PmPdCcSlab pmPdCcSlab);

    /**
     * 根据主键查询（可关联表）
     *
     * @param virtualSlabId 主键
     * @return 返回值
     */
    PmPdCcSlab selectByPrimary(Long virtualSlabId);

    /**
     * 查询组炉信息
     * @param dto 查询参数
     * @param tenantId 租户
     * @param outSgNoList 内部钢种集合
     * @return
     */
    List<PmPdCcSlabStoveResDTO> selectStoveList(PmPdCcSlabStoveParamDTO dto, Long tenantId, List<String> outSgNoList);

    /**
     * 基于虚拟板坯号查询连铸板坯
     * @param tenantId
     * @param virtualSlabNo
     * @return
     */
    PmPdCcSlab selectByPdMatNo(Long tenantId, String virtualSlabNo);

    /**
     * 根据虚拟板坯号查询连铸板坯表
     *
     * @param virtualSlabNoList
     * @param tenantId
     * @return
     */
    List<PmPdCcSlab> selectByVirtualSlabList(List<String> virtualSlabNoList, Long tenantId);

    /**
     * 根据临时命令板坯号查询
     *
     * @param tmpSlabNoList
     * @param tenantId
     * @return
     */
    List<PmPdCcSlab> selectByTmpSlabNoList(List<String> tmpSlabNoList, Long tenantId);
}
