TrCallDto.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Hotline.Share.Dtos.CallCenter
  7. {
  8. public class TrCallHourDto
  9. {
  10. //public DateTime Dates { get; set; }
  11. public int Hour { get; set; }
  12. public string HourTo { get; set; }
  13. public string StartHourTo { get; set; }
  14. public string EndHourTo { get; set; }
  15. public DateTime DateTimeTo { get; set; }
  16. /// <summary>
  17. /// 总计
  18. /// </summary>
  19. public int Count => EffectiveCount + ConnectByeCount + NoConnectByeCount + QueueByeCount + IvrByeCount;
  20. /// <summary>
  21. /// 有效接通
  22. /// </summary>
  23. public int EffectiveCount { get; set; }
  24. /// <summary>
  25. /// 接通秒挂
  26. /// </summary>
  27. public int ConnectByeCount { get; set; }
  28. /// <summary>
  29. /// 未接通秒挂
  30. /// </summary>
  31. public int NoConnectByeCount { get; set; }
  32. /// <summary>
  33. /// 队列挂断
  34. /// </summary>
  35. public int QueueByeCount { get; set; }
  36. /// <summary>
  37. /// IVR挂断
  38. /// </summary>
  39. public int IvrByeCount { get; set; }
  40. }
  41. public class CallHotLineDto
  42. {
  43. /// <summary>
  44. /// 热线号
  45. /// </summary>
  46. public string GateWay { get; set; }
  47. /// <summary>
  48. /// 呼入
  49. /// </summary>
  50. public int CallInCount { get; set; }
  51. /// <summary>
  52. /// 接通
  53. /// </summary>
  54. public int ConnectCount { get; set; }
  55. /// <summary>
  56. /// 未接通秒挂
  57. /// </summary>
  58. public int NoConnectByeCount { get; set; }
  59. /// <summary>
  60. /// 接通率
  61. /// </summary>
  62. public double CallInConnectRate => CalcCallInConnectRate();
  63. public double CalcCallInConnectRate()
  64. {
  65. if (CallInCount != 0 && ConnectCount != 0)
  66. {
  67. return Math.Round((ConnectCount / (double)CallInCount) * 100, 2);
  68. }
  69. return 0;
  70. }
  71. /// <summary>
  72. /// 有效接通
  73. /// </summary>
  74. public int EffectiveCount { get; set; }
  75. /// <summary>
  76. /// 平均时长
  77. /// </summary>
  78. public double AveDuration => CalcAveDuration();
  79. public double CalcAveDuration()
  80. {
  81. if ((EffectiveCount + ConnectByeCount) != 0 && DurationSum != 0)
  82. {
  83. return Math.Round((double)DurationSum / (EffectiveCount + ConnectByeCount), 1);
  84. }
  85. return 0;
  86. }
  87. /// <summary>
  88. /// 通话时总长
  89. /// </summary>
  90. public double DurationSum { get; set; }
  91. /// <summary>
  92. /// 接通秒挂
  93. /// </summary>
  94. public int ConnectByeCount { get; set; }
  95. /// <summary>
  96. /// 及时应答数
  97. /// </summary>
  98. public int TimelyAnswerCount { get; set; }
  99. /// <summary>
  100. /// 有效率
  101. /// </summary>
  102. public double EffectiveRate => CalcEffectiveRate();
  103. public double CalcEffectiveRate()
  104. {
  105. if (TimelyAnswerCount != 0 && ConnectCount != 0)
  106. {
  107. return Math.Round((TimelyAnswerCount / (double)ConnectCount) * 100, 2);
  108. }
  109. return 0;
  110. }
  111. }
  112. }