package com.battery.business.report;
|
|
import java.util.List;
|
import java.util.Map;
|
import jakarta.validation.Valid;
|
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.Positive;
|
import jakarta.validation.constraints.Size;
|
|
/** 首次保存仅接收来源身份和报表展示内容,不接收测量快照。 */
|
public record CompareReportRequest(
|
@NotBlank @Size(max = 100) String name,
|
@Size(max = 2000) String description,
|
@Size(max = 500) String experimentName,
|
@NotNull @Size(min = 2) List<@NotNull @Valid Selection> selections,
|
@NotNull @Valid Settings settings)
|
{
|
public record Selection(@NotNull @Positive Long testId, @NotNull @Positive Long testBatteryId,
|
@NotNull @Positive Integer cycleNo, @Positive Integer stepNo, @Positive Integer logicalNo) { }
|
|
public record Settings(@NotNull List<String> metrics, @NotNull List<String> seriesColors,
|
@NotNull List<String> batteryTemplateFields, @NotNull List<String> specialFields,
|
@NotNull Map<String, @NotNull Map<String, String>> detailFieldValues,
|
List<@NotNull @Valid CompareField> fieldStructure,
|
List<@NotNull String> hiddenSeriesKeys)
|
{
|
/** 展示设置不能夹带测量快照或其他未支持的修改。 */
|
@com.fasterxml.jackson.annotation.JsonAnySetter
|
public void rejectUnknown(String field, Object value)
|
{ throw new com.ruoyi.common.exception.ServiceException("报表设置不允许提交字段:" + field); }
|
}
|
}
|