|
@@ -9,6 +9,14 @@ using Hotline.Share.Dtos.Quality;
|
|
|
using Hotline.Tools;
|
|
|
using Hotline.Quality;
|
|
|
using Hotline.Share.Enums.Quality;
|
|
|
+using Hotline.Caching.Services;
|
|
|
+using Hotline.Settings;
|
|
|
+using Hotline.Share.Enums.FlowEngine;
|
|
|
+using Hotline.Share.Enums.Order;
|
|
|
+using XF.Utility.EnumExtensions;
|
|
|
+using Hotline.Caching.Interfaces;
|
|
|
+using Hotline.Users;
|
|
|
+using XF.Domain.Repository;
|
|
|
|
|
|
namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
@@ -17,17 +25,22 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
private readonly IMapper _mapper;
|
|
|
private readonly IQualityApplication _qualityApplication;
|
|
|
private readonly IQualityRepository _qualityRepository;
|
|
|
-
|
|
|
+ private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
+ private readonly IRepository<User> _userRepository;
|
|
|
|
|
|
public BiQualityController(
|
|
|
IMapper mapper,
|
|
|
IQualityApplication qualityApplication,
|
|
|
- IQualityRepository qualityRepository
|
|
|
+ IQualityRepository qualityRepository,
|
|
|
+ ISystemSettingCacheManager systemSettingCacheManager,
|
|
|
+ IRepository<User> userRepository
|
|
|
)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_qualityApplication = qualityApplication;
|
|
|
_qualityRepository = qualityRepository;
|
|
|
+ _systemSettingCacheManager = systemSettingCacheManager;
|
|
|
+ _userRepository = userRepository;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -115,7 +128,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
|
|
|
var dtos = listDtos
|
|
|
- .Select(stu => _mapper.Map(stu, typeof(SeatsQualityAnalyseDto), dynamicClass))
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(QualityOrderOverviewDto), dynamicClass))
|
|
|
.Cast<object>()
|
|
|
.ToList();
|
|
|
|
|
@@ -133,8 +146,16 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
[HttpGet("seats_quality_grade_analyse")]
|
|
|
public async Task<SeatsQualityGradeAnalyseDto> SeatsQualityGradeAnalyse([FromQuery] QualityWorkAnalysisRequest dto)
|
|
|
{
|
|
|
- var items = await _qualityApplication.SeatsQualityGradeAnalyse(dto, HttpContext.RequestAborted).FirstAsync(HttpContext.RequestAborted);
|
|
|
- return items;
|
|
|
+ var temps = await _qualityApplication.SeatsQualityGradeAnalyse(dto, HttpContext.RequestAborted).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ var temp = new SeatsQualityGradeAnalyseDto()
|
|
|
+ {
|
|
|
+ NinetyGrade = temps.Sum(x => x.NinetyGrade),
|
|
|
+ EightyGrade = temps.Sum(x => x.EightyGrade),
|
|
|
+ SeventyGrade = temps.Sum(x => x.SeventyGrade),
|
|
|
+ SixtyGrade = temps.Sum(x => x.SixtyGrade),
|
|
|
+ FiftyGrade = temps.Sum(x => x.FiftyGrade)
|
|
|
+ };
|
|
|
+ return temp;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -144,11 +165,38 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("month_quality_grade")]
|
|
|
- public async Task<object> MonthQualityGrade([FromQuery] QualityWorkAnalysisRequest dto)
|
|
|
+ public async Task<List<MonthQualityGradeDto>> MonthQualityGrade([FromQuery] QualityWorkAnalysisRequest dto)
|
|
|
{
|
|
|
- var items = await _qualityApplication.MonthQualityGrade(dto, HttpContext.RequestAborted).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ var items = await _qualityApplication.MonthQualityGrade(dto, HttpContext.RequestAborted);
|
|
|
return items;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 列表页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("quality_work/base")]
|
|
|
+ public async Task<object> QualityWorkBaseData()
|
|
|
+ {
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.RoleZuoXi);
|
|
|
+ var roles = setting?.SettingValue.ToList();
|
|
|
+ var users = await _userRepository.Queryable()
|
|
|
+ .Includes(d => d.Organization)
|
|
|
+ .Includes(d => d.Roles)
|
|
|
+ .Where(d => d.Roles.Any(x => roles.Contains(x.Name)))
|
|
|
+ .Select(x => new Kv {
|
|
|
+ Key = x.Id,
|
|
|
+ Value = x.Name
|
|
|
+ })
|
|
|
+ .ToListAsync(HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var rsp = new
|
|
|
+ {
|
|
|
+ Seats = users
|
|
|
+ };
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
#endregion
|
|
|
}
|
|
|
}
|