using FreeSql.DataAnnotations; using F9WebAiTest.Domain.Enums.SYS.Departments; using F9WebAiTest.Domain.Enums.SYS.WuziMulus; using F9WebAiTest.Domain.Events.SYS.WuziMulus; namespace F9WebAiTest.Domain.Entities.SYS.WuziMulus; /// /// 物资分组:物资目录的分类树(如 01 干茧、04 副产品、0401 副产品-副产车间…),编号按父级编号 + 2 位序号自动生成。 /// [Table(Name = "sys_wuzi_group")] public class WuziGroup : AggregateRoot { /// 业务类型(原料/中间品/生丝/副产品/五金) [Column(Name = "businesstype")] public WuziBusiness_Type_Enum BusinessType { get; private set; } /// 归属部门职责类型 [Column(Name = "departmenttype")] public Department_DutyType_Enum DepartmentType { get; private set; } /// 编号(如 01、0101) [Column(Name = "code")] public string Code { get; private set; } /// 名称 [Column(Name = "name")] public string Name { get; private set; } /// 父级 Id(0 = 一级分类) [Column(Name = "parentid")] public long ParentId { get; private set; } /// 顺序号 [Column(Name = "sortorder")] public int SortOrder { get; private set; } /// 描述 [Column(Name = "description")] public string Description { get; private set; } public WuziGroup() { } public WuziGroup(long id, WuziBusiness_Type_Enum businessType, Department_DutyType_Enum departmentType, string code, string name, long parentId, int sortOrder, string description) { Id = id; BusinessType = businessType; DepartmentType = departmentType; Code = code; Name = name; ParentId = parentId; SortOrder = sortOrder; Description = description; AddDomainEvent(new WuziGroup_ChangedDomainEvent(Id)); } public void Update(WuziBusiness_Type_Enum businessType, Department_DutyType_Enum departmentType, string name, int sortOrder, string description) { BusinessType = businessType; DepartmentType = departmentType; Name = name; SortOrder = sortOrder; Description = description; AddDomainEvent(new WuziGroup_ChangedDomainEvent(Id)); } public void Deleted() => AddDomainEvent(new WuziGroup_ChangedDomainEvent(Id)); }