package com.xisc.pm.domain.repository;

import com.xisc.pm.api.dto.PmCompositeSlaParamDTO;
import com.xisc.pm.api.dto.PmCompositeSlabPdDTO;
import com.xisc.pm.api.dto.PmCompositeSlabReqDTO;
import com.xisc.pm.domain.entity.PmCompositeSlab;
import com.xisc.pm.domain.vo.CtDetVO;
import org.hzero.mybatis.base.BaseRepository;

import java.util.List;

/**
 * 复合/叠轧坯基本信息表(PmCompositeSlab)资源库
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-08-01 15:46:26
 */
public interface PmCompositeSlabRepository extends BaseRepository<PmCompositeSlab> {
    /**
     * 查询
     *
     * @param pmCompositeSlab 查询条件
     * @return 返回值
     */
    List<PmCompositeSlab> selectList(PmCompositeSlab pmCompositeSlab);

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

    /**
     * 查询
     *
     * @param dto      查询参数
     * @param tenantId 租户
     * @return
     */
    List<PmCompositeSlab> selectSlabIds(PmCompositeSlabReqDTO dto, Long tenantId);

    /**
     * 查询待组板基材
     * @param dto
     * @return
     */
    List<PmCompositeSlabPdDTO> compositePdList(PmCompositeSlaParamDTO dto);

    /**
     * 根据坯号查询
     *
     * @param slabNoList
     * @param tenantId
     * @return
     */
    List<PmCompositeSlab> selectBySlabNoList(List<String> slabNoList, Long tenantId);

    /**
     * 根据合同号查询合同数据
     *
     * @param orderNoList
     * @param tenantId
     * @return
     */
    List<CtDetVO> selectCtDetByOrderList(List<String> orderNoList, Long tenantId);
}
