BiSeatCallsDto.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. using Hotline.Share.Tools;
  2. namespace Hotline.Share.Dtos.CallCenter;
  3. /// <summary>
  4. /// 坐席话务量统计
  5. /// </summary>
  6. public class BiSeatCallsDto
  7. {
  8. /// <summary>
  9. /// 坐席姓名
  10. /// </summary>
  11. public string Name { get; set; }
  12. /// <summary>
  13. /// 用户ID
  14. /// </summary>
  15. public string UserId { get; set; }
  16. /// <summary>
  17. /// 工号
  18. /// </summary>
  19. public string StaffNo { get; set; }
  20. /// <summary>
  21. /// 分机号
  22. /// </summary>
  23. public string TelNo { get; set; }
  24. /// <summary>
  25. /// 呼入总量
  26. /// </summary>
  27. public int InTotal { get; set; }
  28. /// <summary>
  29. /// 呼出总量
  30. /// </summary>
  31. public int OutTotal { get; set; }
  32. /// <summary>
  33. /// 呼入接通量
  34. /// </summary>
  35. public int InAnswered { get; set; }
  36. /// <summary>
  37. /// 呼出接通量
  38. /// </summary>
  39. public int OutAnswered { get; set; }
  40. /// <summary>
  41. /// 呼入秒挂
  42. /// </summary>
  43. public int InHangupImmediate { get; set; }
  44. /// <summary>
  45. /// 呼入未接
  46. /// </summary>
  47. public int InHanguped { get; set; }
  48. /// <summary>
  49. /// 呼入平均时长
  50. /// </summary>
  51. public double InDurationAvg { get; set; }
  52. /// <summary>
  53. /// 呼出平均时长
  54. /// </summary>
  55. public double OutDurationAvg { get; set; }
  56. /// <summary>
  57. /// 有效接通量
  58. /// </summary>
  59. public int InAvailableAnswer { get; set; }
  60. /// <summary>
  61. /// 呼入接通秒挂
  62. /// </summary>
  63. public int InHangupImmediateWhenAnswered { get; set; }
  64. /// <summary>
  65. /// 登录时长(秒)
  66. /// </summary>
  67. public double? LoginDuration { get; set; }
  68. /// <summary>
  69. /// 登录时长(显示)
  70. /// </summary>
  71. public string LoginDurationString => this.LoginDuration.SecondsToString();
  72. /// <summary>
  73. /// 小休+摘机时长 (秒)
  74. /// </summary>
  75. public double RestDuration { get; set; }
  76. /// <summary>
  77. /// 小休+摘机时长(显示)
  78. /// </summary>
  79. public string RestDurationString => this.RestDuration.SecondsToString();
  80. /// <summary>
  81. /// 呼入接通率
  82. /// </summary>
  83. public double InAnsweredRate => InTotal > 0 ? Math.Round(((double)InAnswered / (double)InTotal) * 100, digits: 4) : 0;
  84. /// <summary>
  85. /// 呼入接通率(显示)
  86. /// </summary>
  87. public string InAnsweredRateString => this.InAnsweredRate + "%";
  88. /// <summary>
  89. /// 呼出接通率
  90. /// </summary>
  91. public double OutAnsweredRate => OutTotal > 0 ? Math.Round(((double)OutAnswered / (double)OutTotal) * 100, digits: 4) : 0;
  92. /// <summary>
  93. /// 呼出接通率(显示)
  94. /// </summary>
  95. public string OutAnsweredRateString => this.OutAnsweredRate + "%";
  96. /// <summary>
  97. /// 呼入有效接通率
  98. /// </summary>
  99. public double AvailableAnswerRate => InTotal > 0 ? Math.Round(((double)InAvailableAnswer / (double)InTotal) * 100, digits: 4) : 0;
  100. /// <summary>
  101. /// 呼入有效接通率(显示)
  102. /// </summary>
  103. public string AvailableAnswerRateString => this.AvailableAnswerRate + "%";
  104. /// <summary>
  105. /// 工作效率
  106. /// </summary>
  107. public double WorkRate => LoginDuration > 0 ? Math.Round((1 - (double)RestDuration / (double)LoginDuration) * 100, digits: 4) : 0;
  108. /// <summary>
  109. /// 工作效率(显示)
  110. /// </summary>
  111. public string WorkRateString => this.WorkRate + "%";
  112. }
  113. public class BiSeatRestDto
  114. {
  115. public string UserId { get; set; }
  116. public string? StaffNo { get; set; }
  117. public string UserName { get; set; }
  118. public int RestCount { get; set; }
  119. public double RestDuration { get; set; }
  120. public string RestDurationTxt => RestDuration.ToString("f2");
  121. /// <summary>
  122. /// 小休累计时长 (单元: 分)
  123. /// </summary>
  124. public double CumulativeDuration { get; set; }
  125. public string CumulativeDurationTxt => CumulativeDuration.ToString("f2");
  126. }
  127. public class BiSeatSwitchDto
  128. {
  129. public string Id { get; set; }
  130. public string? UserId { get; set; }
  131. public string? UserName { get; set; }
  132. public string? CPN { get; set; }
  133. /// <summary>
  134. /// 外线号码
  135. /// </summary>
  136. public string? CDPN { get; set; }
  137. /// <summary>
  138. /// 分机号
  139. /// </summary>
  140. public string? TelNo { get; set; }
  141. /// <summary>
  142. /// 转接外线时间
  143. /// </summary>
  144. public DateTime CreatedTime { get; set; }
  145. }
  146. public class BiVisitNoSatisfiedDto
  147. {
  148. public int Count { get; set; }
  149. public string Key { get; set; }
  150. public Dictionary<string,string> Org { get; set; }
  151. public string OrgName { get; set; }
  152. public string OrgCode { get; set; }
  153. }