package com.yunhai.acaclassassign.entity; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Index; import javax.persistence.Table; import java.math.BigDecimal; /** * 分班学生:导入名单的数据行。学号/账号为标识文本列(仅展示/导出,不参与均衡), * 不存联系方式,也不与平台账号做关联。 *
单科成绩、是否型/数值型自定义字段为动态结构,以 JSON 文本列存储; * 分班结果写回 classId(与 level A/B 层)。
*/ @Getter @Setter @NoArgsConstructor @Entity @Table(name = "aca_assign_student", indexes = { @Index(name = "idx_as_project", columnList = "project_id"), @Index(name = "idx_as_project_class", columnList = "project_id,class_id"), @Index(name = "idx_as_name", columnList = "name")}) public class AssignStudent extends BaseEntity { /** 所属分班项目 */ @Column(name = "project_id", nullable = false) private Integer projectId; /** 姓名(必填;同名/同音约束、拼音排序依据) */ @Column(name = "name", nullable = false, length = 64) private String name; /** 性别:1男 2女 0未知 */ @Column(name = "gender", nullable = false, columnDefinition = "TINYINT DEFAULT 0") private Integer gender; /** 总分(小学版恒空) */ @Column(name = "total_score", precision = 6, scale = 2) private BigDecimal totalScore; /** 单科成绩 JSON:{"语文":95.5,"数学":88,...} */ @Column(name = "scores_json", columnDefinition = "TEXT") private String scoresJson; /** 是否型自定义字段 JSON:{"特长生":true,"住宿":false,...} */ @Column(name = "tags_json", columnDefinition = "TEXT") private String tagsJson; /** 数值型自定义字段 JSON:{"视力分":4.8,...} */ @Column(name = "nums_json", columnDefinition = "TEXT") private String numsJson; /** 学号(标识文本列,仅展示/导出,不参与均衡) */ @Column(name = "student_no", length = 64) private String studentNo; /** 账号(标识文本列,仅展示/导出,不参与均衡,不与平台账号关联) */ @Column(name = "account", length = 64) private String account; /** 密码(标识文本列,生成=账号+@;仅展示/导出/推送初始密码,不参与均衡) */ @Column(name = "password", length = 64) private String password; /** 毕业学校(仅展示/导出/生源分析,不参与均衡) */ @Column(name = "graduate_school", length = 128) private String graduateSchool; /** 备注 */ @Column(name = "remark", length = 255) private String remark; /** 预设班级原文(如 1 / 1班 / 同班:张三 / 不同班:李四) */ @Column(name = "preset_raw", length = 255) private String presetRaw; /** 预设解析结果 JSON:[{"type":"class|same|diff","value":"1","target":"张三"}] */ @Column(name = "preset_json", columnDefinition = "TEXT") private String presetJson; /** 分班结果:所在班级id(aca_assign_class.id) */ @Column(name = "class_id") private Integer classId; /** 分层结果:A/B(高中版用;其他学段空) */ @Column(name = "level", length = 4) private String level; /** 导入行号(告警定位) */ @Column(name = "src_row") private Integer srcRow; }