using Furion.DatabaseAccessor; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace YBEE.EQM.Core; /// /// 监测特殊学生上报信息 /// [Comment("监测特殊学生上报信息")] public class ExamSpecialStudent : DEntityBase, IEntityTypeBuilder { /// /// 监测计划ID /// [Comment("监测计划ID")] [Required] public int ExamPlanId { get; set; } /// /// 机构ID /// [Comment("机构ID")] [Required] public short SysOrgId { get; set; } /// /// 校区ID /// [Comment("校区ID")] public short? SysOrgBranchId { get; set; } /// /// 监测年级ID /// [Comment("监测年级ID")] [Required] public int ExamGradeId { get; set; } /// /// 年级ID /// [Comment("年级ID")] [Required] public short GradeId { get; set; } /// /// 班级ID /// [Comment("班级ID")] [Required] public long SchoolClassId { get; set; } /// /// 班号 /// [Comment("班号")] [Required] public short ClassNumber { get; set; } /// /// 学籍号 /// [Comment("学籍号")] [StringLength(100)] public string StudentNumber { get; set; } = ""; /// /// 姓名 /// [Comment("姓名")] [Required, StringLength(100)] public string Name { get; set; } /// /// 证件类型 /// [Comment("证件类型")] [Required, Column(TypeName = "smallint")] public CertificateType CertificateType { get; set; } = CertificateType.NONE; /// /// 证件号码 /// [Comment("证件号码")] [StringLength(50)] public string IdNumber { get; set; } = ""; /// /// 出生日期 /// [Comment("出生日期")] public DateTime? BirthDate { get; set; } /// /// 性别 /// [Comment("性别")] [Required, Column(TypeName = "smallint")] public Gender Gender { get; set; } = Gender.UNKNOWN; /// /// 申请原因 /// [Comment("申请原因")] [Required, StringLength(2000)] public string ApplyReason { get; set; } /// /// 家长姓名 /// [Comment("家长姓名")] [StringLength(100)] public string PatriarchName { get; set; } /// /// 家长电话 /// [Comment("家长电话")] [StringLength(50)] public string PatriarchTel { get; set; } /// /// 备注 /// [Comment("备注")] [StringLength(200)] public string Remark { get; set; } /// /// 往期是否已认定 /// [Comment("往期是否已认定")] [Required] public bool IsPreIdentified { get; set; } = false; /// /// 状态 /// [Comment("状态")] [Required] public AuditStatus Status { get; set; } = AuditStatus.AUDIT; /// /// 佐证材料 /// [{ fileId: '123', fileName: '医院证明文件.png', fileExtName: '.png', thumbFileId: '234' }] /// [Comment("佐证材料")] [Column(TypeName = "json")] public string Attachments { get; set; } = "[]"; /// /// 审核记录 /// [{ id: 1, createTime: '2023-12-25 12:56:23', sysUserId: 5, sysUserName: '张三', sysOrgId: 5, sysOrgName: '基教科', status: 3, remark: '', actionType: 3}] /// [Comment("审核记录")] [Required, Column(TypeName = "json")] public string Audits { get; set; } = "[]"; /// /// 一对一引用(机构) /// public virtual SysOrg SysOrg { get; set; } /// /// 一对一引用(年级) /// public virtual Grade Grade { get; set; } /// /// 一对一引用(班级) /// public virtual SchoolClass SchoolClass { get; set; } /// /// 一对一引用(校区) /// public virtual SysOrg SysOrgBranch { get; set; } /// /// 一对一引用(监测年级) /// public virtual ExamGrade ExamGrade { get; set; } public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder.HasIndex(a => new { a.ExamPlanId, a.SysOrgId }).HasDatabaseName("idx_exam_special_student_exam_plan_id_sys_org_id"); entityBuilder.HasIndex(a => new { a.ExamPlanId, a.SysOrgId, a.SchoolClassId }).HasDatabaseName("idx_exam_special_student_exam_plan_id_soid_scid"); } }