TimeConfig.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Hotline.Share.Enums.Order;
  7. using Hotline.Share.Enums.Settings;
  8. using Hotline.Share.Tools;
  9. using XF.Utility.EnumExtensions;
  10. namespace Hotline.Share.Dtos.Settings
  11. {
  12. /// <summary>
  13. /// 计算期满时间所需要的 工单信息
  14. /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  15. /// !!!!!该类中的字段顺序很重要!!!!!!
  16. /// 字段的顺序等于期满条件的优先级
  17. /// 计算期满时间时, 会根据该类中字段顺序计算期满
  18. /// </summary>
  19. public class OrderTimeClacInfo
  20. {
  21. public const string BusCodeName = "AcceptTypeCode";
  22. /// <summary>
  23. /// 受理类型代码
  24. /// </summary>
  25. public string? AcceptTypeCode { get; set; }
  26. /// <summary>
  27. /// 24小时办结
  28. /// </summary>
  29. [NoCode] // 不需要查询 BusCode
  30. public bool Is24HoursComplete { get; set; }
  31. /// <summary>
  32. /// 热点分类类目名称
  33. /// </summary>
  34. [IsFuzzyQuery] // 模糊查询
  35. [NoCode] // 不需要查询 BusCode
  36. public string? HotspotSpliceName { get; set; }
  37. /// <summary>
  38. /// 来电/信人身份
  39. /// </summary>
  40. public EIdentityType? IdentityType { get; set; }
  41. /// <summary>
  42. /// 来源渠道
  43. /// </summary>
  44. public string? SourceChannel { get; set; }
  45. }
  46. public class TimeConfig
  47. {
  48. public TimeConfig()
  49. {
  50. }
  51. public TimeConfig(int count, ETimeType timeType)
  52. {
  53. Count = count;
  54. TimeType = timeType;
  55. TimeText = $"{count}个{timeType.GetDescription()}";
  56. }
  57. public int Count { get; set; }
  58. public ETimeType TimeType { get; set; }
  59. private string timeText;
  60. public string TimeText
  61. {
  62. get
  63. {
  64. if (timeText.IsNullOrEmpty()) return $"{Count}个{TimeType.GetDescription()}";
  65. return timeText;
  66. }
  67. set
  68. {
  69. timeText = value;
  70. }
  71. }
  72. /// <summary>
  73. /// 超期时限百分比
  74. /// </summary>
  75. public int Percentage { get; set; }
  76. /// <summary>
  77. /// 超期时间百分比(第一级)
  78. /// </summary>
  79. public int PercentageOne { get; set; }
  80. /// <summary>
  81. /// 工作时间
  82. /// </summary>
  83. public IList<string>? WorkTime { get; set; }
  84. }
  85. public class ExpiredTimeWithConfig : TimeConfig
  86. {
  87. public DateTime ExpiredTime { get; set; }
  88. /// <summary>
  89. /// 即将超期时间
  90. /// </summary>
  91. public DateTime NearlyExpiredTime { get; set; }
  92. /// <summary>
  93. /// 即将超期时间第一级
  94. /// </summary>
  95. public DateTime NearlyExpiredTimeOne { get; set; }
  96. }
  97. }