forked from ddrilling/AsbCloudServer
Merge branch 'dev' into fix/#32608212-setpoints-update-state
This commit is contained in:
commit
c4cee689f1
@ -33,9 +33,9 @@ namespace AsbCloudApp.Repositories
|
||||
/// Сохранить данные drill_test
|
||||
/// </summary>
|
||||
/// <param name="idTelemetry">ключ телеметрии</param>
|
||||
/// <param name="dto">запись drill test</param>
|
||||
/// <param name="dtos">записи drill test</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> SaveDataAsync(int idTelemetry, DrillTestBaseDto dto, CancellationToken token);
|
||||
Task<int> SaveDataAsync(int idTelemetry, IEnumerable<DrillTestBaseDto> dtos, CancellationToken token);
|
||||
}
|
||||
}
|
||||
|
@ -63,16 +63,20 @@ namespace AsbCloudInfrastructure.Repository
|
||||
return dto;
|
||||
}
|
||||
|
||||
public async Task<int> SaveDataAsync(int idTelemetry, DrillTestBaseDto dto, CancellationToken token)
|
||||
public async Task<int> SaveDataAsync(int idTelemetry, IEnumerable<DrillTestBaseDto> dtos, CancellationToken token)
|
||||
{
|
||||
var entity = dto.Adapt<DrillTest>();
|
||||
entity.IdTelemetry = idTelemetry;
|
||||
db.DrillTests.Add(entity);
|
||||
var entities = dtos.Select(dto =>
|
||||
{
|
||||
var entity = dto.Adapt<DrillTest>();
|
||||
entity.IdTelemetry = idTelemetry;
|
||||
return entity;
|
||||
});
|
||||
db.DrillTests.AddRange(entities);
|
||||
var result = await db.SaveChangesAsync(token);
|
||||
return result;
|
||||
}
|
||||
|
||||
private DrillTestDto Convert(DrillTest entity)
|
||||
private static DrillTestDto Convert(DrillTest entity)
|
||||
{
|
||||
var dto = entity.Adapt<DrillTestDto>();
|
||||
dto.TimeStampStart = dto.TimeStampStart.ToRemoteDateTime(dto.Telemetry?.TimeZone?.Hours ?? 0);
|
||||
|
@ -37,28 +37,41 @@ public class WellCompositeOperationService : IWellCompositeOperationService
|
||||
private static Dictionary<(int, int), int> SettingsForSectionCategoryChange = new Dictionary<(int, int), int>() {
|
||||
{ (2, 5096), 5013 },
|
||||
{ (2, 5008), 5013 },
|
||||
{ (2, 5002), 5113 },
|
||||
{ (2, 5003), 5113 },
|
||||
{ (3, 5096), 5084 },
|
||||
{ (3, 5008), 5084 },
|
||||
{ (3, 5085), 5015 },
|
||||
{ (3, 5014), 5015 },
|
||||
{ (3, 5002), 5113 },
|
||||
{ (3, 5003), 5113 },
|
||||
{ (31, 5014), 5015 },
|
||||
{ (31, 5012), 5013 },
|
||||
{ (31, 5083), 5013 },
|
||||
{ (31, 5002), 5113 },
|
||||
{ (31, 5003), 5113 },
|
||||
{ (4, 5085), 5015 },
|
||||
{ (4, 5087), 5015 },
|
||||
{ (4, 5014), 5015 },
|
||||
{ (4, 5053), 5037 },
|
||||
{ (4, 5084), 5096 },
|
||||
{ (4, 5086), 5013 },
|
||||
{ (4, 5002), 5113 },
|
||||
{ (4, 5003), 5113 },
|
||||
{ (6, 5085), 5015 },
|
||||
{ (6, 5036), 5034 },
|
||||
{ (6, 5035), 5097 }
|
||||
{ (6, 5035), 5097 },
|
||||
{ (6, 5002), 5113 },
|
||||
{ (6, 5003), 5113 },
|
||||
{ (6, 5021), 5095 },
|
||||
{ (6, 5086), 5012 }
|
||||
|
||||
};
|
||||
|
||||
private HashSet<(int IdSectionType, int IdCategory)> WellSectionTypesWithCategories = new HashSet<(int IdSectionType, int IdCategory)>()
|
||||
{
|
||||
{ (2, 5001) },
|
||||
{ (2, 5003) },
|
||||
{ (2, 5113) },
|
||||
{ (2, 5013) },
|
||||
{ (2, 5000) },
|
||||
{ (2, 5022) },
|
||||
@ -70,7 +83,7 @@ public class WellCompositeOperationService : IWellCompositeOperationService
|
||||
{ (3, 5015) },
|
||||
{ (3, 5037) },
|
||||
{ (3, 5057) },
|
||||
{ (3, 5003) },
|
||||
{ (3, 5113) },
|
||||
{ (3, 5036) },
|
||||
{ (3, 5084) },
|
||||
{ (3, 5013) },
|
||||
@ -86,7 +99,7 @@ public class WellCompositeOperationService : IWellCompositeOperationService
|
||||
{ (31, 5015) },
|
||||
{ (31, 5037) },
|
||||
{ (31, 5057) },
|
||||
{ (31, 5003) },
|
||||
{ (31, 5113) },
|
||||
{ (31, 5036) },
|
||||
{ (31, 5013) },
|
||||
{ (31, 5022) },
|
||||
@ -102,7 +115,7 @@ public class WellCompositeOperationService : IWellCompositeOperationService
|
||||
{ (4, 5037) },
|
||||
{ (4, 5097) },
|
||||
{ (4, 5057) },
|
||||
{ (4, 5003) },
|
||||
{ (4, 5113) },
|
||||
{ (4, 5036) },
|
||||
{ (4, 5008) },
|
||||
{ (4, 5003) },
|
||||
@ -121,7 +134,17 @@ public class WellCompositeOperationService : IWellCompositeOperationService
|
||||
{ (6, 5037) },
|
||||
{ (6, 5097) },
|
||||
{ (6, 5057) },
|
||||
{ (6, 5003) }
|
||||
{ (6, 5113) },
|
||||
{ (6, 5036) },
|
||||
{ (6, 5013) },
|
||||
{ (6, 5000) },
|
||||
{ (6, 5022) },
|
||||
{ (6, 5093) },
|
||||
{ (6, 5017) },
|
||||
{ (6, 5095) },
|
||||
{ (6, 5012) },
|
||||
{ (6, 5040) },
|
||||
{ (6, 5092) }
|
||||
};
|
||||
|
||||
public WellCompositeOperationService(
|
||||
|
@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
@ -51,27 +52,27 @@ public class DrillTestController : ControllerBase
|
||||
/// Сохраняет в БД.
|
||||
/// </summary>
|
||||
/// <param name="uid">уникальный идентификатор записи drill_test</param>
|
||||
/// <param name="dto">запись drill test</param>
|
||||
/// <param name="dtos">записи drill test</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpPost("api/telemetry/{uid}/[controller]")]
|
||||
public async Task<IActionResult> PostDataAsync(
|
||||
string uid,
|
||||
[FromBody] DrillTestBaseDto dto,
|
||||
string uid,
|
||||
[FromBody] IEnumerable<DrillTestBaseDto> dtos,
|
||||
CancellationToken token)
|
||||
{
|
||||
var telemetry = telemetryService.GetOrCreateTelemetryByUid(uid);
|
||||
if (telemetry is null)
|
||||
throw new Exception($"Telemetry with RemoteUid: {uid} does not exist.");
|
||||
|
||||
await drillTestRepository.SaveDataAsync(telemetry.Id, dto, token);
|
||||
await drillTestRepository.SaveDataAsync(telemetry.Id, dtos, token);
|
||||
var idWell = telemetryService.GetIdWellByTelemetryUid(uid);
|
||||
if (idWell is not null)
|
||||
_ = Task.Run(async () =>
|
||||
{
|
||||
var clients = telemetryHubContext.Clients.Group($"well_{idWell}");
|
||||
await clients.ReceiveDrilltestData(dto, token);
|
||||
await clients.ReceiveDrilltestData(dtos, token);
|
||||
}, CancellationToken.None);
|
||||
|
||||
return Ok();
|
||||
|
@ -17,10 +17,10 @@ namespace AsbCloudWebApi.SignalR.Clients
|
||||
/// Отправка клиенту уведомления о доставке с панели drill test данных.
|
||||
/// Для подписки на метод необходимо отправить сообщение в формате $"well_{idWell}"
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task ReceiveDrilltestData(DrillTestBaseDto dto, CancellationToken token);
|
||||
Task ReceiveDrilltestData(IEnumerable<DrillTestBaseDto> dtos, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Обновление записей РТК
|
||||
|
Loading…
Reference in New Issue
Block a user