# SalesImportReportDTO.java

    package cloud.wconnect.workperformance.pojo.dto.mor.sales;

    import cloud.wconnect.commonlib.pojo.dto.group.Addition;
    import cloud.wconnect.commonlib.pojo.dto.group.Edition;
    import lombok.Data;
    import org.hibernate.validator.constraints.Range;
    import org.springframework.web.multipart.MultipartFile;

    import jakarta.validation.constraints.NotNull;
    import java.util.List;

    /**
     * DTO: Sales sources Import Report
     *
     * @author zc
     * @date 2024/06/01
     */
    @Data
    public class SalesImportReportDTO {

        /**
         * 资产 ID 集合
         */
        private List<Integer> propertyIds;

        /**
         * 数据开始日期(yyyyMMdd)
         */
        @NotNull(message = "The fromDate cannot be null", groups = {Addition.class})
        private Long startDate;

        /**
         * 数据结束日期(yyyyMMdd)
         */
        @NotNull(message = "The toDate cannot be null", groups = {Addition.class})
        private Long endDate;

        /**
         * 来源
         */
        @NotNull(message = "The source cannot be null", groups = {Addition.class})
        @Range(min = 1, max = 2, message = "The source must be in [1:M3, 2:Other]", groups = {Addition.class, Edition.class})
        private Integer source;

        /**
         * 报告分类
         */
        @NotNull(message = "The reportType cannot be null", groups = {Addition.class})
        @Range(min = 4, max = 4, message = "The type must be in [4:Operating statistics daily].", groups = {Addition.class})
        private Integer reportType;

        /**
         * 报告文件
         */
        @NotNull(message = "The file cannot be null", groups = {Addition.class})
        private MultipartFile file;

        public static final int SOURCE_M3 = 1;
        public static final int SOURCE_OTHER = 2;

        public static final int REPORT_TYPE_OPERATING = 4;

    }