|
@@ -35,6 +35,8 @@ using System.Threading;
|
|
|
using Hotline.Share.Requests;
|
|
|
using Hotline.Repository.SqlSugar.TextSearch;
|
|
|
using SqlSugar;
|
|
|
+using Hotline.Share.Enums.Order;
|
|
|
+using Hotline.Repository.SqlSugar;
|
|
|
|
|
|
namespace Hotline.Application.Quality
|
|
|
{
|
|
@@ -56,6 +58,8 @@ namespace Hotline.Application.Quality
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
private readonly IRepository<QualityItem> _qualiteyItem;
|
|
|
private readonly IRepository<QualityTransferRecords> _qualityTransferRecordsRepository;
|
|
|
+ protected ISugarUnitOfWork<HotlineDbContext> Uow { get; }
|
|
|
+ protected ISqlSugarClient Db { get; }
|
|
|
|
|
|
public QualityApplication(
|
|
|
ISessionContext sessionContext,
|
|
@@ -73,7 +77,8 @@ namespace Hotline.Application.Quality
|
|
|
IServiceProvider serviceProvider,
|
|
|
IRepository<QualityItem> qualiteyItem,
|
|
|
IRepository<OrderWord> orderWordRepository,
|
|
|
- IRepository<QualityTransferRecords> qualityTransferRecordsRepository)
|
|
|
+ IRepository<QualityTransferRecords> qualityTransferRecordsRepository,
|
|
|
+ ISugarUnitOfWork<HotlineDbContext> uow)
|
|
|
{
|
|
|
_sessionContext = sessionContext;
|
|
|
_mapper = mapper;
|
|
@@ -91,6 +96,8 @@ namespace Hotline.Application.Quality
|
|
|
_serviceProvider = serviceProvider;
|
|
|
_qualiteyItem = qualiteyItem;
|
|
|
_qualityTransferRecordsRepository = qualityTransferRecordsRepository;
|
|
|
+ Uow = uow;
|
|
|
+ Db = uow.Db;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -463,7 +470,8 @@ namespace Hotline.Application.Quality
|
|
|
|
|
|
var query = _qualiteyDetail.Queryable()
|
|
|
.Includes(x => x.Quality)
|
|
|
- .GroupBy(x => x.Name)
|
|
|
+ .Where(x => x.Quality.Source == EQualitySource.Accepted && x.Quality.QualityTime >= dto.StartTime && x.Quality.QualityTime <= dto.EndTime && x.Quality.State == EQualityState.End)
|
|
|
+ .GroupBy(x => x.Name)
|
|
|
.Select(x => new QualityOrderOverviewDto
|
|
|
{
|
|
|
QualityItem = x.Name,
|
|
@@ -473,6 +481,66 @@ namespace Hotline.Application.Quality
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
+ public ISugarQueryable<SeatsQualityGradeAnalyseDto> SeatsQualityGradeAnalyse(QualityWorkAnalysisRequest dto,CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+
|
|
|
+ var query = _qualityRepository.Queryable()
|
|
|
+ .Includes(x=>x.Order)
|
|
|
+ .Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.StartTime && x.QualityTime <= dto.EndTime && x.State == EQualityState.End)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptorId),x=>x.Order.AcceptorId == dto.AcceptorId)
|
|
|
+ .Select(x => new SeatsQualityGradeAnalyseDto
|
|
|
+ {
|
|
|
+ NinetyGrade = SqlFunc.AggregateSum(SqlFunc.IIF(x.Grade >= 90, 1, 0)),
|
|
|
+ EightyGrade = SqlFunc.AggregateSum(SqlFunc.IIF(x.Grade >= 80 && x.Grade < 90, 1, 0)),
|
|
|
+ SeventyGrade = SqlFunc.AggregateSum(SqlFunc.IIF(x.Grade >= 70 && x.Grade < 80, 1, 0)),
|
|
|
+ SixtyGrade = SqlFunc.AggregateSum(SqlFunc.IIF(x.Grade >= 60 && x.Grade < 70, 1, 0)),
|
|
|
+ FiftyGrade = SqlFunc.AggregateSum(SqlFunc.IIF(x.Grade < 60, 1, 0))
|
|
|
+ });
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ISugarQueryable<object> MonthQualityGrade(QualityWorkAnalysisRequest dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ var queryList = Db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
|
|
+
|
|
|
+ var qualityList = _qualityRepository.Queryable()
|
|
|
+ .Where(x => x.Source == EQualitySource.Accepted && x.State == EQualityState.End)
|
|
|
+ .WhereIF(dto.MinGrade.HasValue && dto.MaxGrade.HasValue, x => x.Grade >= dto.MinGrade && x.Grade <= dto.MaxGrade)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptorId), x => x.Order.AcceptorId == dto.AcceptorId);
|
|
|
+
|
|
|
+
|
|
|
+ var query = queryList.LeftJoin(qualityList, (x1, x2) => x2.QualityTime.Value.ToString("yyyy-MM") == x1.ColumnName.ToString("yyyy-MM"))
|
|
|
+ .GroupBy((x1, x2) => x1.ColumnName)
|
|
|
+ .Select((x1, x2) => new
|
|
|
+ {
|
|
|
+ Month = x1.ColumnName.ToString("MM"),
|
|
|
+ Num = SqlFunc.AggregateDistinctCount(x2.OrderId)
|
|
|
+ });
|
|
|
+
|
|
|
+ // dto.StartTime = DateTime.Parse(DateTime.Now.Year + "-01-01");
|
|
|
+ //dto.EndTime = DateTime.Parse((DateTime.Now.Year+1) + "-01-01");
|
|
|
+ //var query = _qualityRepository.Queryable()
|
|
|
+ // .Includes(x => x.Order)
|
|
|
+ // .Where(x => x.Source == EQualitySource.Accepted && x.QualityTime >= dto.StartTime && x.QualityTime < dto.EndTime && x.State == EQualityState.End)
|
|
|
+ // .WhereIF(dto.MinGrade.HasValue && dto.MaxGrade.HasValue, x => x.Grade >= dto.MinGrade && x.Grade <= dto.MaxGrade)
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.AcceptorId), x => x.Order.AcceptorId == dto.AcceptorId)
|
|
|
+ // .Select(x => new MonthQualityGradeDto
|
|
|
+ // {
|
|
|
+ // JanuaryNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-01-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // FebruaryNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-02-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // MarchNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-03-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // AprilNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-04-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // MayNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-05-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // JuneNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-06-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // JulyNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-07-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // AugustNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-08-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // SeptemberNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-09-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // OctoberNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-10-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // NovemberNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-11-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // DecemberNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.QualityTime >= DateTime.Parse(DateTime.Now.Year + "-12-01") && x.QualityTime < DateTime.Parse(DateTime.Now.Year + "-02-01"), 1, 0)),
|
|
|
+ // });
|
|
|
+ return query;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|