@@ -0,0 +1,96 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* 分班学生:导入名单的数据行。学号/账号为标识文本列(仅展示/导出,不参与均衡),
|
||||
* 不存联系方式,也不与平台账号做关联。
|
||||
* <p>单科成绩、是否型/数值型自定义字段为动态结构,以 JSON 文本列存储;
|
||||
* 分班结果写回 classId(与 level A/B 层)。</p>
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
Reference in New Issue
Block a user