using IRaCIS.Core.Domain.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IRaCIS.Core.Domain.Models { [Comment("稽查文档管理")] [Table("AuditDocument")] public class AuditDocument : BaseFullAuditEntity { // 0=自己, 1=直接子节点, 2=孙节点... [JsonIgnore] public List AncestorList { get; set; } = new List(); [JsonIgnore] public List DescendantList { get; set; } = new List(); [JsonIgnore] public List AuditDocumentOldVersionList { get; set; } [JsonIgnore] [ForeignKey(nameof(MainFileId))] public AuditDocument MainAuditDocument { get; set; } /// /// 文件夹名或者文件名 /// public string Name { get; set; } /// /// 文档类型 /// public AuditDocumentType AuditDocumentTypeEnum { get; set; } /// /// 父文件夹Id /// public Guid? ParentId { get; set; } /// /// 文件路径 /// [StringLength(1000)] public string FilePath { get; set; } = string.Empty; /// /// 文件大小 /// public decimal? FileSize { get; set; } /// /// 文件类型 /// public string FileFormat { get; set; } = string.Empty; /// /// 版本 /// public int? Version { get; set; } /// /// 主文件Id /// public Guid? MainFileId { get; set; } /// /// 是否授权 /// public bool IsAuthorization { get; set; } = false; } /// /// 稽查文档类型 /// public enum AuditDocumentType { /// /// 文件夹 /// Folder = 0, /// /// 文件 /// File = 1, /// /// 历史版本 /// HistoricalVersion = 2, } /// /// 稽查文档闭包表 /// public class AuditDocumentClosure : Entity { [JsonIgnore] public AuditDocument Ancestor { get; set; } [JsonIgnore] public AuditDocument Descendant { get; set; } /// /// 父Id /// [Comment("祖先")] public Guid AncestorId { get; set; } /// /// 子Id /// [Comment("后代")] public Guid DescendantId { get; set; } public int Depth { get; set; } // 0=自己, 1=直接子节点, 2=孙节点... } public class AuditRecord : BaseFullAuditEntity { [JsonIgnore] public List AuditRecordIdentityUserList { get; set; } public string CompanyName { get; set; } public string AuditContent { get; set; } [Comment("稽查日期")] public DateOnly AuditTime { get; set; } public DateTime? BeginTime { get; set; } public DateTime? EndTime { get; set; } [Comment("稽查状态")] public AuditState AuditState { get; set; } [Comment("稽查形式")] public AuditType AuditType { get; set; } } public class AuditRecordIdentityUser : BaseAddAuditEntity { [JsonIgnore] public IdentityUser IdentityUser { get; set; } [JsonIgnore] public AuditRecord AuditRecord { get; set; } public Guid IdentityUserId { get; set; } public Guid AuditRecordId { get; set; } } public class AuditRecordPermission : BaseAddAuditEntity { [JsonIgnore] public AuditRecord AuditRecord { get; set; } [JsonIgnore] public AuditDocument AuditDocument { get; set; } public Guid AuditRecordId { get; set; } public Guid AuditDocumentId { get; set; } } public enum AuditState { NotStart = 0, Ongoing = 1, End = 2 } public enum AuditType { None = 0, Online = 1, OnSite = 2 } }