| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- namespace Admin.NET.Plugin.ApprovalFlow.Service;
- /// <summary>
- /// 审批统计通用筛选入参
- /// </summary>
- public class FlowStatisticsInput
- {
- /// <summary>
- /// 开始时间(按实例发起时间过滤;不传默认近 30 天)
- /// </summary>
- public DateTime? StartTime { get; set; }
- /// <summary>
- /// 结束时间
- /// </summary>
- public DateTime? EndTime { get; set; }
- /// <summary>
- /// 指定流程 Id 列表(空则全部)
- /// </summary>
- public List<long>? FlowIds { get; set; }
- /// <summary>
- /// 指定业务类型编码列表(空则全部)
- /// </summary>
- public List<string>? BizTypes { get; set; }
- /// <summary>
- /// 指定发起人所在组织 Id 列表(空则全部)
- /// </summary>
- public List<long>? InitiatorOrgIds { get; set; }
- }
- /// <summary>
- /// 概览卡片 + 趋势图
- /// </summary>
- public class FlowOverviewOutput
- {
- /// <summary>
- /// 发起总数
- /// </summary>
- public int TotalInstances { get; set; }
- /// <summary>
- /// 已完成实例数
- /// </summary>
- public int CompletedInstances { get; set; }
- /// <summary>
- /// 完成率(已完成 / 总数,0~1)
- /// </summary>
- public decimal CompletionRate { get; set; }
- /// <summary>
- /// 已完成实例的平均审批时长(小时)
- /// </summary>
- public decimal AvgDurationHours { get; set; }
- /// <summary>
- /// 超时任务数(实际耗时超过节点 timeoutHours)
- /// </summary>
- public int TimeoutTaskCount { get; set; }
- /// <summary>
- /// 超时率(超时任务 / 已处理任务,0~1)
- /// </summary>
- public decimal TimeoutRate { get; set; }
- /// <summary>
- /// 逐日趋势(发起量 / 完成量)
- /// </summary>
- public List<FlowTrendItem> DailyTrend { get; set; } = new();
- }
- /// <summary>
- /// 逐日趋势项
- /// </summary>
- public class FlowTrendItem
- {
- public string Date { get; set; } = "";
- public int StartedCount { get; set; }
- public int CompletedCount { get; set; }
- }
- /// <summary>
- /// 表①:按流程维度统计
- /// </summary>
- public class FlowByFlowOutput
- {
- public long FlowId { get; set; }
- public string? FlowCode { get; set; }
- public string FlowName { get; set; } = "";
- public string? BizType { get; set; }
- public string? BizTypeName { get; set; }
- public int TotalCount { get; set; }
- public int CompletedCount { get; set; }
- public int RunningCount { get; set; }
- public int RejectedCount { get; set; }
- /// <summary>
- /// 通过率 = 已完成 /(已完成 + 已拒绝)
- /// </summary>
- public decimal PassRate { get; set; }
- public decimal AvgDurationHours { get; set; }
- public decimal MaxDurationHours { get; set; }
- }
- /// <summary>
- /// 表②:按节点维度统计(瓶颈分析核心表)
- /// </summary>
- public class FlowByNodeOutput
- {
- public long FlowId { get; set; }
- public string? FlowCode { get; set; }
- public string FlowName { get; set; } = "";
- public string NodeId { get; set; } = "";
- public string? NodeName { get; set; }
- public string? NodeType { get; set; }
- /// <summary>
- /// 流经次数(该节点在已完成节点表中的记录数)
- /// </summary>
- public int FlowCount { get; set; }
- /// <summary>
- /// 平均停留时长(小时,仅 userTask 有意义)
- /// </summary>
- public decimal AvgDurationHours { get; set; }
- public decimal MaxDurationHours { get; set; }
- public int ApproveCount { get; set; }
- public int RejectCount { get; set; }
- public decimal RejectRate { get; set; }
- public int TimeoutCount { get; set; }
- /// <summary>
- /// 当前仍在 Pending 的任务数
- /// </summary>
- public int PendingCount { get; set; }
- /// <summary>
- /// 该节点历史上用时最长的审批人
- /// </summary>
- public string? LongestApproverName { get; set; }
- /// <summary>
- /// 该节点历史上用时最短的审批人
- /// </summary>
- public string? ShortestApproverName { get; set; }
- }
- /// <summary>
- /// 表③:按审批人维度统计
- /// </summary>
- public class FlowByApproverOutput
- {
- public long ApproverId { get; set; }
- public string ApproverName { get; set; } = "";
- public string? OrgName { get; set; }
- public int TotalAssigned { get; set; }
- public int CompletedCount { get; set; }
- public int PendingCount { get; set; }
- public decimal AvgProcessHours { get; set; }
- public int TimeoutCount { get; set; }
- public int ApproveCount { get; set; }
- public int RejectCount { get; set; }
- public int TransferCount { get; set; }
- }
- /// <summary>
- /// Top N 最慢节点(柱图数据)
- /// </summary>
- public class FlowTopSlowNodeItem
- {
- public string FlowName { get; set; } = "";
- public string NodeName { get; set; } = "";
- public decimal AvgDurationHours { get; set; }
- public int FlowCount { get; set; }
- }
|