package com.xisc.pm.infra.mapper;

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 io.choerodon.mybatis.common.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 合同跟踪主表(CtMain)应用服务
 *
 * @author 蒋雨航 yuhang.jiang02@hand-china.com
 * @since 2024-08-14 15:46:42
 */
public interface CtMainMapper extends BaseMapper<CtMainVO1> {
    /**
     * 基础查询
     *
     * @param ctMain 查询条件
     * @return 返回值
     */
    List<CtMainVO1> selectList(CtMainVO1 ctMain);

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

    /**
     * 查询合同跟踪服务获取合同信息
     *
     * @param request
     * @return
     */
    List<String> selectByCtMain(@Param("request") PmProContPoolRequestDTO request
            , @Param("orderStatus") String orderStatus
            , @Param("orderStatusFrom") String orderStatusFrom
            , @Param("orderStatusTo") String orderStatusTo
    );

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

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

