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.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); }
|
}
|
}
|