yeg
2026-09-09 f38ca8a9f8454ac2eebdc268c89efd0e436b3cf2
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
32
33
package com.battery.business.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.Positive;
import jakarta.validation.constraints.Size;
 
/** 普通编辑只允许展示内容,不能提交来源身份或测量快照。 */
public record CompareReportEditRequest(
        @Positive int baseVersionNo,
        @NotBlank @Size(max = 100) String name,
        @Size(max = 2000) String description,
        @Size(max = 500) String experimentName,
        @NotNull @Valid CompareReportRequest.Settings settings,
        @NotBlank @Size(max = 500) String changeSummary)
{
    /** 拒绝越过编辑边界的字段,避免将篡改测量请求报告为保存成功。 */
    @JsonAnySetter
    public void rejectUnknown(String field, Object value)
    { throw new ServiceException("报表编辑不允许提交字段:" + field); }
 
    /** 主动更新只携带基准和原因,来源范围由后端确定;原因长度为系统追加的摘要前缀预留空间。 */
    public record Refresh(@Positive int baseVersionNo, @NotBlank @Size(max = 480) String changeSummary)
    {
        /** 来源和测量不得由调用方替换。 */
        @JsonAnySetter
        public void rejectUnknown(String field, Object value)
        { throw new ServiceException("更新来源不允许提交字段:" + field); }
    }
}