yeg
2026-09-06 37600a85b79387ab6afa7bf342eedbf938331e1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)
    {
        /** 展示设置不能夹带测量快照或其他未支持的修改。 */
        @com.fasterxml.jackson.annotation.JsonAnySetter
        public void rejectUnknown(String field, Object value)
        { throw new com.ruoyi.common.exception.ServiceException("报表设置不允许提交字段:" + field); }
    }
}