|
@@ -1902,21 +1902,28 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
}).ToListAsync();
|
|
|
var items2 = await _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
- .LeftJoin<WorkflowStepHandler>((x, w, wsh) => x.StepId == wsh.WorkflowStepId)
|
|
|
- .InnerJoin<SchedulingUser>((x, w, wsh, su) => wsh.UserId == su.UserId)
|
|
|
- .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)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.UserName), (x, w, wsh, su) => su.UserName == dto.UserName)
|
|
|
- .GroupBy((x, w, wsh, su) => new { su.UserId, su.UserName })
|
|
|
- .Having((x, w, wsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
- .Select((x, w, wsh, su) => new BiOrderSendVo
|
|
|
+ .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)
|
|
|
+ .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,
|
|
|
UserName = su.UserName,
|
|
|
SendOrderNum = 0,
|
|
|
NoSendOrderNum = 0,
|
|
|
- ReSendOrderNum = SqlFunc.AggregateDistinctCount(w.ExternalId),
|
|
|
+ ReSendOrderNum = SqlFunc.AggregateDistinctCount(wf.ExternalId),
|
|
|
}).ToListAsync();
|
|
|
|
|
|
var res = (from t1 in items
|
|
@@ -1946,25 +1953,47 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
- var quer = _workflowTraceRepository.Queryable()
|
|
|
+ var (total, items) = await _workflowTraceRepository.Queryable()
|
|
|
.LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
.LeftJoin<WorkflowStepHandler>((x, w, wsh) => x.StepId == wsh.WorkflowStepId)
|
|
|
- .InnerJoin<SchedulingUser>((x, w, wsh, su) => wsh.UserId == su.UserId)
|
|
|
+ .InnerJoin<SchedulingUser>((x, w, wsh, su) => wsh.UserId == su.UserId)
|
|
|
.Where((x, w, wsh, su) => w.ModuleCode == "OrderHandle" && x.BusinessType == EBusinessType.Send)
|
|
|
- .Where((x, w, wsh, su) => su.UserId == dto.UserId)
|
|
|
.Where((x, w, wsh, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
- .Where((x, w, wsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
- .WhereIF(dto.TitleCode == "NoSendOrderNum", (x, w, wsh, su) => x.HandlerId == null || x.HandlerId == "");
|
|
|
- if (dto.TitleCode == "ReSendOrderNum")
|
|
|
- {
|
|
|
- quer = quer.Having((x, w, wsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1);
|
|
|
- }
|
|
|
- var (total, items) = await quer.GroupBy((x, w, wsh, su)=> w.ExternalId)
|
|
|
- .Select((x, w, wsh, su) => new { Id = w.ExternalId } )
|
|
|
+ .Where((x, w, wsh, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
+ .Where((x, w, wsh, su)=> su.UserId == dto.UserId)
|
|
|
+ .WhereIF(dto.TitleCode == "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()
|
|
|
- .LeftJoin<Order>((a,b) => a.Id == b.Id)
|
|
|
- .Select((a,b)=>b)
|
|
|
+ .LeftJoin<Order>((a, b) => a.Id == b.Id)
|
|
|
+ .Select((a, b) => b)
|
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (dto.TitleCode == "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));
|
|
|
}
|
|
|
|