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;
}
}
}