|
@@ -92,36 +92,51 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
_workflowStepHandleRepository = workflowStepHandleRepository;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 部门超期统计明细
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("org_data_list_detail")]
|
|
|
- public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListDetailRequest dto)
|
|
|
- {
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
- var (total, items) = await _orderRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.QueryType == 1, x => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
- //.WhereIF(dto.QueryType== 2,) //会签已办超期
|
|
|
- .WhereIF(dto.QueryType == 3, x => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
|
|
|
- .WhereIF(string.IsNullOrEmpty(dto.OrgCode), x => x.ActualHandleOrgCode == dto.OrgCode)
|
|
|
- //.WhereIF(dto.QueryType ==4,) //会签待办超期
|
|
|
- //.MergeTable();
|
|
|
- .ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
-
|
|
|
- return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 部门超期统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("org_data_list")]
|
|
|
+ /// <summary>
|
|
|
+ /// 部门超期统计明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("org_data_list_detail")]
|
|
|
+ public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListDetailRequest dto)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
+
|
|
|
+ var quer = _orderRepository.Queryable()
|
|
|
+ .Where(x => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(dto.QueryType == 1, x => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
+ .WhereIF(dto.QueryType == 3, x => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
|
|
|
+ .WhereIF(dto.QueryType == 5, x =>
|
|
|
+ (x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) || (x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.QueryType is 1 or 3, x => x.ActualHandleOrgCode == dto.OrgCode);
|
|
|
+
|
|
|
+ if (dto.QueryType is 2 or 4 or 5)
|
|
|
+ {
|
|
|
+ var queryCountersign = _workflowCountersignRepository.Queryable()
|
|
|
+ .LeftJoin<WorkflowCountersignMember>((x, o) => x.Id == o.WorkflowCountersignId)
|
|
|
+ .Where((x, o) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(dto.QueryType == 2, (x, o) => o.IsHandled == true) //会签已办超期
|
|
|
+ .WhereIF(dto.QueryType == 4, (x, o) => o.IsHandled == false) //会签待办超期
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.QueryType is 2 or 4 or 5, (x, o) => o.Key == dto.OrgCode)
|
|
|
+ //.GroupBy((x,o)=>x.WorkflowId)
|
|
|
+ .Select((x,o)=> new { Id= x.WorkflowId })
|
|
|
+ .MergeTable();
|
|
|
+
|
|
|
+ quer = quer.InnerJoin(queryCountersign, (x, c) => x.WorkflowId == c.Id);
|
|
|
+
|
|
|
+ }
|
|
|
+ var (total, items) = await quer.ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 部门超期统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("org_data_list")]
|
|
|
public async Task<PagedDto<OrderBiOrgDataListVo>> OrgDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
@@ -145,22 +160,6 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
NoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(o.Status < EOrderStatus.Filed && o.ExpiredTime < SqlFunc.GetDate(), 1, 0)),
|
|
|
}).MergeTable();
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- //var queryOrder = _orderRepository.Queryable(false, false, false)
|
|
|
- // .LeftJoin<SystemOrganize>((x, o) => x.ActualHandleOrgCode == o.Id)
|
|
|
- // .WhereIF(dto.StartTime.HasValue, (x, o) => x.CreationTime >= dto.StartTime)
|
|
|
- // .WhereIF(dto.EndTime.HasValue, (x, o) => x.CreationTime <= dto.EndTime)
|
|
|
- // .WhereIF(IsCenter == false, (x, o) => x.ActualHandleOrgCode == _sessionContext.RequiredOrgId)
|
|
|
- // .GroupBy((x, o) => new { x.ActualHandleOrgCode, o.Name })
|
|
|
- // .Select((x, o) => new OrderBiOrgDataListVo
|
|
|
- // {
|
|
|
- // OrgName = o.Name,
|
|
|
- // OrgId = x.ActualHandleOrgCode,
|
|
|
- // HandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime, 1, 0)),
|
|
|
- // NoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate(), 1, 0)),
|
|
|
- // }).MergeTable();
|
|
|
-
|
|
|
var queryCountersign = _workflowCountersignRepository.Queryable()
|
|
|
.LeftJoin<WorkflowCountersignMember>((x, o) => x.Id == o.WorkflowCountersignId)
|
|
|
.WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
@@ -218,21 +217,22 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
var query = _orderRepository.Queryable(false, false, false)
|
|
|
- .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.AcceptorName.Contains(dto.Keyword!))
|
|
|
- .GroupBy(x => new { x.AcceptorId, x.AcceptorName })
|
|
|
- .Select(x => new OrderBiCentreDataListVo
|
|
|
+ .WhereIF(dto.StartTime.HasValue, it => it.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, it => it.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), it => it.SignerName.Contains(dto.Keyword!))
|
|
|
+ .GroupBy(it => new { it.SignerId, it.SignerName })
|
|
|
+ .Select(it => new OrderBiCentreDataListVo
|
|
|
{
|
|
|
- UserName = x.AcceptorName,
|
|
|
- UserId = x.AcceptorId,
|
|
|
+ UserName = it.SignerName,
|
|
|
+ UserId = it.SignerId,
|
|
|
//Subtotal = SqlFunc.AggregateCount(x.AcceptorId),
|
|
|
- CentreArchive = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ProcessType == EProcessType.Zhiban, 1, 0)),
|
|
|
- CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ProcessType == EProcessType.Jiaoban, 1, 0)),
|
|
|
+ CentreArchive = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ProcessType == EProcessType.Zhiban, 1, 0)),
|
|
|
+ //CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ProcessType == EProcessType.Jiaoban, 1, 0)),
|
|
|
+ CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF((it.Status >= EOrderStatus.Filed && it.ProcessType == EProcessType.Jiaoban),1,0)),
|
|
|
//NoCentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status < 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
- Invalid = SqlFunc.AggregateSum(SqlFunc.IIF(x.AcceptType == "无效", 1, 0)),
|
|
|
- Repeat = SqlFunc.AggregateSum(SqlFunc.IIF(x.DuplicateIds != null && SqlFunc.JsonArrayLength(x.DuplicateIds) > 0, 1, 0)),
|
|
|
- Subtotal = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed || x.AcceptType == "无效" || (x.DuplicateIds != null && SqlFunc.JsonArrayLength(x.DuplicateIds) > 0), 1, 0))
|
|
|
+ Invalid = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptType == "无效", 1, 0)),
|
|
|
+ Repeat = SqlFunc.AggregateSum(SqlFunc.IIF(it.DuplicateIds != null && SqlFunc.JsonArrayLength(it.DuplicateIds) > 0, 1, 0)),
|
|
|
+ Subtotal = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed || it.AcceptType == "无效" || (it.DuplicateIds != null && SqlFunc.JsonArrayLength(it.DuplicateIds) > 0), 1, 0))
|
|
|
}).MergeTable();
|
|
|
switch (dto.SortField)
|
|
|
{
|
|
@@ -255,6 +255,12 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
query = dto.SortRule == 0 ? query.OrderBy(x => x.Subtotal) : query.OrderByDescending(x => x.Subtotal);
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ if (string.IsNullOrEmpty(dto.SortField))
|
|
|
+ {
|
|
|
+ query = query.OrderByDescending(x => x.Subtotal);
|
|
|
+ }
|
|
|
+
|
|
|
var (total, items) = await query.Where(x => (x.CentreArchive + x.CentreCareOf + x.Invalid + x.Repeat) != 0).ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderBiCentreDataListVo>(total, items);
|
|
|
}
|
|
@@ -502,12 +508,38 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 特提统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("special_data_list")]
|
|
|
+ /// <summary>
|
|
|
+ /// 部门延期统计明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("order-delay-data-detail")]
|
|
|
+ public async Task<PagedDto<OrderDelayDto>> QueryOrderDelayDataDetail([FromQuery] QueryOrderDelayDataDetailRequest dto)
|
|
|
+ {
|
|
|
+ if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
+
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+
|
|
|
+ var (total, items) = await _orderDelayRepository.Queryable()
|
|
|
+ .Includes(x=>x.Order)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgCode), x => x.ApplyOrgCode == dto.OrgCode)
|
|
|
+ .WhereIF(dto.Type is 1, x=> x.DelayState == EDelayState.Pass)
|
|
|
+ .WhereIF(dto.Type is 2, x => x.DelayState == EDelayState.NoPass)
|
|
|
+ .WhereIF(dto.Type is 3, x => x.DelayState == EDelayState.Examining)
|
|
|
+ .WhereIF(dto.Type is 4, x => x.DelayState < EDelayState.Withdraw)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ return new PagedDto<OrderDelayDto>(total, _mapper.Map<IReadOnlyList<OrderDelayDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 特提统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("special_data_list")]
|
|
|
public async Task<PagedDto<OrderBiSpecialListVo>> SpecialDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
@@ -2524,8 +2556,15 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
|
|
|
dto.EndDate = dto.EndDate.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
+ List<string> filterTitle = new List<string>();
|
|
|
+ filterTitle.Add("无声");
|
|
|
+ filterTitle.Add("骚扰");
|
|
|
+ filterTitle.Add("错拨");
|
|
|
+ filterTitle.Add("测试");
|
|
|
+
|
|
|
var (total, items) = await _orderRepository.Queryable()
|
|
|
.Where(x => x.CreationTime >= dto.StartDate && x.CreationTime <= dto.EndDate)
|
|
|
+ .Where(x => filterTitle.Any(s => x.Title.Contains(s)) == false)
|
|
|
.LeftJoin<SystemArea>((it, o) => it.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == o.Id)
|
|
|
.WhereIF(dto.AreaCodes.Any(), (it, o) => dto.AreaCodes.Contains(it.AreaCode)) //区域
|
|
|
.WhereIF(dto.HotspotIds.Any(), (it, o) => dto.HotspotIds.Contains(it.HotspotId)) //热点类型
|
|
@@ -2580,6 +2619,12 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
public async Task<PagedDto<OrderDto>> HighMatterWarningDetail([FromQuery] HighMatterWarningDetailRequest dto)
|
|
|
{
|
|
|
dto.EndDate = dto.EndDate.AddDays(1).AddSeconds(-1);
|
|
|
+ List<string> filterTitle = new List<string>();
|
|
|
+ filterTitle.Add("无声");
|
|
|
+ filterTitle.Add("骚扰");
|
|
|
+ filterTitle.Add("错拨");
|
|
|
+ filterTitle.Add("测试");
|
|
|
+
|
|
|
var (total, items) = await _orderRepository.Queryable()
|
|
|
.Includes(x => x.OrderScreens)
|
|
|
.Where(d => d.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
|
|
@@ -2587,6 +2632,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.Where(d => d.CreationTime >= dto.StartDate) //受理时间开始
|
|
|
.Where(d => d.CreationTime <= dto.EndDate) //受理时间结束
|
|
|
.Where(d => d.AreaCode == dto.AreaCode) //区域
|
|
|
+ .Where(x => filterTitle.Any(s => x.Title.Contains(s)) == false)
|
|
|
.OrderByDescending(d => d.CreationTime)
|
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|