# IImportRevenueReport.java

    package cloud.wconnect.rateshop.service.revenue.report;

    import cloud.wconnect.commonlib.pojo.dto.PropertyDTO;
    import cloud.wconnect.rateshop.entity.revenue.RevenueImportLog;
    import cloud.wconnect.rateshop.pojo.dto.revenue.HandleImportReportDTO;
    import cloud.wconnect.rateshop.pojo.dto.revenue.ResolveExceptionDTO;
    import org.springframework.lang.Nullable;
    import org.springframework.web.multipart.MultipartFile;

    /**
     * @author: yyt
     * 2024-08-14
     */
    public interface IImportRevenueReport {

        /**
         * 判断支持的平台
         *
         * @param handleImportReportDTO 平台
         * @return boolean
         * @author yyt
         * @date 2024/8/14
         */
        boolean supports(HandleImportReportDTO handleImportReportDTO);

        /**
         * 检查文件
         *
         * @param propertyDTO 资产
         * @param file        文件
         * @author yyt
         * @date 2024/8/14
         **/
        void checkFile(PropertyDTO propertyDTO, MultipartFile file);

        /**
         * 处理导入记录
         *
         * @param propertyDTO         资产
         * @param importLog           导入记录
         * @param resolveExceptionDTO 选择条件
         * @param file                文件
         * @param userId              操作人
         * @return 导入记录
         * @author yyt
         * @date 2024/8/14
         **/
        RevenueImportLog handleImportLog(PropertyDTO propertyDTO, @Nullable RevenueImportLog importLog,
                                         ResolveExceptionDTO resolveExceptionDTO, MultipartFile file, int userId);

        /**
         * 处理文件
         *
         * @param propertyDTO 资产信息
         * @param file        文件
         * @param importLog   导入记录
         * @param userId      操作人
         * @author yyt
         * @date 2024/8/14
         **/
        void handleFile(PropertyDTO propertyDTO, MultipartFile file, RevenueImportLog importLog, Integer userId);

        /**
         * 校验日期
         *
         * @param propertyDTO         资产DTO
         * @param resolveExceptionDTO 导入报告DTO
         * @author lichen
         * @date 2025/11/19
         */
        default void checkDate(PropertyDTO propertyDTO, ResolveExceptionDTO resolveExceptionDTO) {

        }

    }