|
@@ -2,24 +2,17 @@
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Settings.Hotspots;
|
|
|
-using Hotline.Share.Dtos.Knowledge;
|
|
|
using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
-using Hotline.Share.Enums.KnowledgeBase;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using SqlSugar;
|
|
|
using Hotline.Share.Requests;
|
|
|
-using Hotline.Users;
|
|
|
using XF.Domain.Repository;
|
|
|
-using Hotline.Caching.Services;
|
|
|
-using Hotline.Share.Dtos.CallCenter;
|
|
|
-using Microsoft.AspNetCore.Authorization;
|
|
|
using Hotline.Caching.Interfaces;
|
|
|
-using System.Data;
|
|
|
using Hotline.FlowEngine.Workflows;
|
|
|
+using Hotline.Share.Dtos.CallCenter;
|
|
|
using MapsterMapper;
|
|
|
-using Microsoft.EntityFrameworkCore.Query.Internal;
|
|
|
|
|
|
namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
@@ -68,7 +61,6 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.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)
|
|
|
-
|
|
|
.GroupBy((x, o) => new { x.ActualHandleOrgCode, o.Name })
|
|
|
.Select((x, o) => new OrderBiOrgDataListVo
|
|
|
{
|
|
@@ -78,14 +70,15 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
NoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status < 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
}).MergeTable();
|
|
|
var queryCountersign = _workflowCountersignRepository.Queryable()
|
|
|
+ .LeftJoin<WorkflowCountersignMember>((x,o)=>x.Id ==o.WorkflowCountersignId)
|
|
|
.WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, x=> x.CreationTime <= dto.EndTime)
|
|
|
- //.GroupBy((x, o) => new { o.Id, o.Name })
|
|
|
- .Select(x => new OrderBiOrgDataListVo
|
|
|
+ .GroupBy((x,o)=> o.Key)
|
|
|
+ .Select((x,o) => new OrderBiOrgDataListVo
|
|
|
{
|
|
|
- OrgId = x.Id,
|
|
|
- CounterHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonArrayLength(x.Members) > 0 && SqlFunc.JsonListObjectAny(x.Members, "IsHandled",true),1,0)),
|
|
|
- CounterNoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonArrayLength(x.Members) > 0 &&SqlFunc.JsonListObjectAny(x.Members, "IsHandled", false), 1, 0)),
|
|
|
+ OrgId = o.Key,
|
|
|
+ CounterHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(o.IsHandled,1,0)),
|
|
|
+ CounterNoHandlerExtendedNum = SqlFunc.AggregateSum(SqlFunc.IIF(!o.IsHandled, 1, 0)),
|
|
|
}).MergeTable();
|
|
|
|
|
|
var query = queryOrder.LeftJoin(queryCountersign,(or,co)=>or.OrgId == co.OrgId)
|
|
@@ -316,5 +309,25 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderBiSpecialListVo>(total, items);
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取工单特提信息列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("special_data_list/list")]
|
|
|
+ public async Task<PagedDto<OrderSpecialDto>> List([FromQuery] OrderSpecialListDto dto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _orderSpecialRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ x => x.Order.No.Contains(dto.Keyword!) || x.Order.Title.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Cause),
|
|
|
+ x => x.Cause != null && x.Cause.Equals(dto.Cause))
|
|
|
+ .WhereIF(dto.State.HasValue, x => x.State == dto.State)
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderSpecialDto>(total, _mapper.Map<IReadOnlyList<OrderSpecialDto>>(items));
|
|
|
+ }
|
|
|
}
|
|
|
}
|