|
@@ -13,19 +13,14 @@ using Hotline.Share.Dtos;
|
|
|
using Hotline.Share.Dtos.Bi;
|
|
|
using Hotline.Share.Dtos.Bigscreen;
|
|
|
using Hotline.Share.Dtos.CallCenter;
|
|
|
-using Hotline.Share.Dtos.FlowEngine;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using Hotline.Share.Enums.CallCenter;
|
|
|
using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Hotline.Share.Requests;
|
|
|
using Hotline.Tools;
|
|
|
-using JiebaNet.Segmenter.Common;
|
|
|
using MapsterMapper;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
-using Microsoft.IdentityModel.Tokens;
|
|
|
-using MongoDB.Bson;
|
|
|
-using Nacos.V2.Utils;
|
|
|
using SqlSugar;
|
|
|
using System.Data;
|
|
|
using XF.Domain.Authentications;
|
|
@@ -3443,89 +3438,89 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
return ExcelStreamResult(stream, "热点受理类型明细");
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 甄别申请统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("screen-apply")]
|
|
|
- public async Task<PagedDto<OrderScreenApplyVo>> OrderScreenApply([FromQuery] OrderScreenApplyPagedRequest dto)
|
|
|
- {
|
|
|
- var (total, items) = await _orderApplication.OrderScreenApply(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
- return new PagedDto<OrderScreenApplyVo>(total, items);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 甄别申请统计导出
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpPost("screen-apply-export")]
|
|
|
- public async Task<FileStreamResult> OrderScreenApplyExport([FromBody] ExportExcelDto<OrderScreenApplyPagedRequest> dto)
|
|
|
- {
|
|
|
- var query = _orderApplication.OrderScreenApply(dto.QueryDto);
|
|
|
-
|
|
|
- List<OrderScreenApplyVo> datas;
|
|
|
- if (dto.IsExportAll)
|
|
|
- {
|
|
|
- datas = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
- datas = items;
|
|
|
- }
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
- var dtos = datas
|
|
|
- .Select(stu => _mapper.Map(stu, typeof(OrderScreenApplyVo), dynamicClass))
|
|
|
- .Cast<object>()
|
|
|
- .ToList();
|
|
|
-
|
|
|
- var stream = ExcelHelper.CreateStream(dtos);
|
|
|
- return ExcelStreamResult(stream, "甄别申请统计");
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 甄别审批统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("screen-audit")]
|
|
|
- public async Task<PagedDto<OrderScreenAuditVo>> OrderScreenAudit([FromQuery] OrderScreenAuditPagedRequest dto)
|
|
|
- {
|
|
|
- var (total, items) = await _orderApplication.OrderScreenAudit(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
- return new PagedDto<OrderScreenAuditVo>(total, items);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 甄别审批统计导出
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpPost("screen-audit-export")]
|
|
|
- public async Task<FileStreamResult> OrderScreenAuditExport([FromBody] ExportExcelDto<OrderScreenAuditPagedRequest> dto)
|
|
|
- {
|
|
|
- var query = _orderApplication.OrderScreenAudit(dto.QueryDto);
|
|
|
-
|
|
|
- List<OrderScreenAuditVo> datas;
|
|
|
- if (dto.IsExportAll)
|
|
|
- {
|
|
|
- datas = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
- datas = items;
|
|
|
- }
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
- var dtos = datas
|
|
|
- .Select(stu => _mapper.Map(stu, typeof(OrderScreenAuditVo), dynamicClass))
|
|
|
- .Cast<object>()
|
|
|
- .ToList();
|
|
|
-
|
|
|
- var stream = ExcelHelper.CreateStream(dtos);
|
|
|
- return ExcelStreamResult(stream, "甄别审批统计");
|
|
|
- }
|
|
|
+ /// <summary>
|
|
|
+ /// 甄别申请统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("screen-apply")]
|
|
|
+ public async Task<PagedDto<OrderScreenApplyVo>> OrderScreenApply([FromQuery] OrderScreenApplyPagedRequest dto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _orderApplication.OrderScreenApply(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderScreenApplyVo>(total, items);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 甄别申请统计导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("screen-apply-export")]
|
|
|
+ public async Task<FileStreamResult> OrderScreenApplyExport([FromBody] ExportExcelDto<OrderScreenApplyPagedRequest> dto)
|
|
|
+ {
|
|
|
+ var query = _orderApplication.OrderScreenApply(dto.QueryDto);
|
|
|
+
|
|
|
+ List<OrderScreenApplyVo> datas;
|
|
|
+ if (dto.IsExportAll)
|
|
|
+ {
|
|
|
+ datas = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
+ datas = items;
|
|
|
+ }
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+ var dtos = datas
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(OrderScreenApplyVo), dynamicClass))
|
|
|
+ .Cast<object>()
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
+ return ExcelStreamResult(stream, "甄别申请统计");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 甄别审批统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("screen-audit")]
|
|
|
+ public async Task<PagedDto<OrderScreenAuditVo>> OrderScreenAudit([FromQuery] OrderScreenAuditPagedRequest dto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _orderApplication.OrderScreenAudit(dto).ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderScreenAuditVo>(total, items);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 甄别审批统计导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("screen-audit-export")]
|
|
|
+ public async Task<FileStreamResult> OrderScreenAuditExport([FromBody] ExportExcelDto<OrderScreenAuditPagedRequest> dto)
|
|
|
+ {
|
|
|
+ var query = _orderApplication.OrderScreenAudit(dto.QueryDto);
|
|
|
+
|
|
|
+ List<OrderScreenAuditVo> datas;
|
|
|
+ if (dto.IsExportAll)
|
|
|
+ {
|
|
|
+ datas = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
+ datas = items;
|
|
|
+ }
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+ var dtos = datas
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(OrderScreenAuditVo), dynamicClass))
|
|
|
+ .Cast<object>()
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
+ return ExcelStreamResult(stream, "甄别审批统计");
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 未签收统计
|
|
@@ -3645,5 +3640,112 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
|
|
|
return ExcelStreamResult(stream, "未签收统计明细数据");
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 企业专席信件统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("get_enterprise_seats_report")]
|
|
|
+ public async Task<object> GetEnterpriseSeatsReport([FromQuery] EnterpriseSeatsReportRequestDto dto)
|
|
|
+ {
|
|
|
+ var items = await _orderReportApplication.GetEnterpriseSeatsReport(dto);
|
|
|
+
|
|
|
+ var total = new EnterpriseSeatsReportDto
|
|
|
+ {
|
|
|
+ UserName = "合计",
|
|
|
+ UserId = "",
|
|
|
+ UserNo = "",
|
|
|
+ TelCallNum = items.Sum(p => p.TelCallNum),
|
|
|
+ OrderNum = items.Sum(p => p.OrderNum),
|
|
|
+ };
|
|
|
+
|
|
|
+ return new { List = items, Total = total };
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 企业专席信件统计--导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("get_enterprise_seats_report_export")]
|
|
|
+ public async Task<FileStreamResult> ExportGetEnterpriseSeatsReport([FromBody] ExportExcelDto<EnterpriseSeatsReportRequestDto> dto)
|
|
|
+ {
|
|
|
+ var list = await _orderReportApplication.GetEnterpriseSeatsReport(dto.QueryDto);
|
|
|
+
|
|
|
+ //增加合计
|
|
|
+ list.Add(new EnterpriseSeatsReportDto
|
|
|
+ {
|
|
|
+ UserName = "合计",
|
|
|
+ UserId = "",
|
|
|
+ UserNo = "",
|
|
|
+ TelCallNum = list.Sum(p => p.TelCallNum),
|
|
|
+ OrderNum = list.Sum(p => p.OrderNum),
|
|
|
+ });
|
|
|
+
|
|
|
+ var orderDtos = _mapper.Map<ICollection<EnterpriseSeatsReportDto>>(list);
|
|
|
+
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+
|
|
|
+ var dtos = orderDtos
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(EnterpriseSeatsReportDto), dynamicClass))
|
|
|
+ .Cast<object>()
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
+
|
|
|
+ return ExcelStreamResult(stream, "企业专席信件统计");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 企业专席信件统计--明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("get_enterprise_seats_report_detail")]
|
|
|
+ public async Task<PagedDto<OrderDto>> GetEnterpriseSeatsReportDetail([FromQuery] EnterpriseSeatsReportRequestDto dto)
|
|
|
+ {
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var queryData = await _orderReportApplication.GetEnterpriseSeatsReportDetail(dto)
|
|
|
+ .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<List<OrderDto>>(queryData));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 企业专席信件统计--明细--导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("get_enterprise_seats_report_detail_export")]
|
|
|
+ public async Task<FileStreamResult> ExportGetEnterpriseSeatsReportDetail([FromBody] ExportExcelDto<EnterpriseSeatsReportRequestDto> dto)
|
|
|
+ {
|
|
|
+ var query = _orderReportApplication.GetEnterpriseSeatsReportDetail(dto.QueryDto);
|
|
|
+
|
|
|
+ List<OrderDto> list = new();
|
|
|
+ if (dto.IsExportAll)
|
|
|
+ {
|
|
|
+ var listData = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
+ list = _mapper.Map<List<OrderDto>>(listData);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var listData = await query.ToPageListAsync(dto.QueryDto.PageIndex, dto.QueryDto.PageSize, total, HttpContext.RequestAborted);
|
|
|
+ list = _mapper.Map<List<OrderDto>>(listData);
|
|
|
+ }
|
|
|
+
|
|
|
+ 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, "企业专席信件统计");
|
|
|
+ }
|
|
|
}
|
|
|
}
|