package jnpf.bizcommon.audit.entity.model; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; import java.util.List; /** * 审计操作列表行(spec §7.1):主行是 BUSINESS 物理事件,subEvents 是同 operationId * 下的签名物理事件。查询层只建立关联,不合并 fieldDiffs/extra/dataSnapshot 正文。 */ @Data public class AuditEventListVO { private Long id; @Schema(description = "操作关联键;无跨层关联时为 null(单事件分组)") private String operationId; private String clientEventId; private Date eventTime; private String tenantId; private String operatorId; private String operatorName; private String operatorOrgId; private String appName; private String bizModule; private String ip; private String ipRegion; private String browser; private String os; private String requestUri; private String eventType; @Schema(description = "电子签名角色:PRIMARY 主签名、REVIEW 复审签名;非签名事件为空") private String signatureRole; private String actionCode; private String actionLabel; private Integer sourceLayer; private String targetTable; private String targetId; private String bizType; private String bizCode; @Schema(description = "field_diffs 变更字段数摘要,正文见详情接口") private Integer diffCount; private String reason; @Schema(description = "操作记录标题(主表行);子表行见 subTitles") private String recordTitle; private String entryType; private String entryId; @Schema(description = "操作入口名称,entry_type=MENU 时为菜单名") private String entryName; private Date createdAt; @Schema(description = "本次操作是否含电子签名(含子事件);列表据此显示签名标记") private Boolean signed; @Schema(description = "子表标题行,最多 3 条;全量在详情的 extra.recordSubTitles") private List subTitles; @Schema(description = "子表标题总行数") private Integer subTitleCount; @Schema(description = "同一操作下的关联签名物理事件,用于详情逐条切换;不参与业务差异合并") private List subEvents; }