using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Hotline.Share.Dtos.CallCenter { public class TrCallHourDto { //public DateTime Dates { get; set; } public int Hour { get; set; } public string HourTo { get; set; } public string StartHourTo { get; set; } public string EndHourTo { get; set; } public DateTime DateTimeTo { get; set; } /// /// 总计 /// public int Count => EffectiveCount + ConnectByeCount + NoConnectByeCount + QueueByeCount + IvrByeCount; /// /// 有效接通 /// public int EffectiveCount { get; set; } /// /// 接通秒挂 /// public int ConnectByeCount { get; set; } /// /// 未接通秒挂 /// public int NoConnectByeCount { get; set; } /// /// 队列挂断 /// public int QueueByeCount { get; set; } /// /// IVR挂断 /// public int IvrByeCount { get; set; } } public class CallHotLineDto { /// /// 热线号 /// public string GateWay { get; set; } /// /// 呼入 /// public int CallInCount { get; set; } /// /// 接通 /// public int ConnectCount { get; set; } /// /// 未接通秒挂 /// public int NoConnectByeCount { get; set; } /// /// 接通率 /// public double CallInConnectRate => CalcCallInConnectRate(); public double CalcCallInConnectRate() { if (CallInCount != 0 && ConnectCount != 0) { return Math.Round((ConnectCount / (double)CallInCount) * 100, 2); } return 0; } /// /// 有效接通 /// public int EffectiveCount { get; set; } /// /// 平均时长 /// public double AveDuration => CalcAveDuration(); public double CalcAveDuration() { if ((EffectiveCount + ConnectByeCount) != 0 && DurationSum != 0) { return Math.Round((double)DurationSum / (EffectiveCount + ConnectByeCount), 1); } return 0; } /// /// 通话时总长 /// public double DurationSum { get; set; } /// /// 接通秒挂 /// public int ConnectByeCount { get; set; } /// /// 及时应答数 /// public int TimelyAnswerCount { get; set; } /// /// 有效率 /// public double EffectiveRate => CalcEffectiveRate(); public double CalcEffectiveRate() { if (TimelyAnswerCount != 0 && ConnectCount != 0) { return Math.Round((TimelyAnswerCount / (double)ConnectCount) * 100, 2); } return 0; } } }