package com.xisc.pm.domain.repository;

import com.xisc.pm.api.dto.PmProContFilterRequestDTO;
import com.xisc.pm.api.dto.PmProContPoolRequestDTO;
import com.xisc.pm.domain.vo.CtMainVO1;
import com.xisc.pm.domain.vo.QeTjWitnessProOrderVO;
import org.hzero.mybatis.base.BaseRepository;

import java.util.List;

/**
 * 合同跟踪主表(CtMain)资源库
 *
 * @author 蒋雨航 yuhang.jiang02@hand-china.com
 * @since 2024-08-14 15:46:42
 */
public interface PmCtMainRepository extends BaseRepository<CtMainVO1> {
    /**
     * 查询
     *
     * @param ctMain 查询条件
     * @return 返回值
     */
    List<CtMainVO1> selectList(CtMainVO1 ctMain);

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

    /**
     * 合同跟踪模块“合同跟踪合同查询”接口
     * 根据查询条件查询状态为40-67之间的合同编码
     *
     * @param request
     * @return
     */
    List<String> selectCanPdByCtMain(PmProContFilterRequestDTO pmProContFilterRequest);

    /**
     * 合同跟踪模块“合同跟踪合同查询”接口
     * 根据查询条件查询状态为38的合同编码
     *
     * @param request
     * @return
     */
    List<String> selectPdReleRaseByCtMain(PmProContPoolRequestDTO request);

    /**
     * 通过合同编码查询合同跟踪主表信息
     *
     * @param orderNoList
     * @param tenantId
     * @return
     */
    List<com.xisc.pm.domain.vo.CtMainVO> selectCtMainByOrderList(List<String> orderNoList, Long tenantId);

    /**
     * 查询待组板的合同列表
     *
     * @param pmProContFilterRequest
     * @return
     */
    List<com.xisc.pm.domain.vo.CtMainVO> selectCanPdByOrderStatus(PmProContFilterRequestDTO pmProContFilterRequest);

    /**
     * 查询合同的见证项目号
     *
     * @param allOrderNoList 合同号
     * @param tenantId       租户
     */
    List<QeTjWitnessProOrderVO>  queryQdWitnessProNo(List<String> allOrderNoList, Long tenantId);
}
