using Hotline.Share.Dtos.Order; using Hotline.Share.Enums.Order; using Hotline.Share.Enums.Snapshot; using Hotline.Share.Requests; using Hotline.Share.Tools; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Text.Json.Serialization; using System.Threading.Tasks; using XF.Utility.EnumExtensions; using JsonIgnoreAttribute = System.Text.Json.Serialization.JsonIgnoreAttribute; namespace Hotline.Share.Dtos.Snapshot; public record RedPackStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 字段名称 /// [Required] public string FieldName { get; set; } /// /// 行业Id /// [Required] public string? IndustryId { get; set; } /// /// 行业类型 /// [Required] public int IndustryType { get; set; } } public class RedPackStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 行业 /// public string IndustryName { get; set; } /// /// 办理时长 /// public double CreationTimeHandleDuration { get; set; } /// /// 区域 /// public string County { get; set; } /// /// 电话 /// public string Contact { get; set; } /// /// 受理期满时间 /// public DateTime? AcceptExpiredTime { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } /// /// 受理人 /// public string AcceptorName { get; set; } /// /// 受理内容 /// public string Content { get; set; } /// /// 办理结果 /// public string FileOpinion { get; set; } } public class RedPackStatisticsInDto { public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } } public class RedPackStatisticsOutDto { /// /// 行业类型 /// [JsonIgnore] [Newtonsoft.Json.JsonIgnore] public string CaseName { get; set; } /// /// 行业类型Id /// [JsonIgnore] [Newtonsoft.Json.JsonIgnore] public string CaseId { get; set; } /// /// 行业Id /// [JsonIgnore] [Newtonsoft.Json.JsonIgnore] public string? Id { get; set; } /// /// 行业名字 /// [JsonIgnore] [Newtonsoft.Json.JsonIgnore] public string Name { get; set; } /// /// 配置金额(后端逻辑用, 前端不显示) /// [JsonIgnore] [Newtonsoft.Json.JsonIgnore] public double? ShouldAmount { get; set; } = 0; /// /// 审批同意总金额 /// public double? ApprovalAmount { get; set; } = 0; /// /// 审批同意总金额 /// public string? ApprovalAmountTxt => ApprovalAmount?.ToString("f2"); /// /// 审批同意总个数 /// public int ApprovalCount { get; set; } /// /// 发送成功金额 /// public double? SentAmount { get; set; } = 0; /// /// 发送成功金额 /// public string? SentAmountTxt => SentAmount?.ToString("f2"); /// /// 发送成功个数 /// public int SentCount { get; set; } /// /// 发送失败金额 /// public double SendFailAmount { get; set; } = 0; /// /// 发送失败金额 /// public string? SendFailAmountTxt => SendFailAmount.ToString("f2"); /// /// 发送失败个数 /// public int SendFailCount { get; set; } /// /// 待发金额 /// public double? PendingAmount { get; set; } = 0; /// /// 待发金额 /// public string? PendingAmountTxt => PendingAmount?.ToString("f2"); /// /// 待发个数 /// public int PendingCount { get; set; } /// /// 补充红包金额 /// public double? SupplementAmount { get; set; } = 0; /// /// 补充红包金额 /// public string? SupplementAmountTxt => SupplementAmount?.ToString("f2"); /// /// 补充红包数 /// public int SupplementCount { get; set; } /// /// 行业类型名称 /// public string? IndustryName { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } /// /// 行业类型 /// public int IndustryType { get; set; } } /// /// 随手拍统计输出Dto /// public class SnapshotStatisticsOutDto { /// /// 随手拍来件数 /// public int SSPLJS => WZSLFWNJS + SSPZ12345JS + SLFWNZJS; /// /// 未在受理范围内件数 /// public int WZSLFWNJS { get; set; } /// /// 随手拍转12345件数 /// public int SSPZ12345JS { get; set; } /// /// 受理范围内总件数 /// public int SLFWNZJS { get; set; } /// /// 受理范围内派给各网格员件数 /// public int SLFWNPGGWGYJS => SLFWNPGWGYSXSNHFJS + SLFWNPGWGYCGSXSHFJS + SLFWNPGWGYWHFJS; /// /// 受理范围内派给网格员四小时内回复件数 /// public int SLFWNPGWGYSXSNHFJS { get; set; } /// /// 受理范围内派给网格员超过四小时回复件数 /// public int SLFWNPGWGYCGSXSHFJS { get; set; } /// /// 受理范围内派给网格员未回复件数 /// public int SLFWNPGWGYWHFJS { get; set; } /// /// 受理范围内按12345直派给各区县或部门件数 /// public int SLFWNA12345ZPGGQXHBMJS => SLFWNA12345ZPGGBMJS + SLFWNA12345ZPGGQXJS; /// /// 受理范围内按12345直派给各部门件数 /// public int SLFWNA12345ZPGGBMJS { get; set; } /// /// 受理范围内按12345直派给各区县件数 /// public int SLFWNA12345ZPGGQXJS { get; set; } /// /// 受理范围内已办信件 /// public int SLFWNYBXJ => ZXYB + BMYB; /// /// 中心已办 /// public int ZXYB { get; set; } /// /// 部门已办 /// public int BMYB { get; set; } /// /// 受理范围满意度 /// public double SLFWMYD { get; set; } /// /// 受理范围满意度 /// public string SLFWMYDTxt => SLFWMYD.ToString("f4") + "%"; /// /// 满意量 /// public int MYL { get; set; } /// /// 不满意量 /// public int BMYL { get; set; } /// /// 审核发放奖励个数 /// public int SHFFJLGS => SPBTYHBGS + SPTYHBGS; /// /// 审批不同意红包个数 /// public int SPBTYHBGS { get; set; } /// /// 审批同意红包个数 /// public int SPTYHBGS { get; set; } /// /// 特殊红包审批统计 /// public int TSHBSP { get; set; } /// /// 审批同意个数 /// public int SPTYGS { get; set; } /// /// 已发金额 /// public double? YFJE { get; set; } /// /// 局审核发放网格员奖励个数 /// public int JSHFFWGJLGS { get; set; } /// /// 审批同意(网格员)红包个数 /// public int SPTYWGYHBGS { get; set; } /// /// 审批不同意(网格员)红包个数 /// public int SPBTYWGYHBGS { get; set; } /// /// 市民奖励总额 /// public double? SMJLZE { get; set; } /// /// 市民已发放奖励总额 /// public double? SMYFFJLZE { get; set; } /// /// 市民待发奖励总额 /// public double? SMDFFJLZE { get; set; } /// /// 已发(个) /// public int YFG { get; set; } /// /// 无法联系(个) /// public int WFLXG { get; set; } /// /// 婉拒红包(个) /// public int WJHBG { get; set; } /// /// 网格员应发奖励金额 /// public double? WGYYFJLJE { get; set; } /// /// 网格员已发放奖励总额 /// public double? WGYYFFJLZE { get; set; } /// /// 网格员待发放奖励总额 /// public double? WGYDFFJLZE { get; set; } /// /// 网格员扣款总额(已发) /// public float WGYKKZEYF { get; set; } /// /// 网格员扣款总额(待发) /// public float WGYKKZEDF { get; set; } /// /// 受理范围内多部门会签件件数 /// public int SLFWNDBMHQJJS { get; set; } /// /// 受理范围内热线中心归档件数 /// public int SLFWNRXZXGDJS { get; set; } /// /// 热线中心发起会签件件数 /// public int RXZXFQHQJJS { get; set; } /// /// 安全隐患 /// public int AQYH { get; set; } /// /// 已完成安全隐患整改 /// public int YWCAQYHZG { get; set; } /// /// 申请延期工单件数 /// public int SQYQGDJS { get; set; } /// /// 申请延期工单次数 /// public int SQYQGDCS { get; set; } /// /// 超期件 /// public int CQJ { get; set; } /// /// 二次办理件数 /// public int ECBLJS => ECBLJSTHBM + ECBLJSHFBMYCB + ECBLJSTTDYYJBM; /// /// 二次办理件数-退回部门 /// public int ECBLJSTHBM { get; set; } /// /// 二次办理件数-回访不满意重办 /// public int ECBLJSHFBMYCB { get; set; } /// /// 二次办理件数-回访满意 /// public int ECBLJSHFMY { get; set; } /// /// 二次办理件数-特提到原一级部门 /// public int ECBLJSTTDYYJBM { get; set; } /// /// 二次办理工单满意率 /// public double ECBLGDMYL => ECBLJS == 0 ? 0 : (ECBLJSHFMY / ECBLJS) * 100; /// /// 二次办理工单满意率 /// public string ECBLGDMYLTxt => ECBLGDMYL.ToString("f4") + "%"; /// /// 二次办理工单件数-退回部门回访满意 /// public int ECBLGDJSTMBMHFMYD { get; set; } /// /// 二次办理工单满意率-退回部门 /// public double ECBLGDMYLTHBM => ECBLJSTHBM == 0 ? 0 : (ECBLGDJSTMBMHFMYD / ECBLJSTHBM) * 100; /// /// 二次办理工单满意率-退回部门 /// public string ECBLGDMYLTHBMTxt => ECBLGDMYLTHBM.ToString("f4") + "%"; /// /// 二次办理工单满意率-回访不满意重办 /// public double ECBLGDMYLHFBMYCB => ECBLJS == 0 ? 0 : (ECBLJSHFBMYCB / ECBLJS) * 100; /// /// 二次办理工单满意率-回访不满意重办 /// public string ECBLGDMYLHFBMYCBTxt => ECBLGDMYLHFBMYCB.ToString("f4") + "%"; /// /// 特提件数 /// public int TTJS => TTDYYJBMJS + TTDPDZJS + QTTTJS; /// /// 特提到原一级部门件数 /// public int TTDYYJBMJS { get; set; } /// /// 特提到派单组件数 /// public int TTDPDZJS { get; set; } /// /// 其他特提件数 /// public int QTTTJS { get; set; } } /// /// 随手拍统计输入Dto /// public class SnapshotStatisticsInDto { /// /// 开始时间 /// [Required] public DateTime StartTime { get; set; } /// /// 结束时间 /// [Required] public DateTime EndTime { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public record SnapshotStatisticsDetailInDto : PagedRequest { /// /// 开始时间 /// [Required] public DateTime StartTime { get; set; } /// /// 结束时间 /// [Required] public DateTime EndTime { get; set; } /// /// 字段名称 /// [Required] public string FieldName { get; set; } } public class SnapshotStatisticsDetailOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 行业 /// public string IndustryName { get; set; } /// /// 办理时长 /// public double CreationTimeHandleDuration { get; set; } /// /// 区域 /// public string County { get; set; } /// /// 电话 /// public string Contact { get; set; } /// /// 网格员名称 /// public string MemberName { get; set; } /// /// 网格员电话 /// public string MemberMobile { get; set; } /// /// 网格员回复 /// public string NetworkRemark { get; set; } /// /// 网格E通编号 /// public string? NetworkENumber { get; set; } /// /// 受理期满时间 /// public DateTime? AcceptExpiredTime { get; set; } /// /// 一级部门 /// public string OrgLevelOneCode { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } /// /// 受理人 /// public string AcceptorName { get; set; } /// /// 受理内容 /// public string Content { get; set; } /// /// 办理结果 /// public string FileOpinion { get; set; } } public class StatisticsDto { } public class HotspotStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 分类Code /// public string? HotspotCode { get; set; } } public class HotspotStatisticsOutDto { public string HotspotCode { get; set; } public int SumCount { get; set; } public string HotspotName { get; set; } public bool HasChild { get; set; } } public record HotspotStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } public string? HotspotCode { get; set; } } public class HotspotStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 甄别状态 /// public EScreenStatus? OrderScreenStatus { get; set; } /// /// 甄别状态 /// public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别"; /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 行业 /// public string IndustryName { get; set; } /// /// 办理时长 /// public double CreationTimeHandleDuration { get; set; } /// /// 区域 /// public string County { get; set; } /// /// 电话 /// public string Contact { get; set; } /// /// 受理期满时间 /// public DateTime? AcceptExpiredTime { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 满意度 /// public Kv? OrgProcessingResults { get; set; } /// /// 满意度 /// public string? OrgProcessingResultsTxt => OrgProcessingResults != null ? OrgProcessingResults.Value : ""; /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } /// /// 受理人 /// public string AcceptorName { get; set; } /// /// 受理内容 /// public string Content { get; set; } /// /// 办理结果 /// public string FileOpinion { get; set; } } public class SnapshotProcessingStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public class SnapshotProcessingStatisticsOutDto { /// /// 部门Code /// public string OrgCode { get; set; } /// /// 部门名称 /// public string OrgName { get; set; } /// /// 信件总量 /// public int OrderCountNum => YbOrderCountNum + ZbOrderCountNum; /// /// 信件已办总量 /// public int YbOrderCountNum { get; set; } /// /// 信件未办总量 /// public int ZbOrderCountNum { get; set; } /// /// 按时办结 /// public int CompleteOnTime { get; set; } /// /// 按时办结率 /// public string CompleteOnTimeRate => CalcRate(YbOrderCountNum, CompleteOnTime); /// /// 办结率 /// public string OrderCompletionRate => CalcRate(YbOrderCountNum, OrderCountNum); /// /// 20分钟内接件 /// public int ReceiveIn20Minutes { get; set; } /// /// 20分钟后接件 /// public int ReceiveOut20Minutes { get; set; } /// /// 工单及时响应率 /// public string PromptResponse => CalcRate(ReceiveIn20Minutes, ReceiveIn20Minutes + ReceiveOut20Minutes); /// /// 退回件 /// public int BackNum { get; set; } /// /// 办件总时长 /// public double? TotalHandleDuration { get; set; } /// /// 3日内办结 /// public int End3Day { get; set; } /// /// 3至5日办结 /// public int End3To5Day { get; set; } /// /// 5至7日办结 /// public int End5To7Day { get; set; } /// /// 7日外办结 /// public int End7Day { get; set; } /// /// 按时办结个数 /// public int OnTimeCount { get; set; } /// /// 按时办结率 /// public string CloseOnTimeRate => CalcRate(OnTimeCount, OrderCountNum); /// /// 满意量 /// public int SatisfiedCount { get; set; } /// /// 不满意量 /// public int NoSatisfiedCount { get; set; } /// /// 满意率 /// public string SatisfiedRate => CalcRate(SatisfiedCount, SatisfiedCount + NoSatisfiedCount); /// /// 二次办理个数 /// public int SecondNum { get; set; } /// /// 计算率 /// /// public string CalcRate(int Quantity, int Count) { if (Count != 0 && Quantity != 0) { return Math.Round((Quantity / (double)Count) * 100, 2) + "%"; } return "0%"; } } public record SnapshotProcessingStatisticsDetailsInDto : PagedRequest { /// /// 开始时间 /// [Required] public DateTime StartTime { get; set; } /// /// 结束时间 /// [Required] public DateTime EndTime { get; set; } /// /// 字段名称 /// [Required] public string FieldName { get; set; } /// /// 部门Id /// [Required] public string OrgId { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public class SnapshotProcessingStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 甄别状态 /// public EScreenStatus? OrderScreenStatus { get; set; } /// /// 甄别状态 /// public string? OrderScreenStatusText => OrderScreenStatus.HasValue && OrderScreenStatus != null ? OrderScreenStatus?.GetDescription() : "未甄别"; /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } } public class GuiderWorkStatisticsOutDto { /// /// 网格员姓名 /// public string MemberName { get; set; } /// /// 网格员手机号 /// public string MemberMobile { get; set; } /// /// 未回复 /// public int UnReplyCount { get; set; } /// /// 4小时内回复 /// public int ReplyIn4HourCount { get; set; } /// /// 4小时外回复 /// public int ReplyOut4HourCount { get; set; } } public class GuiderWorkStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } } public record GuiderWorkStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } [Required] public string MemberMobile { get; set; } /// /// 字段名称 /// [Required] public string FieldName { get; set; } } public class GuiderWorkStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 行业 /// public string IndustryName { get; set; } /// /// 办理时长 /// public double CreationTimeHandleDuration { get; set; } /// /// 区域 /// public string County { get; set; } /// /// 电话 /// public string Contact { get; set; } /// /// 网格员姓名 /// public string MemberName { get; set; } /// /// 网格员手机号 /// public string MemberMobile { get; set; } /// /// 网格员回复内容 /// public string? NetworkRemark { get; set; } /// /// 受理期满时间 /// public DateTime? AcceptExpiredTime { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } /// /// 受理人 /// public string AcceptorName { get; set; } } public class HotspotDataStatisticsOutDto { /// /// 热点名字 /// public string Name { get; set; } /// /// 热点工单数量 /// public int OrderCount { get; set; } } public class HotspotDataStatisticsInDto { /// /// 类型: /// 0: 全部; /// 1: 市民; /// 2: 企业; /// [Required] public int TypeId { get; set; } [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } } public class GuiderWorkLogsOutDto { /// /// Id /// public string Id { get; set; } /// /// title /// public string Title { get; set; } /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 区域 /// public string County { get; set; } /// /// 网格员回复内容 /// public string? NetworkRemark { get; set; } /// /// 回复时间 /// public DateTime? ReplyDate { get; set; } /// /// 网格员姓名 /// public string? MemberName { get; set; } /// /// 网格员电话 /// public string? MemberMobile { get; set; } /// /// 网格E通编号 /// public string? NetworkENumber { get; set; } /// /// 网格员办理状态 /// public EGuiderSystemReplyType? ReplyResultType { get; set; } /// /// 网格员办理状态 /// public string ReplyResultTypeTxt => ReplyResultType == null ? "未知": ReplyResultType.Value.GetDescription(); } public record GuiderWorkLogsInDto : PagedRequest { /// /// Id /// public string Id { get; set; } /// /// No /// public string? No { get; set; } /// /// 标题 /// public string? Title { get; set; } /// /// 网格员姓名 /// public string? MemberName { get; set; } /// /// 网格员电话 /// public string? MemberMobile { get; set; } /// /// 编号 /// public string? NetworkENumber { get; set; } /// /// 状态 /// public EOrderStatus? Status { get; set; } /// /// 受理时间开始 /// public DateTime? BeginCreationTime { get; set; } /// /// 受理时间结束 /// public DateTime? EndCreationTime { get; set; } } public record DuplicateItemsInDto : PagedRequest { /// /// 编号 /// public string? No { get; set; } /// /// 标题 /// public string? Title { get; set; } /// /// 来电号码 /// public string? FromPhone { get; set; } /// /// 联系号码 /// public string? Contact { get; set; } /// /// 来电人 /// public string? FromName { get; set; } /// /// 受理时间 /// public DateTime? BeginCreationTime { get; set; } /// /// 受理时间 /// public DateTime? EndCreationTime { get; set; } /// /// 期满时间开始 /// public DateTime? BeginExpiredTime { get; set; } /// /// 期满时间结束 /// public DateTime? EndExpiredTime { get; set; } /// /// 接办部门 /// public string? ActualHandleOrgName { get; set; } /// /// 受理类型 /// public string? AcceptType { get; set; } /// /// 热点类型 /// public string? HotspotName { get; set; } /// /// 受理人 /// public string? AcceptorName { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public class DuplicateItemsOutDto { /// /// Id /// public string Id { get; set; } /// /// No /// public string? No { get; set; } /// /// 类型 /// public string? OrderSnapshotType { get; set; } /// /// 重复工单Id /// public List? DuplicateIds { get; set; } /// /// 标题 /// public string? Title { get; set; } /// /// 网格员姓名 /// public string? MemberName { get; set; } /// /// 网格员电话 /// public string? MemberMobile { get; set; } /// /// 编号 /// public string? NetworkENumber { get; set; } /// /// 状态 /// public EOrderStatus? Status { get; set; } /// /// 受理时间开始 /// public DateTime? BeginCreationTime { get; set; } /// /// 受理时间结束 /// public DateTime? EndCreationTime { get; set; } /// /// 行业 /// public string IndustryName { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 受理人 /// public string AcceptorName { get; set; } } public class CommunityStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } public string? CommunityCode { get; set; } } public class CommunityStatisticsOutDto { public string CommunityCode { get; set; } public int SumCount { get; set; } public string CommunityName { get; set; } public bool HasChild { get; set; } public string CommunityFullName { get; set; } } public class CommunityStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } /// /// 社区名称 /// public string CommunityName { get; set; } } public record CommunityStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 社区全称 /// [Required] public string CommunityCode { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public class CountyRedPackStatisticsOutDto { /// /// 区域 /// public string? County { get; set; } /// /// 举报总数 /// public int JuBaoZongShu { get; set; } /// /// 已办结数 /// public int YiBanJieShu { get; set; } /// /// 办结率 /// public string BanJieLv => CalcRate(YiBanJieShu, JuBaoZongShu); /// /// 市民审核通过数 /// public int ShiMinShenHeTongGuoShu { get; set; } /// /// 市民总金额 /// public double? ShiMinZongJinE { get; set; } /// /// 市民已领 /// public double ShiMinYiLing { get; set; } /// /// 市民待领 /// public double ShiMinDaiLing { get; set; } /// /// 市民待补领 /// public double? ShiMinDaiBuLing { get; set; } /// /// 网格员总件数 /// public int WangGeYuanZongJianShu { get; set; } /// /// 网格员审核通过数 /// public int WangGeYuanShenHeTongGuoShu { get; set; } /// /// 网格员总金额 /// public double? WangGeYuanZongJinE { get; set; } /// /// 网格员已领 /// public double WangGeYuanYiLing { get; set; } /// /// 网格员待领 /// public double WangGeYuanDaiLing { get; set; } /// /// 网格员待补领 /// public double WangGeYuianDaiBuLing { get; set; } = 0; /// /// 计算率 /// /// public string CalcRate(int Quantity, int Count) { if (Count != 0 && Quantity != 0) { return Math.Round((Quantity / (double)Count) * 100, 2) + "%"; } return "0%"; } } public class CountyRedPackStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 行业Id /// public string? IndustryId { get; set; } } public class SnapshotDepartmentStatisticsOutDto { /// /// 部门Code /// public string OrgCode { get; set; } /// /// 部门名称 /// public string OrgName { get; set; } /// /// 信件总量 /// public int OrderCountNum { get; set; } /// /// 按时办结个数 /// public int OnTimeCount { get; set; } /// /// 工单及时率 /// public string TimelinessRatio { get; set; } = "0.00"; /// /// 4小时内 /// public int ReceiveIn4Hour { get; set; } /// /// 超期办结 /// public int TimeOutField { get; set; } /// /// 超期未办结 /// public int TimeOutNoField { get; set; } /// /// 超期率 /// public string TimeOutRate => CalcRate(TimeOutNoField + TimeOutField, OrderCountNum); /// /// 超期量 /// public int TimeOutCount => TimeOutField + TimeOutNoField; /// /// 按时办结率 /// public string CloseOnTimeRate => CalcRate(OnTimeCount, OrderCountNum); /// /// 满意工单 /// public int SatisfiedCount { get; set; } /// /// 回访满意率 /// public string SatisfiedRate => CalcRate(SatisfiedCount, SatisfiedCount + NoSatisfiedCount); /// /// 不满意量 /// public int NoSatisfiedCount { get; set; } /// /// 一次办结工单 /// public int FirstFiledOrderCount { get; set; } /// /// 一次办结率 /// public string FirstFiledOrderRate => CalcRate(FirstFiledOrderCount, OrderCountNum); /// /// 二次办理个数 /// public int SecondNum { get; set; } /// /// 二次办理满意率 /// public int SecondSatisfied { get; set; } /// /// 二次办理率 /// public string SecondRate => CalcRate(SecondNum, OrderCountNum); /// /// 计算率 /// /// public string CalcRate(int Quantity, int Count) { if (Count != 0 && Quantity != 0) { return Math.Round((Quantity / (double)Count) * 100, 2) + "%"; } return "0%"; } } public class SnapshotDepartmentStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } } public class SnapshotDepartmentAveTimeStatisticsOutDto { public string OrgCode { get; set; } public object OrgName { get; set; } /// /// 工单数 /// public int OrderCountNum { get; set; } /// /// 总秒数 /// public double? TotalSeconds { get; set; } /// /// 总分钟数 /// public string TotalMinutes => TotalSeconds == null ? "0" : ((double)TotalSeconds / 60).ToString("f0"); /// /// 平均分钟数 /// public string AvgMinutes => OrderCountNum == 0 ? "0" : (double.Parse(TotalMinutes) / OrderCountNum).ToString("f2"); /// /// 平均小时数 /// public string AvgHours => OrderCountNum == 0 ? "0": (double.Parse(TotalMinutes) / 60 / OrderCountNum).ToString("f2"); } public class SnapshotDepartmentAveTimeStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } } public record SnapshotDepartmentAveTimeStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 部门编号 /// [Required] public string OrgCode { get; set; } } public class SnapshotDepartmentAveTimeStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 办理时长(秒) /// public double? AllDuration { get; set; } /// /// 办理时长(分) /// public string TotalMinutes => AllDuration == null ? "0" : ((double)AllDuration / 60).ToString("f0"); /// /// 办理时长(时) /// public string TotalHours => AllDuration == null ? "0" : ((double)AllDuration / 60 / 60).ToString("f2"); /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } } public class CompliantStatisticsInDto { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } } public class CompliantStatisticsOutDto { public string OrgCode { get; set; } /// /// 部门名称 /// public string OrgName { get; set; } /// /// 工单总数 /// public int OrderCountNum { get; set; } /// /// 首次 /// public int First { get; set; } /// /// 二次 /// public int Second { get; set; } /// /// 三次及以上 /// public int Third { get; set; } /// /// 不合规 /// public int Not { get; set; } } public record CompliantStatisticsDetailsInDto : PagedRequest { [Required] public DateTime StartTime { get; set; } [Required] public DateTime EndTime { get; set; } /// /// 字段名称 /// [Required] public string FieldName { get; set; } /// /// 部门编号 /// [Required] public string OrgCode { get; set; } } public class CompliantStatisticsDetailsOutDto { /// /// Id /// public string Id { get; set; } /// /// 过期状态 /// public EExpiredStatus? ExpiredStatus => FiledTime.CalculateExpiredState(Status, this.ExpiredTime, this.NearlyExpiredTime, this.NearlyExpiredTimeOne); /// /// 过期状态 /// public string ExpiredStatusText => ExpiredStatus.GetDescription(); /// /// 受理编号 /// public string No { get; set; } /// /// 信件状态 /// public EOrderStatus Status { get; set; } /// /// 信件状态 /// public string StatusTxt => Status.GetDescription(); /// /// 来源 /// public string SourceChannel { get; set; } /// /// 当前节点 /// public string CurrentStepName { get; set; } /// /// 重办次数 /// public int ReTransactNum { get; set; } /// /// 是否紧急 /// public bool IsUrgent { get; set; } /// /// 是否紧急 /// public string IsUrgentText => IsUrgent ? "紧急" : "-"; /// /// 期满时间 /// public DateTime? ExpiredTime { get; set; } /// /// 即将超期时间 /// public DateTime? NearlyExpiredTime { get; set; } /// /// 即将超期时间第一级 /// public DateTime? NearlyExpiredTimeOne { get; set; } /// /// 是否超期 /// public bool IsExpired { get { if (ExpiredTime.HasValue) return DateTime.Now > ExpiredTime.Value; return false; } } /// /// 受理时间 /// public DateTime CreationTime { get; set; } /// /// 标题 /// public string Title { get; set; } /// /// 办理时长(秒) /// public int? AllDuration { get; set; } /// /// 办理时长(分) /// public string TotalMinutes => AllDuration == null ? "0" : ((double)AllDuration / 60).ToString("f0"); /// /// 办理时长(时) /// public string TotalHours => AllDuration == null ? "0" : ((double)AllDuration / 60 / 60).ToString("f2"); /// /// 接办部门 /// public string ActualHandleOrgName { get; set; } /// /// 接办时间 /// public DateTime? ActualHandleTime { get; set; } /// /// 办结时间 /// public DateTime? FiledTime { get; set; } /// /// 受理类型 /// public string AcceptType { get; set; } /// /// 热点类型 /// public string HotspotName { get; set; } }