using Hotline.Share.Dtos.Order;
namespace Hotline.Share.Dtos.Bigscreen
{
public class OrderStatisticsDto
{
///
/// 办结数
///
public int CompletionCount { get; set; }
///
/// 办结率
///
public double CompletionRate { get; set; }
///
/// 待受理
///
public int HaveToAcceptCount { get; set; }
///
/// 待受理率
///
public double HaveToAcceptRate { get; set; }
///
/// 超期工单数
///
public int OverTimeCount { get; set; }
///
/// 超期率
///
public double OverTimeRate { get; set; }
///
/// 延期工单数
///
public int DelayCount { get; set; }
///
/// 延期率
///
public double DelayRate { get; set; }
///
/// 满意工单数
///
public int SatisfiedCount { get; set; }
///
/// 满意率
///
public double SatisfiedRate { get; set; }
///
/// 省工单量
///
public int ProvinceOrderCount { get; set; }
///
/// 省工单办结
///
public int ProvinceOrderCompletionCount { get; set; }
}
public class KnowledgeStatisticsDto
{
public int TodayAddCount { get; set; }
public int ThisMonthModifyCount { get; set; }
public int TodayReadCount { get; set; }
public int KnowledgeCount { get; set; }
}
public class OrderTypeHandleStatisticsDto
{
public string AcceptType { get; set; }
public int SumCount { get; set; }
public int HandlingCount { get; set; }
public int FiledCount { get; set; }
public int OverTimeCount { get; set; }
}
public class EarlyWarningHotsPotsStatisticsDto
{
public string HotspotId { get; set; }
public string HotspotName { get; set; }
public int SumCount { get; set; }
public string HotspotSpliceName { get; set; }
}
public class OrderCountStatisticsDto
{
public int ToDayCount { get; set; }
public double ToDayQoQ { get; set; }
public int ToMonthCount { get; set; }
public double ToMonthQoQ { get; set; }
public int ToYearCount { get; set; }
public double ToYearQoQ { get; set; }
}
public class OrderAreaAcceptStatisticsDto
{
public string AreaCode { get; set; }
public string AreaName { get; set; }
public int AcceptedCount { get; set; }
public int CompletionCount { get; set; }
public double CompletionRate => CalcCompletion();
public double CalcCompletion()
{
if (CompletionCount == 0 || AcceptedCount == 0)
{
return 0;
}
return Math.Round((CompletionCount / (double)AcceptedCount) * 100, 2);
}
}
public class OrderAreaAcceptQueryDto
{
public int HandlingCount { get; set; }
public int FiledCount { get; set; }
public int OverTimeCount { get; set; }
public string HotspotName { get; set; }
public string AreaCode { get; set; }
public string AreaName { get; set; }
public double SatisfiedRate { get; set; }
}
public class HighFrequencyCallStatisticsDto
{
public string Callnum { get; set; }
public int OrderCountNum { get; set; }
}
public class HighMatterWarningDto
{
public string AreaName { get; set; }
public string Title { get; set; }
public string HotspotName { get; set; }
public string HotspotId { get; set; }
public int SumCount { get; set; }
public string Id { get; set; }
public string AcceptTypeCode { get; set; }
public string AcceptType { get; set; }
public string AreaCode { get; set; }
}
public class OrderVisitOrgSatisfactionRankDto
{
public string VisitOrgCode { get; set; }
public string VisitOrgName { get; set; }
public int SatisfiedCount { get; set; }
public int VisitCount { get; set; }
public double SatisfiedRate => CalcSatisfiedRate();
public double CalcSatisfiedRate()
{
if (SatisfiedCount == 0 || VisitCount == 0)
{
return 0;
}
return Math.Round((SatisfiedCount / (double)VisitCount) * 100, 2);
}
}
public class OrderSourceAndAcceptTtoeStatisticsDto
{
public string Name { get; set; }
public int SumCount { get; set; }
public int HasCount { get; set; }
public double HasRate => CalcHasRate();
public double CalcHasRate()
{
if (HasCount == 0 || SumCount == 0)
{
return 0;
}
return Math.Round((HasCount / (double)SumCount) * 100, 2);
}
}
///
/// 二次办理统计
///
public class SecondaryProcessingOrderStatisticsDto
{
///
/// 二次办理工单
///
public int OrderCount { get; set; }
///
/// 二次办理超期
///
public int OrderOverdueCount { get; set; }
///
/// 二次办理即将超期
///
public int OrderSoonOverdueCount { get; set; }
///
/// 二次办理满意率
///
public string SatisfactionRate { get; set; }
}
public class SecondarySatisfactionDto
{
public int Count { get; set; }
public int NoSatisfiedCount { get; set; }
///
/// 满意率
///
public string SatisfiedRate => CalcSatisfiedRate();
public string CalcSatisfiedRate()
{
if (Count == 0)
{
return "0.000%";
}
return Math.Round(((Count - NoSatisfiedCount) / (double)Count) * 100, 3) + "%";
}
}
}