package com.ruoyi.ccdi.project.service;

import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO;
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectIncreaseLendingQueryDTO;
import com.ruoyi.ccdi.project.domain.excel.CcdiProjectIncreaseLendingExcel;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListVO;
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectIncreaseLendingListVO;
import java.util.List;

/**
 * 项目专项核查服务接口
 */
public interface ICcdiProjectSpecialCheckService {

    /**
     * 查询员工家庭资产负债列表
     *
     * @param queryDTO 查询条件
     * @return 列表结果
     */
    CcdiProjectFamilyAssetLiabilityListVO getFamilyAssetLiabilityList(
        CcdiProjectFamilyAssetLiabilityListQueryDTO queryDTO
    );

    /**
     * 查询员工家庭资产负债详情
     *
     * @param queryDTO 查询条件
     * @return 详情结果
     */
    CcdiProjectFamilyAssetLiabilityDetailVO getFamilyAssetLiabilityDetail(
        CcdiProjectFamilyAssetLiabilityDetailQueryDTO queryDTO
    );

    /**
     * 查询采购拓展列表
     *
     * @param queryDTO 查询条件
     * @return 列表结果
     */
    CcdiProjectExtendedPurchaseListVO getExtendedPurchaseList(CcdiProjectExtendedPurchaseQueryDTO queryDTO);

    /**
     * 查询采购拓展详情
     *
     * @param queryDTO 查询条件
     * @return 详情结果
     */
    CcdiProjectExtendedPurchaseDetailVO getExtendedPurchaseDetail(CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO);

    /**
     * 查询招聘拓展列表
     *
     * @param queryDTO 查询条件
     * @return 列表结果
     */
    CcdiProjectExtendedRecruitmentListVO getExtendedRecruitmentList(CcdiProjectExtendedRecruitmentQueryDTO queryDTO);

    /**
     * 查询招聘拓展详情
     *
     * @param queryDTO 查询条件
     * @return 详情结果
     */
    CcdiProjectExtendedRecruitmentDetailVO getExtendedRecruitmentDetail(
        CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO
    );

    /**
     * 查询调动拓展列表
     *
     * @param queryDTO 查询条件
     * @return 列表结果
     */
    CcdiProjectExtendedTransferListVO getExtendedTransferList(CcdiProjectExtendedTransferQueryDTO queryDTO);

    /**
     * 查询调动拓展详情
     *
     * @param queryDTO 查询条件
     * @return 详情结果
     */
    CcdiProjectExtendedTransferDetailVO getExtendedTransferDetail(CcdiProjectExtendedTransferDetailQueryDTO queryDTO);

    /**
     * 查询项目新增贷款列表
     *
     * @param queryDTO 查询条件
     * @return 列表结果
     */
    CcdiProjectIncreaseLendingListVO getIncreaseLendingList(CcdiProjectIncreaseLendingQueryDTO queryDTO);

    /**
     * 导出项目新增贷款列表
     *
     * @param queryDTO 查询条件
     * @return 导出列表
     */
    List<CcdiProjectIncreaseLendingExcel> exportIncreaseLendingList(CcdiProjectIncreaseLendingQueryDTO queryDTO);
}
