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