private async Task <List <Approver> > GetApproverByNameAsync(ApproverRequest approverRequest)
        {
            DbTransaction trans                = _sqlserverSql.Ado.TransactionCurrentThread;
            var           mainData             = new List <Approver>();
            var           approvalCommentsmain = _sqlserverSql.Select <ApprovalComments>().Distinct().Where(a =>
                                                                                                            a.AType == approverRequest.LinkDetailName).WithTransaction(trans);
            var approvalCommentsdata = await approvalCommentsmain.ToListAsync(a => new { a.ApprovalID, a.ApprovalName });

            //循环这些审批意见,添加到list中,如果有重复的 增加usedtime 得出总的消耗时间
            for (int i = 0; i < approvalCommentsdata.Count; i++)
            {
                var DeptCode = await _sqlserverSql.Select <FlowEmployee>().Where(f =>
                                                                                 f.employeecode == approvalCommentsdata[i].ApprovalID
                                                                                 ).ToListAsync(a => a.orgcode);

                var deptcodeinfo = string.Join(",", (await _sqlserverSql.Select <Organization>().Where(o => DeptCode.Contains(o.Guid)).WithTransaction(trans).ToListAsync(a => a.Name)));

                var isExistJobNumber = mainData.Where(o => o.JobNumber == approvalCommentsdata[i].ApprovalID);
                if (!isExistJobNumber.Any())
                {
                    //求出这个人的总单据
                    var billinfo = await GetBillInfoMain(new Approver_BillInfoRequest
                    {
                        BeginDate = approverRequest.BeginDate,
                        EndDate   = approverRequest.EndDate,
                        JobNumber = approvalCommentsdata[i].ApprovalID,
                        Limit     = 0,
                        Page      = 0
                    }, trans);

                    if (billinfo.data != null)
                    {
                        mainData.Add(new Approver
                        {
                            AllUsedTime     = billinfo.data.AllTimeUsed,
                            ApproverName    = approvalCommentsdata[i].ApprovalName,
                            AvgTimeSpanTime = billinfo.data.AllTimeSpanUsed / billinfo.data.Total,
                            AvgUsedTime     = CommonHelper.GetUsedTime(billinfo.data.AllTimeSpanUsed / billinfo.data.Total),
                            JobNumber       = approvalCommentsdata[i].ApprovalID,
                            DeptInfo        = deptcodeinfo,
                            AllTimeSpanUsed = billinfo.data.AllTimeSpanUsed,
                            BillCount       = billinfo.data.Total
                        });
                    }
                }
            }

            return(mainData);
        }
        public async Task <ApproverResponse> GetApproverInfo(ApproverRequest approverRequest)
        {
            var result = new ApproverResponse();

            if (approverRequest == null)
            {
                result.code    = -1;
                result.message = "请检查入参";
                _ = Task.Run(() =>
                {
                    CommonHelper.TxtLog("统计审批人出参", JsonConvert.SerializeObject(result));
                });
                return(result);
            }
            try
            {
                CommonHelper.TxtLog("统计审批人入参", JsonConvert.SerializeObject(approverRequest));
                var mainData = new List <Approver>();
                if (approverRequest.Page == 0 || approverRequest.Limit == 0)
                {
                    approverRequest.Page  = 1;
                    approverRequest.Limit = 10;
                }
                var amountpage  = approverRequest.Page;
                var amountlimit = approverRequest.Limit;
                //判断选择的单据类型
                switch (approverRequest.LinkDetailName)
                {
                case "全部流程":
                    //全部单据
                    mainData = await GetAllApproverAsync(approverRequest);

                    break;

                default:
                    //根据流程名获取人
                    mainData = await GetApproverByNameAsync(approverRequest);

                    break;
                }
                //超出时间限制
                if (approverRequest.OverDayCount != 0)
                {
                    mainData = mainData.Where(o => o.AvgTimeSpanTime.TotalSeconds >= approverRequest.OverDayCount * 24 * 60 * 60).ToList();
                }

                var totals = mainData.Count();
                mainData       = mainData.Skip((amountpage - 1) * amountlimit).Take(amountlimit).ToList();
                result.code    = 0;
                result.message = "获取数据成功";
                result.data    = new ApproverData
                {
                    Total = totals,
                    Items = mainData
                };
                return(result);
            }
            catch (Exception ex)
            {
                result.code    = -1;
                result.message = "获取数据失败" + ex.Message;
                _ = Task.Run(() =>
                {
                    CommonHelper.TxtLog("统计审批人出参", JsonConvert.SerializeObject(result));
                    CommonHelper.TxtLog("异常错误信息", JsonConvert.SerializeObject(ex));
                });
                return(result);
            }
        }