package com.battery.business.service.report; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.ruoyi.common.exception.ServiceException; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import java.util.List; /** 模板写入只接收名称与有序结构,不接收整份报表。 */ public record CompareFieldTemplateRequest(@NotBlank @Size(max = 100) String name, @NotNull @Size(min = 1, max = 100) List<@NotNull @Valid CompareField> fields) { /** 顶层也拒绝来源选择、人工值等非结构属性。 */ @JsonAnySetter public void rejectUnknown(String field, Object value) { throw new ServiceException("字段模板不允许提交属性:" + field); } }