package cn.iocoder.yudao.module.mes.controller.admin.energy.vo; import jakarta.validation.constraints.AssertTrue; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; @Data public class EnergyAnalysisReqVO { @NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private LocalDate startDate; @NotNull @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) private LocalDate endDate; @Pattern(regexp = "WATER|ELECTRICITY|STEAM") private String energyType; private String usageArea; private String productCategory; @NotNull @Pattern(regexp = "DAY|MONTH") private String groupBy = "DAY"; @AssertTrue(message = "统计日期范围必须在两年以内,且开始日期不能晚于结束日期") public boolean isDateRangeValid() { return startDate == null || endDate == null || (!startDate.isAfter(endDate) && !endDate.isAfter(startDate.plusYears(2))); } }