|
@@ -1757,8 +1757,36 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.MergeTable();
|
|
|
#endregion
|
|
|
|
|
|
- return await _orderRepository.OrderUnionAll(queryOrder, queryPublish, queryCountersign, orderDelay, orderScreen, orderVisit);
|
|
|
+ var items = await _orderRepository.OrderUnionAll(queryOrder, queryPublish, queryCountersign, orderDelay, orderScreen, orderVisit);
|
|
|
|
|
|
+ var total = new DepartmentalProcessingStatisticsDataDto
|
|
|
+ {
|
|
|
+ OrgCode = "",
|
|
|
+ OrgName = "合计",
|
|
|
+ OrgType = EOrgType.City,
|
|
|
+ OrderCountNum = items.Sum(p => p.OrderCountNum),
|
|
|
+ YBOrderCountNum = items.Sum(p => p.YBOrderCountNum),
|
|
|
+ ZBOrderCountNum = items.Sum(p => p.ZBOrderCountNum),
|
|
|
+ Archived = items.Sum(p => p.Archived),
|
|
|
+ ToBeArchived = items.Sum(p => p.ToBeArchived),
|
|
|
+ WaitPublished = items.Sum(p => p.WaitPublished),
|
|
|
+ PublishedOpen = items.Sum(p => p.PublishedOpen),
|
|
|
+ PublishedNoOpen = items.Sum(p => p.PublishedNoOpen),
|
|
|
+ YBOverdue = items.Sum(p => p.YBOverdue),
|
|
|
+ ZBOverdue = items.Sum(p => p.ZBOverdue),
|
|
|
+ HQYBOverdue = items.Sum(p => p.HQYBOverdue),
|
|
|
+ HQZBOverdue = items.Sum(p => p.HQZBOverdue),
|
|
|
+ DelayEnd = items.Sum(p => p.DelayEnd),
|
|
|
+ DelayWait = items.Sum(p => p.DelayWait),
|
|
|
+ OrderDelayCount = items.Sum(p => p.OrderDelayCount),
|
|
|
+ ScreenCount = items.Sum(p => p.ScreenCount),
|
|
|
+ ScreenApproval = items.Sum(p => p.ScreenApproval),
|
|
|
+ ScreenPass = items.Sum(p => p.ScreenPass),
|
|
|
+ ScreenNotPass = items.Sum(p => p.ScreenNotPass),
|
|
|
+ SatisfactionCount = items.Sum(p => p.SatisfactionCount),
|
|
|
+ NotSatisfactionCount = items.Sum(p => p.NotSatisfactionCount)
|
|
|
+ };
|
|
|
+ return new { List = items, Total = total };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2043,8 +2071,35 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.MergeTable();
|
|
|
#endregion
|
|
|
|
|
|
- return await _orderRepository.OrderUnionAll(queryOrder, queryPublish, queryCountersign, orderDelay, orderScreen, orderVisit);
|
|
|
-
|
|
|
+ var items = await _orderRepository.OrderUnionAll(queryOrder, queryPublish, queryCountersign, orderDelay, orderScreen, orderVisit);
|
|
|
+ var total = new DepartmentalProcessingStatisticsDataDto
|
|
|
+ {
|
|
|
+ OrgCode = "",
|
|
|
+ OrgName = "合计",
|
|
|
+ OrgType = EOrgType.City,
|
|
|
+ OrderCountNum = items.Sum(p => p.OrderCountNum),
|
|
|
+ YBOrderCountNum = items.Sum(p => p.YBOrderCountNum),
|
|
|
+ ZBOrderCountNum = items.Sum(p => p.ZBOrderCountNum),
|
|
|
+ Archived = items.Sum(p => p.Archived),
|
|
|
+ ToBeArchived = items.Sum(p => p.ToBeArchived),
|
|
|
+ WaitPublished = items.Sum(p => p.WaitPublished),
|
|
|
+ PublishedOpen = items.Sum(p => p.PublishedOpen),
|
|
|
+ PublishedNoOpen = items.Sum(p => p.PublishedNoOpen),
|
|
|
+ YBOverdue = items.Sum(p => p.YBOverdue),
|
|
|
+ ZBOverdue = items.Sum(p => p.ZBOverdue),
|
|
|
+ HQYBOverdue = items.Sum(p => p.HQYBOverdue),
|
|
|
+ HQZBOverdue = items.Sum(p => p.HQZBOverdue),
|
|
|
+ DelayEnd = items.Sum(p => p.DelayEnd),
|
|
|
+ DelayWait = items.Sum(p => p.DelayWait),
|
|
|
+ OrderDelayCount = items.Sum(p => p.OrderDelayCount),
|
|
|
+ ScreenCount = items.Sum(p => p.ScreenCount),
|
|
|
+ ScreenApproval = items.Sum(p => p.ScreenApproval),
|
|
|
+ ScreenPass = items.Sum(p => p.ScreenPass),
|
|
|
+ ScreenNotPass = items.Sum(p => p.ScreenNotPass),
|
|
|
+ SatisfactionCount = items.Sum(p => p.SatisfactionCount),
|
|
|
+ NotSatisfactionCount = items.Sum(p => p.NotSatisfactionCount)
|
|
|
+ };
|
|
|
+ return new { List = items, Total = total };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2271,7 +2326,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
|
|
|
return new PagedDto<OrderDto>(total, dtos);
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
#endregion
|
|
|
|
|
|
return new PagedDto<OrderDto>(total, new List<OrderDto>());
|
|
@@ -2572,19 +2627,19 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
.LeftJoin<WorkflowStepHandler>((x, w, wfsh) => x.StepId == wfsh.WorkflowStepId)
|
|
|
.InnerJoin<SchedulingUser>((x, w, wfsh, su) => wfsh.UserId == su.UserId)
|
|
|
- .Where((x, w, wfsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
+ .Where((x, w, wfsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
.Where((x, w, wfsh, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
.Where((x, w, wfsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
- .GroupBy((x, w, wfsh, su) =>x.WorkflowId)
|
|
|
+ .GroupBy((x, w, wfsh, su) => x.WorkflowId)
|
|
|
.Having((x, w, wfsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
.Select((x, w, wfsh, su) => new { Id = x.WorkflowId })
|
|
|
.MergeTable()
|
|
|
- .LeftJoin<WorkflowTrace>((a,wt)=>a.Id == wt.WorkflowId)
|
|
|
+ .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId)
|
|
|
.LeftJoin<Workflow>((a, wt, wf) => wt.WorkflowId == wf.Id)
|
|
|
- .LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId)
|
|
|
- .InnerJoin<SchedulingUser>((a,wt, wf, wsh, su) => wsh.UserId == su.UserId)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.UserName), ((a, wt, wf, wsh, su) => su.UserName == dto.UserName))
|
|
|
- .GroupBy((a, wt, wf, wsh, su) => new { su.UserId, su.UserName })
|
|
|
+ .LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId)
|
|
|
+ .InnerJoin<SchedulingUser>((a, wt, wf, wsh, su) => wsh.UserId == su.UserId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.UserName), ((a, wt, wf, wsh, su) => su.UserName == dto.UserName))
|
|
|
+ .GroupBy((a, wt, wf, wsh, su) => new { su.UserId, su.UserName })
|
|
|
.Select((a, wt, wf, wsh, su) => new BiOrderSendVo
|
|
|
{
|
|
|
UserId = su.UserId,
|
|
@@ -2616,10 +2671,11 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("send_order_detail_report")]
|
|
|
- public async Task<PagedDto<OrderDto>> QuerySendOrderDetail([FromQuery] QuerySendOrderDetailRequest dto) {
|
|
|
- if (!dto.StartTime.HasValue || !dto.EndTime.HasValue)
|
|
|
- throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+ public async Task<PagedDto<OrderDto>> QuerySendOrderDetail([FromQuery] QuerySendOrderDetailRequest dto)
|
|
|
+ {
|
|
|
+ if (!dto.StartTime.HasValue || !dto.EndTime.HasValue)
|
|
|
+ throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
var (total, items) = await _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
@@ -2628,8 +2684,8 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.Where((x, w, wsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
.Where((x, w, wsh, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
.Where((x, w, wsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
- .Where((x, w, wsh, su)=> su.UserId == dto.UserId)
|
|
|
- .WhereIF(dto.TitleCode.ToUpper() == "NOSENDORDERNUM", (x, w, wsh, su) => x.HandlerId == null || x.HandlerId == "")
|
|
|
+ .Where((x, w, wsh, su) => su.UserId == dto.UserId)
|
|
|
+ .WhereIF(dto.TitleCode.ToUpper() == "NOSENDORDERNUM", (x, w, wsh, su) => x.HandlerId == null || x.HandlerId == "")
|
|
|
.GroupBy((x, w, wsh, su) => w.ExternalId)
|
|
|
.Select((x, w, wsh, su) => new { Id = w.ExternalId })
|
|
|
.MergeTable()
|
|
@@ -2637,35 +2693,35 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.Select((a, b) => b)
|
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
|
|
|
- if (dto.TitleCode.ToUpper() == "RESENDORDERNUM")
|
|
|
- {
|
|
|
- (total, items) = await _workflowTraceRepository.Queryable()
|
|
|
- .LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
- .LeftJoin<WorkflowStepHandler>((x, w, wfsh) => x.StepId == wfsh.WorkflowStepId)
|
|
|
- .InnerJoin<SchedulingUser>((x, w, wfsh, su) => wfsh.UserId == su.UserId)
|
|
|
- .Where((x, w, wfsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
- .Where((x, w, wfsh, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
- .Where((x, w, wfsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
- .GroupBy((x, w, wfsh, su) => x.WorkflowId)
|
|
|
- .Having((x, w, wfsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
- .Select((x, w, wfsh, su) => new { Id = x.WorkflowId })
|
|
|
- .MergeTable()
|
|
|
- .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId)
|
|
|
- .LeftJoin<Workflow>((a, wt, wf) => wt.WorkflowId == wf.Id)
|
|
|
- .LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId)
|
|
|
- .InnerJoin<SchedulingUser>((a, wt, wf, wsh, su) => wsh.UserId == su.UserId)
|
|
|
- .Where((a, wt, wf, wsh, su) => su.UserId == dto.UserId)
|
|
|
- .GroupBy((a, wt, wf, wsh, su) => wf.ExternalId)
|
|
|
- .Select((a, wt, wf, wsh, su) => new { Id = wf.ExternalId })
|
|
|
- .MergeTable()
|
|
|
- .LeftJoin<Order>((a, b) => a.Id == b.Id)
|
|
|
- .Select((a, b) => b)
|
|
|
- .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ if (dto.TitleCode.ToUpper() == "RESENDORDERNUM")
|
|
|
+ {
|
|
|
+ (total, items) = await _workflowTraceRepository.Queryable()
|
|
|
+ .LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
+ .LeftJoin<WorkflowStepHandler>((x, w, wfsh) => x.StepId == wfsh.WorkflowStepId)
|
|
|
+ .InnerJoin<SchedulingUser>((x, w, wfsh, su) => wfsh.UserId == su.UserId)
|
|
|
+ .Where((x, w, wfsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
+ .Where((x, w, wfsh, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
+ .Where((x, w, wfsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
+ .GroupBy((x, w, wfsh, su) => x.WorkflowId)
|
|
|
+ .Having((x, w, wfsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
+ .Select((x, w, wfsh, su) => new { Id = x.WorkflowId })
|
|
|
+ .MergeTable()
|
|
|
+ .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId)
|
|
|
+ .LeftJoin<Workflow>((a, wt, wf) => wt.WorkflowId == wf.Id)
|
|
|
+ .LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId)
|
|
|
+ .InnerJoin<SchedulingUser>((a, wt, wf, wsh, su) => wsh.UserId == su.UserId)
|
|
|
+ .Where((a, wt, wf, wsh, su) => su.UserId == dto.UserId)
|
|
|
+ .GroupBy((a, wt, wf, wsh, su) => wf.ExternalId)
|
|
|
+ .Select((a, wt, wf, wsh, su) => new { Id = wf.ExternalId })
|
|
|
+ .MergeTable()
|
|
|
+ .LeftJoin<Order>((a, b) => a.Id == b.Id)
|
|
|
+ .Select((a, b) => b)
|
|
|
+ .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
}
|