package com.hotwj.platform.reportStatistics.service;

import java.util.List;

public interface IVehicleFilePrintService {
    byte[] generateBaseInfoPdf(List<Long> vehicleIds) throws Exception;

    byte[] generateLicensePdf(List<Long> vehicleIds) throws Exception;

    /**
     * 生成车辆年审报告PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateInspectionReportPdf(List<Long> vehicleIds, String inspectionStartDate, String inspectionEndDate, Integer printEmptyData) throws Exception;

    /**
     * 生成车辆二级维护记录PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateMaintenanceRecordPdf(List<Long> vehicleIds, String maintenanceStartDate, String maintenanceEndDate, Integer printEmptyData) throws Exception;

    /**
     * 生成车辆维修与维护记录PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateRepairRecordPdf(List<Long> vehicleIds, String beginTime, String endTime, Integer printEmptyData) throws Exception;

    /**
     * 生成交通事故记录PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateTrafficAccidentRecordPdf(List<Long> vehicleIds, String beginTime, String endTime, Integer printEmptyData) throws Exception;

    /**
     * 生成车辆出险记录PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateClaimRecordPdf(List<Long> vehicleIds, String beginTime, String endTime, Integer printEmptyData) throws Exception;

    /**
     * 生成车辆行驶里程记录PDF
     *
     * @param vehicleIds 车辆ID列表
     * @return PDF字节数组
     */
    byte[] generateMileageRecordPdf(List<Long> vehicleIds, String beginTime, String endTime, Integer printEmptyData) throws Exception;

    String TYPE_BASE_INFO = "BASE_INFO";
    String TYPE_LICENSE = "LICENSE";
    String TYPE_INSPECTION_REPORT = "INSPECTION_REPORT";
    String TYPE_MAINTENANCE_RECORD = "MAINTENANCE_RECORD";
    String TYPE_CLAIM_RECORD = "CLAIM_RECORD";
    String TYPE_MILEAGE_RECORD = "MILEAGE_RECORD";
    String TYPE_REPAIR_RECORD = "REPAIR_RECORD";
    String TYPE_VEHICLE_ACCIDENT_RECORD = "VEHICLE_ACCIDENT_RECORD";

    /**
     * 一键打印
     *
     * @param vehicleIds 车辆ID列表
     * @param types      打印类型列表
     * @return PDF字节数组
     */
    byte[] generateOneClickPrintPdf(List<Long> vehicleIds, List<String> types, Integer printEmptyData) throws Exception;
}
