|
@@ -170,10 +170,10 @@ namespace Hotline.Api.Controllers.Bi
|
|
[HttpGet("org_data_list_detail_all")]
|
|
[HttpGet("org_data_list_detail_all")]
|
|
public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListAllDetailRequest dto)
|
|
public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListAllDetailRequest dto)
|
|
{
|
|
{
|
|
- var quer = _orderApplication.QueryOrgDataListDetail(dto);
|
|
|
|
- var (total, items) = await quer.ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
|
|
|
+ var quer = _orderApplication.QueryOrgDataListDetail(dto);
|
|
|
|
+ var (total, items) = await quer.ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
|
|
|
- return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -183,30 +183,30 @@ namespace Hotline.Api.Controllers.Bi
|
|
[HttpPost("org_data_list_detail_all/_export")]
|
|
[HttpPost("org_data_list_detail_all/_export")]
|
|
public async Task<FileStreamResult> OrgDataListDetailExport([FromBody] ExportExcelDto<OrgDataListAllDetailRequest> dto)
|
|
public async Task<FileStreamResult> OrgDataListDetailExport([FromBody] ExportExcelDto<OrgDataListAllDetailRequest> dto)
|
|
{
|
|
{
|
|
- var query = _orderApplication.QueryOrgDataListDetail(dto.QueryDto);
|
|
|
|
- List<Order> data;
|
|
|
|
- if (dto.IsExportAll)
|
|
|
|
- {
|
|
|
|
- data = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
|
- data = items;
|
|
|
|
- }
|
|
|
|
|
|
+ var query = _orderApplication.QueryOrgDataListDetail(dto.QueryDto);
|
|
|
|
+ List<Order> data;
|
|
|
|
+ if (dto.IsExportAll)
|
|
|
|
+ {
|
|
|
|
+ data = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
|
+ data = items;
|
|
|
|
+ }
|
|
|
|
|
|
- var dataDtos = _mapper.Map<ICollection<OrderDto>>(data);
|
|
|
|
|
|
+ var dataDtos = _mapper.Map<ICollection<OrderDto>>(data);
|
|
|
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
|
|
|
- var dtos = dataDtos
|
|
|
|
- .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
|
|
|
|
- .Cast<object>()
|
|
|
|
- .ToList();
|
|
|
|
|
|
+ var dtos = dataDtos
|
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
|
|
|
|
+ .Cast<object>()
|
|
|
|
+ .ToList();
|
|
|
|
|
|
- var stream = ExcelHelper.CreateStream(dtos);
|
|
|
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
|
|
|
- return ExcelStreamResult(stream, "部门超期统计明细数据");
|
|
|
|
|
|
+ return ExcelStreamResult(stream, "部门超期统计明细数据");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -217,19 +217,19 @@ namespace Hotline.Api.Controllers.Bi
|
|
[HttpGet("org_data_list_detail_all/base-data")]
|
|
[HttpGet("org_data_list_detail_all/base-data")]
|
|
public async Task<object> BaseData()
|
|
public async Task<object> BaseData()
|
|
{
|
|
{
|
|
- var rsp = new
|
|
|
|
- {
|
|
|
|
- OrderStatusOptions = EnumExts.GetDescriptions<EOrderStatus>()
|
|
|
|
- };
|
|
|
|
- return rsp;
|
|
|
|
|
|
+ var rsp = new
|
|
|
|
+ {
|
|
|
|
+ OrderStatusOptions = EnumExts.GetDescriptions<EOrderStatus>()
|
|
|
|
+ };
|
|
|
|
+ return rsp;
|
|
}
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
|
- /// 部门超期统计
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="dto"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [HttpGet("org_data_list")]
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 部门超期统计
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("org_data_list")]
|
|
public async Task<PagedDto<OrderBiOrgDataListVo>> OrgDataList([FromQuery] ReportPagedRequest dto)
|
|
public async Task<PagedDto<OrderBiOrgDataListVo>> OrgDataList([FromQuery] ReportPagedRequest dto)
|
|
{
|
|
{
|
|
var query = _orderApplication.QueryOrgDataList(dto);
|
|
var query = _orderApplication.QueryOrgDataList(dto);
|
|
@@ -1796,7 +1796,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
|
|
|
var queryData = await _orderReportApplication.GetDepartmentalProcessingStatisticsListNew(dto, HttpContext.RequestAborted)
|
|
var queryData = await _orderReportApplication.GetDepartmentalProcessingStatisticsListNew(dto, HttpContext.RequestAborted)
|
|
.LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
.LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
- .OrderByDescending((x, o) =>o.CreationTime)
|
|
|
|
|
|
+ .OrderByDescending((x, o) => o.CreationTime)
|
|
.Select((x, o) => new { o })
|
|
.Select((x, o) => new { o })
|
|
.ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
.ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
|
|
|
|
@@ -1854,6 +1854,74 @@ namespace Hotline.Api.Controllers.Bi
|
|
return ExcelStreamResult(stream, "部门办件统计明细数据");
|
|
return ExcelStreamResult(stream, "部门办件统计明细数据");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 部门办件统计明细表
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("departmental_processing_statistics_details_list")]
|
|
|
|
+ public async Task<PagedDto<OrderDto>> DepartmentalProcessingStatisticsDetailsList([FromQuery] DepartmentalProcessingStatisticsRequest dto)
|
|
|
|
+ {
|
|
|
|
+ RefAsync<int> total = 0;
|
|
|
|
+
|
|
|
|
+ var queryData = await _orderReportApplication.DepartmentalProcessingStatisticsDetailsList(dto)
|
|
|
|
+ .LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
|
|
+ .OrderByDescending((x, o) => o.CreationTime)
|
|
|
|
+ .Select((x, o) => new { o })
|
|
|
|
+ .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
|
|
+
|
|
|
|
+ var dtos = queryData.Select(d =>
|
|
|
|
+ {
|
|
|
|
+ var dto = _mapper.Map<OrderDto>(d.o);
|
|
|
|
+ return dto;
|
|
|
|
+ }).ToList();
|
|
|
|
+ return new PagedDto<OrderDto>(total, dtos);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 部门办件统计明细表--导出
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("departmental_processing_statistics_details_list_export")]
|
|
|
|
+ public async Task<FileStreamResult> ExportDepartmentalProcessingStatisticsDetailsList([FromBody] ExportExcelDto<DepartmentalProcessingStatisticsRequest> dto)
|
|
|
|
+ {
|
|
|
|
+ var query = _orderReportApplication.DepartmentalProcessingStatisticsDetailsList(dto.QueryDto)
|
|
|
|
+ .LeftJoin<Order>((x, o) => x.Id == o.Id)
|
|
|
|
+ .OrderByDescending((x, o) => o.CreationTime)
|
|
|
|
+ .Select((x, o) => new { o });
|
|
|
|
+ var list = new List<OrderDto>();
|
|
|
|
+ if (dto.IsExportAll)
|
|
|
|
+ {
|
|
|
|
+ var listData = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
|
+ list = listData.Select(d =>
|
|
|
|
+ {
|
|
|
|
+ var dto = _mapper.Map<OrderDto>(d.o);
|
|
|
|
+ return dto;
|
|
|
|
+ }).ToList();
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ RefAsync<int> total = 0;
|
|
|
|
+ var listData = await query.ToPageListAsync(dto.QueryDto.PageIndex, dto.QueryDto.PageSize, total, HttpContext.RequestAborted);
|
|
|
|
+ list = listData.Select(d =>
|
|
|
|
+ {
|
|
|
|
+ var dto = _mapper.Map<OrderDto>(d.o);
|
|
|
|
+ return dto;
|
|
|
|
+ }).ToList();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
|
+
|
|
|
|
+ var dtos = list
|
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(OrderDto), dynamicClass))
|
|
|
|
+ .Cast<object>()
|
|
|
|
+ .ToList();
|
|
|
|
+
|
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
|
+
|
|
|
|
+ return ExcelStreamResult(stream, "部门办件统计明细表数据");
|
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 高频来电统计
|
|
/// 高频来电统计
|
|
@@ -2918,28 +2986,33 @@ namespace Hotline.Api.Controllers.Bi
|
|
/// <param name="dto"></param>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
[HttpGet("hotspot-area-statistics")]
|
|
[HttpGet("hotspot-area-statistics")]
|
|
- public async Task<object> HotspotAndAreaStatistics([FromQuery]HotspotAndAreaStatisticsReq dto)
|
|
|
|
|
|
+ public async Task<object> HotspotAndAreaStatistics([FromQuery] HotspotAndAreaStatisticsReq dto)
|
|
{
|
|
{
|
|
dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
var areaList = await _systemOrganizeRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 6).ToListAsync();
|
|
var areaList = await _systemOrganizeRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 6).ToListAsync();
|
|
List<dynamic> list = new List<dynamic>();
|
|
List<dynamic> list = new List<dynamic>();
|
|
foreach (var item in areaList)
|
|
foreach (var item in areaList)
|
|
{
|
|
{
|
|
- var table =await _orderRepository.Queryable()
|
|
|
|
|
|
+ var table = await _orderRepository.Queryable()
|
|
.Where(x => x.CreationTime >= dto.StartTime && x.CreationTime < dto.EndTime && x.AreaCode.StartsWith(item.Id))
|
|
.Where(x => x.CreationTime >= dto.StartTime && x.CreationTime < dto.EndTime && x.AreaCode.StartsWith(item.Id))
|
|
- .GroupByIF(dto.HotspotLevel == 1, x => new {
|
|
|
|
|
|
+ .GroupByIF(dto.HotspotLevel == 1, x => new
|
|
|
|
+ {
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("2"))
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("2"))
|
|
})
|
|
})
|
|
- .GroupByIF(dto.HotspotLevel == 2, x => new {
|
|
|
|
|
|
+ .GroupByIF(dto.HotspotLevel == 2, x => new
|
|
|
|
+ {
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("4"))
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("4"))
|
|
})
|
|
})
|
|
- .GroupByIF(dto.HotspotLevel == 3, x => new {
|
|
|
|
|
|
+ .GroupByIF(dto.HotspotLevel == 3, x => new
|
|
|
|
+ {
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
})
|
|
})
|
|
- .GroupByIF(dto.HotspotLevel == 4, x => new {
|
|
|
|
- HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"),SqlFunc.MappingColumn<int>("8"))
|
|
|
|
|
|
+ .GroupByIF(dto.HotspotLevel == 4, x => new
|
|
|
|
+ {
|
|
|
|
+ HotspotId = x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("8"))
|
|
})
|
|
})
|
|
- .Select(x => new {
|
|
|
|
|
|
+ .Select(x => new
|
|
|
|
+ {
|
|
HotspotId = SqlFunc.IIF(dto.HotspotLevel == 1, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("2")),
|
|
HotspotId = SqlFunc.IIF(dto.HotspotLevel == 1, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("2")),
|
|
SqlFunc.IIF(dto.HotspotLevel == 2, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("4")),
|
|
SqlFunc.IIF(dto.HotspotLevel == 2, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("4")),
|
|
SqlFunc.IIF(dto.HotspotLevel == 3, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
SqlFunc.IIF(dto.HotspotLevel == 3, x.HotspotId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
@@ -2947,11 +3020,11 @@ namespace Hotline.Api.Controllers.Bi
|
|
Key = item.Id,
|
|
Key = item.Id,
|
|
AreaName = item.AreaName,
|
|
AreaName = item.AreaName,
|
|
Count = 1//SqlFunc.AggregateSum(SqlFunc.IIF(x.Hotspot.))
|
|
Count = 1//SqlFunc.AggregateSum(SqlFunc.IIF(x.Hotspot.))
|
|
- }).ToPivotListAsync(x=>x.Key,x=> new { x.HotspotId,x.AreaName},x=>x.Sum(x=> x.Count));
|
|
|
|
|
|
+ }).ToPivotListAsync(x => x.Key, x => new { x.HotspotId, x.AreaName }, x => x.Sum(x => x.Count));
|
|
list.AddRange(table);
|
|
list.AddRange(table);
|
|
}
|
|
}
|
|
|
|
|
|
- return new { AreaList = areaList,Data = list};
|
|
|
|
|
|
+ return new { AreaList = areaList, Data = list };
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|