|
@@ -7,6 +7,8 @@ using Hotline.Application.Quality;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
using Hotline.Share.Dtos.Quality;
|
|
|
using Hotline.Tools;
|
|
|
+using Hotline.Quality;
|
|
|
+using Hotline.Share.Enums.Quality;
|
|
|
|
|
|
namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
@@ -14,13 +16,18 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly IQualityApplication _qualityApplication;
|
|
|
+ private readonly IQualityRepository _qualityRepository;
|
|
|
+
|
|
|
+
|
|
|
public BiQualityController(
|
|
|
IMapper mapper,
|
|
|
- IQualityApplication qualityApplication
|
|
|
+ IQualityApplication qualityApplication,
|
|
|
+ IQualityRepository qualityRepository
|
|
|
)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_qualityApplication = qualityApplication;
|
|
|
+ _qualityRepository = qualityRepository;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -72,5 +79,52 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
return ExcelStreamResult(stream, "坐席质检分析");
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ #region 质检工作分析
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 质检工单概览
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("quality_order_overview")]
|
|
|
+ public async Task<List<QualityOrderOverviewDto>> QualityOrderOverview([FromQuery] QualityWorkAnalysisRequest dto)
|
|
|
+ {
|
|
|
+ var allOrderNum = await _qualityRepository.Queryable().Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.StartTime && x.QualityTime <= dto.EndTime && x.State == EQualityState.End).CountAsync();
|
|
|
+ var items = await _qualityApplication.QualityOrderOverview(dto,allOrderNum, HttpContext.RequestAborted).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ return items;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 质检工单概览导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("quality_order_overview/export")]
|
|
|
+ public async Task<FileStreamResult> QualityOrderOverviewExport([FromBody] ExportExcelDto<QualityWorkAnalysisRequest> dto)
|
|
|
+ {
|
|
|
+ var allOrderNum = await _qualityRepository.Queryable().Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.QueryDto.StartTime && x.QualityTime <= dto.QueryDto.EndTime && x.State == EQualityState.End).CountAsync();
|
|
|
+ var query = _qualityApplication.QualityOrderOverview(dto.QueryDto, allOrderNum, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ List<QualityOrderOverviewDto> listDtos;
|
|
|
+
|
|
|
+ listDtos = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ //var listDtos = _mapper.Map<ICollection<SeatsQualityAnalyseDto>>(lists);
|
|
|
+
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+
|
|
|
+ var dtos = listDtos
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(SeatsQualityAnalyseDto), dynamicClass))
|
|
|
+ .Cast<object>()
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
+
|
|
|
+ return ExcelStreamResult(stream, "质检工单概览");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|