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 ExamAbsentReplace : 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("缺测学生姓名")] [Required, StringLength(100)] public string AbsentName { get; set; } /// /// 缺测学生监测号 /// [Comment("缺测学生监测号")] [Required, StringLength(20)] public string AbsentExamNumber { get; set; } /// /// 缺测科目 /// [{"id": 1, "name": "语文", "shortName": "语"}] /// [Comment("缺测科目")] [Required, Column(TypeName = "json")] public string AbsentCourses { get; set; } = "[]"; /// /// 缺测原因 /// [Comment("缺测原因")] [Required, StringLength(200)] public string AbsentReason { get; set; } /// /// 是否有替补 /// [Comment("是否有替补")] [Required] public bool IsReplaced { get; set; } = false; /// /// 替补学生姓名 /// [Comment("替补学生姓名")] [StringLength(100)] public string ReplaceName { get; set; } /// /// 替补学生监测号 /// [Comment("替补学生监测号")] [StringLength(20)] public string ReplaceExamNumber { get; set; } /// /// 家长姓名 /// [StringLength(100)] public string PatriarchName { get; set; } /// /// 家长电话 /// [StringLength(50)] public string PatriarchTel { get; set; } /// /// 备注 /// [Comment("备注")] [StringLength(200)] public string Remark { get; set; } /// /// 状态 /// [Comment("状态")] [Required, Column(TypeName = "smallint")] public AuditStatus Status { get; set; } = AuditStatus.AUDIT; /// /// 佐证材料 /// [Comment("佐证材料")] [Column(TypeName = "json")] public string Attachments { get; set; } = "[]"; /// /// 审核记录 /// [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_absent_replace_exam_plan_id_sys_org_id"); entityBuilder.HasIndex(a => new { a.ExamPlanId, a.SysOrgId, a.SchoolClassId }).HasDatabaseName("idx_exam_absent_replacet_exam_plan_id_soid_scid"); } }