SystemOrganize.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 
  2. using SqlSugar;
  3. using System.ComponentModel;
  4. using XF.Domain.Entities;
  5. using XF.Domain.Exceptions;
  6. using XF.Domain.Repository;
  7. namespace Hotline.Settings;
  8. [SugarIndex("unique_org_code", nameof(SystemOrganize.OrgCode), OrderByType.Desc, true)]
  9. [Description("组织架构")]
  10. public class SystemOrganize : CreationEntity
  11. {
  12. /// <summary>
  13. /// 组织架构名称
  14. /// </summary>
  15. public string OrgName { get; set; }
  16. /// <summary>
  17. /// 组织架构Code(001001001) 解析:001,001,001)
  18. /// </summary>
  19. public string OrgCode { get; set; }
  20. /// <summary>
  21. /// 部门级别
  22. /// </summary>
  23. public int OrgLevel { get; set; }
  24. /// <summary>
  25. /// 部门类型
  26. /// </summary>
  27. public EOrgType OrgType { get; set; }
  28. /// <summary>
  29. /// 上级ID
  30. /// </summary>
  31. [SugarColumn(IsNullable = true)]
  32. public string? ParentId { get; set; }
  33. /// <summary>
  34. /// 上级名称
  35. /// </summary>
  36. [SugarColumn(IsNullable = true)]
  37. public string? ParentName { get; set; }
  38. /// <summary>
  39. /// 是否启用
  40. /// </summary>
  41. public bool IsEnable { get; set; }
  42. [SugarColumn(IsIgnore = true)]
  43. public List<SystemOrganize> Children { get; set; }
  44. public void InitOrgLevel()
  45. {
  46. if (OrgCode.Length % 3 != 0)
  47. throw new UserFriendlyException("非法部门Code");
  48. OrgLevel = OrgCode.Length / 3;
  49. }
  50. }