|
@@ -1,4 +1,6 @@
|
|
|
using Hotline.Ai.Quality;
|
|
|
+using Hotline.CallCenter.Calls;
|
|
|
+using Hotline.Orders;
|
|
|
using Hotline.Quality;
|
|
|
using Hotline.Share.Dtos.Quality;
|
|
|
using Hotline.Share.Enums.Quality;
|
|
@@ -17,21 +19,28 @@ namespace Hotline.Application.Quality
|
|
|
private readonly IRepository<QualityDetail> _qualiteyDetail;
|
|
|
private readonly IQualityRepository _qualityRepository;
|
|
|
private readonly IAiQualityService _aiQualityService;
|
|
|
+ private readonly IOrderRepository _orderRepository;
|
|
|
+ private readonly IRepository<TrCallRecord> _trCallRecordRepository;
|
|
|
|
|
|
- public QualityApplication(
|
|
|
+ public QualityApplication(
|
|
|
ISessionContext sessionContext,
|
|
|
IMapper mapper,
|
|
|
IRepository<QualityDetail> qualiteyDetail,
|
|
|
IQualityRepository qualityRepository,
|
|
|
- IAiQualityService aiQualityService
|
|
|
- )
|
|
|
+ IAiQualityService aiQualityService,
|
|
|
+ IRepository<TrCallRecord> trCallRecordRepository,
|
|
|
+ IOrderRepository orderRepository
|
|
|
+ )
|
|
|
{
|
|
|
_sessionContext = sessionContext;
|
|
|
_mapper = mapper;
|
|
|
_qualiteyDetail = qualiteyDetail;
|
|
|
_qualityRepository = qualityRepository;
|
|
|
_aiQualityService = aiQualityService;
|
|
|
- }
|
|
|
+ _trCallRecordRepository = trCallRecordRepository;
|
|
|
+ _orderRepository = orderRepository;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
public async Task AddQualityAsync(EQualitySource Source, string OrderId, string VisitId, CancellationToken cancellationToken)
|
|
|
{
|
|
@@ -61,16 +70,26 @@ namespace Hotline.Application.Quality
|
|
|
public async Task AddQualityAsync(QualityAddDto model, CancellationToken cancellationToken)
|
|
|
{
|
|
|
var quality = _mapper.Map<Hotline.Quality.Quality>(model);
|
|
|
- var id = await _qualityRepository.AddAsync(quality, cancellationToken);
|
|
|
+ quality.InitId();
|
|
|
+ await _qualityRepository.AddAsync(quality, cancellationToken);
|
|
|
if (model.QualityDetails.Any())
|
|
|
{
|
|
|
foreach (var item in model.QualityDetails)
|
|
|
{
|
|
|
- item.QualityId = id;
|
|
|
+ item.QualityId = quality.Id;
|
|
|
}
|
|
|
List<QualityDetail> details = _mapper.Map<List<QualityDetail>>(model.QualityDetails);
|
|
|
await _qualiteyDetail.AddRangeAsync(details, cancellationToken);
|
|
|
}
|
|
|
+ //受理智能质检
|
|
|
+ if (model.Source == EQualitySource.Accepted) {
|
|
|
+ var order = await _orderRepository.GetAsync(model.OrderId);
|
|
|
+ if (order != null && !string.IsNullOrEmpty(order.CallId))
|
|
|
+ {
|
|
|
+ var call = await _trCallRecordRepository.GetAsync(order.CallId);
|
|
|
+ await _aiQualityService.CreateAiOrderQualityTask(quality, call, order, cancellationToken);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public async Task UpdateQualityAsync(UpdateQualityDto model, CancellationToken cancellationToken)
|