OrderVisitDetail.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using Hotline.Settings.Hotspots;
  2. using Hotline.Share.Dtos;
  3. using Hotline.Share.Dtos.Order;
  4. using Hotline.Share.Enums.Order;
  5. using SqlSugar;
  6. using XF.Domain.Repository;
  7. namespace Hotline.Orders
  8. {
  9. public class OrderVisitDetail : CreationEntity
  10. {
  11. /// <summary>
  12. /// 回访主表ID
  13. /// </summary>
  14. public string VisitId { get; set; }
  15. [Navigate(NavigateType.OneToOne, nameof(VisitId))]
  16. public OrderVisit OrderVisit { get; set; }
  17. /// <summary>
  18. /// 二次办理申请
  19. /// </summary>
  20. [Navigate(NavigateType.OneToOne, nameof(Id), nameof(OrderSecondaryHandling.VisitDetailId))]
  21. public OrderSecondaryHandling SecondaryHandling { get; set; }
  22. /// <summary>
  23. /// 甄别记录
  24. /// </summary>
  25. [Navigate(NavigateType.OneToMany, nameof(OrderScreen.VisitDetailId), nameof(Id))]
  26. public List<OrderScreen> OrderScreens { get; set; }
  27. /// <summary>
  28. /// 语音评价(话务评价)
  29. /// </summary>
  30. public EVoiceEvaluate? VoiceEvaluate { get; set; }
  31. /// <summary>
  32. /// 话务员评价(话务评价)
  33. /// </summary>
  34. public ESeatEvaluate? SeatEvaluate { get; set; }
  35. /// <summary>
  36. /// 是否联系
  37. /// </summary>
  38. public bool? IsContact { get; set; }
  39. /// <summary>
  40. /// 处理结果
  41. /// </summary>
  42. public bool? Volved { get; set; }
  43. /// <summary>
  44. /// 未处理内容
  45. /// </summary>
  46. public string? VolveConent { get; set; }
  47. /// <summary>
  48. /// 部门办件结果
  49. /// </summary>
  50. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  51. public Kv? OrgProcessingResults { get; set; }
  52. /// <summary>
  53. /// 不满意原因
  54. /// </summary>
  55. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  56. public List<Kv>? OrgNoSatisfiedReason { get; set; }
  57. /// <summary>
  58. /// 部门办件态度
  59. /// </summary>
  60. [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
  61. public Kv? OrgHandledAttitude { get; set; }
  62. /// <summary>
  63. /// 回访内容
  64. /// </summary>
  65. public string? VisitContent { get; set; }
  66. /// <summary>
  67. /// 回访部门Code
  68. /// </summary>
  69. [SugarColumn(IsNullable = true)]
  70. public string VisitOrgCode { get; set; }
  71. /// <summary>
  72. /// 回访部门名称
  73. /// </summary>
  74. [SugarColumn(IsNullable = true)]
  75. public string VisitOrgName { get; set; }
  76. /// <summary>
  77. /// 回访对象类型 10:话务员 20:部门
  78. /// </summary>
  79. public EVisitTarget VisitTarget { get; set; }
  80. /// <summary>
  81. /// 短信回访回填
  82. /// </summary>
  83. /// <param name="visitSatisfactionKv"></param>
  84. /// <exception cref="NotImplementedException"></exception>
  85. public void ReplyBackfill(Kv visitSatisfactionKv)
  86. {
  87. this.OrgProcessingResults = visitSatisfactionKv;
  88. this.OrgHandledAttitude = visitSatisfactionKv;
  89. }
  90. public void ReplyBackfill(ESeatEvaluate seatEvaluate, EVoiceEvaluate voiceEvaluate)
  91. {
  92. this.SeatEvaluate ??= seatEvaluate;
  93. this.VoiceEvaluate ??= voiceEvaluate;
  94. }
  95. }
  96. /// <summary>
  97. /// 截至甄别时间
  98. /// </summary>
  99. public DateTime? ScreenByEndTime { get; set; }
  100. }
  101. }