|
@@ -23,6 +23,7 @@ using Microsoft.Extensions.Options;
|
|
using Hotline.Configurations;
|
|
using Hotline.Configurations;
|
|
using Hotline.CallCenter.Calls;
|
|
using Hotline.CallCenter.Calls;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
|
|
+using Hotline.Repository.SqlSugar.Quality;
|
|
|
|
|
|
namespace Hotline.Api.Controllers
|
|
namespace Hotline.Api.Controllers
|
|
{
|
|
{
|
|
@@ -49,8 +50,9 @@ namespace Hotline.Api.Controllers
|
|
private readonly ICallApplication _callApplication;
|
|
private readonly ICallApplication _callApplication;
|
|
private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
|
|
private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
|
|
private readonly IRepository<SystemLog> _logRepository;
|
|
private readonly IRepository<SystemLog> _logRepository;
|
|
|
|
+ private readonly IRepository<QualityTransferRecords> _qualityTransferRecordsRepository;
|
|
|
|
|
|
- public QualityController(
|
|
|
|
|
|
+ public QualityController(
|
|
ISessionContext sessionContext,
|
|
ISessionContext sessionContext,
|
|
IMapper mapper,
|
|
IMapper mapper,
|
|
IQualityRepository qualitey,
|
|
IQualityRepository qualitey,
|
|
@@ -69,7 +71,8 @@ namespace Hotline.Api.Controllers
|
|
ISystemSettingCacheManager systemSettingCacheManager,
|
|
ISystemSettingCacheManager systemSettingCacheManager,
|
|
ICallApplication callApplication,
|
|
ICallApplication callApplication,
|
|
IOptionsSnapshot<AppConfiguration> appOptions,
|
|
IOptionsSnapshot<AppConfiguration> appOptions,
|
|
- IRepository<SystemLog> logRepository)
|
|
|
|
|
|
+ IRepository<SystemLog> logRepository,
|
|
|
|
+ IRepository<QualityTransferRecords> qualityTransferRecordsRepository)
|
|
{
|
|
{
|
|
_sessionContext = sessionContext;
|
|
_sessionContext = sessionContext;
|
|
_mapper = mapper;
|
|
_mapper = mapper;
|
|
@@ -90,7 +93,8 @@ namespace Hotline.Api.Controllers
|
|
_callApplication = callApplication;
|
|
_callApplication = callApplication;
|
|
_appOptions = appOptions;
|
|
_appOptions = appOptions;
|
|
_logRepository = logRepository;
|
|
_logRepository = logRepository;
|
|
- }
|
|
|
|
|
|
+ _qualityTransferRecordsRepository = qualityTransferRecordsRepository;
|
|
|
|
+ }
|
|
#region 质检管理
|
|
#region 质检管理
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 删除质检
|
|
/// 删除质检
|
|
@@ -613,17 +617,57 @@ namespace Hotline.Api.Controllers
|
|
return rsp;
|
|
return rsp;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 智能质检转写_兴唐
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpPost("aitransfer_xt")]
|
|
|
|
+ [LogFilter("智能质检转写_兴唐")]
|
|
|
|
+ public async Task AiTransfer_XT([FromBody] List<AiQualityXTDto> dto)
|
|
|
|
+ {
|
|
|
|
+ var transfers = new List<QualityTransferRecords>();
|
|
|
|
+ foreach (var item in dto)
|
|
|
|
+ {
|
|
|
|
+ var records = await _qualityTransferRecordsRepository.Queryable().Where(x=>x.QualityId == item.Id && x.IsFinished == false).AnyAsync();
|
|
|
|
+ if (records)
|
|
|
|
+ continue;
|
|
|
|
+
|
|
|
|
+ var transfer = new QualityTransferRecords();
|
|
|
|
+ transfer.QualityId = item.Id;
|
|
|
|
+ transfer.IsFinished = false;
|
|
|
|
+ transfer.TransferState = EQualityTransferState.NotStarted;
|
|
|
|
+ transfers.Add(transfer);
|
|
|
|
+ await _qualitey.Updateable().SetColumns(x => new Hotline.Quality.Quality { TransferState = EQualityTransferState.Translating }).Where(x => x.Id == item.Id).ExecuteCommandAsync();
|
|
|
|
+ }
|
|
|
|
+ await _qualityTransferRecordsRepository.AddRangeAsync(transfers);
|
|
|
|
+ }
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 智能质检转写
|
|
/// 智能质检转写
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
[AllowAnonymous]
|
|
[AllowAnonymous]
|
|
- [HttpPost("AiResult_XT")]
|
|
|
|
- [LogFilter("智能质检转写_兴唐")]
|
|
|
|
- public async Task AiResult_XT([FromBody] List<AiQualityXTDto> dto)
|
|
|
|
|
|
+ [HttpPost("transfer")]
|
|
|
|
+ [LogFilter("智能质检转写_兴唐_定时调用")]
|
|
|
|
+ public async Task AiTransfer_XT()
|
|
{
|
|
{
|
|
- await _qualityApplication.AiResult_XT(dto, HttpContext.RequestAborted);
|
|
|
|
|
|
+ var translatings = await _qualityTransferRecordsRepository.Queryable().Where(x => x.IsFinished == false && x.TransferState == EQualityTransferState.Translating).OrderBy(x => x.TransferTime).ToListAsync();
|
|
|
|
+ if (translatings.Any())
|
|
|
|
+ {
|
|
|
|
+ var transfer = translatings.FirstOrDefault();
|
|
|
|
+ if ((DateTime.Now - transfer.TransferTime.Value).TotalMinutes >= 30)
|
|
|
|
+ {
|
|
|
|
+ await _qualityTransferRecordsRepository.Updateable().SetColumns(x => new QualityTransferRecords { TransferState = EQualityTransferState.Lose }).Where(x => x.Id == transfer.Id).ExecuteCommandAsync();
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var notStarted = await _qualityTransferRecordsRepository.Queryable().Where(x => x.IsFinished == false && x.TransferState == EQualityTransferState.NotStarted).OrderBy(x => x.TransferTime).FirstAsync();
|
|
|
|
+ await _qualityTransferRecordsRepository.Updateable().SetColumns(x => new QualityTransferRecords { TransferState = EQualityTransferState.Translating , TransferTime = DateTime.Now }).Where(x => x.Id == notStarted.Id).ExecuteCommandAsync();
|
|
|
|
+ _qualityApplication.Transfer_XT(notStarted.QualityId, HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|