feat: se actualizan las mediciones una vez se envian y ahora se consideran solo als mediciones que hayan sido creadas durante 7 dias

This commit is contained in:
Leonel Toro 2025-07-03 13:06:58 -04:00
parent bd44537c93
commit fee40a25a4
4 changed files with 32 additions and 7 deletions

View file

@ -1,4 +1,5 @@
using DAL;
using System.Text.Json;
using DAL;
using DAS;
using Shared.DTO.Envios_DGA;
using Shared.DTO.VariablesEntorno;
@ -24,6 +25,7 @@ namespace BLL.Recuperacion_DGA
await WriteLineAndLog("INICIO", "Inicio proceso de recuperación DGA", "");
WriteLineAndLog("Obteniendo Mediciones Scada", ConsoleColor.Green);
var mediciones = await _dGAMedicionScadaRepository.ObtenerMedicionesAsync();
var listaMediciones = new List<Object>();
foreach (var medicion in mediciones)
{
try
@ -69,6 +71,7 @@ namespace BLL.Recuperacion_DGA
{
await FileLoggerHelper.InsertarLogsAsync("REGISTRAR", $"Medicion {medicion.Code} no registra {string.Join(", ", vacios)}","");
}
var fechaEnvio = DateTime.UtcNow;
var body = new MedicionSubterraneaRequest
{
@ -87,7 +90,8 @@ namespace BLL.Recuperacion_DGA
Totalizador = medicion.Totalizador.ToString() ?? "",
}
};
//await _registrarMedicion.EnviarMedicionAsync(medicion.Code, body, medicion.Id);
await _registrarMedicion.EnviarMedicionAsync(medicion, body, fechaEnvio);
listaMediciones.Add(new {Id = medicion.Id,FechaEnvio = fechaEnvio.ToString("yyyy-MM-dd HH:mm:ss"), Enviado = medicion.Enviado + 1});
}
}
@ -97,6 +101,12 @@ namespace BLL.Recuperacion_DGA
WriteLineAndLog($"Error al enviar la medición con ID {medicion.Code}.", ConsoleColor.Red);
}
}
var listaMedicionesJson = JsonSerializer.Serialize(listaMediciones);
if (listaMediciones.Count > 0)
{
await MedicionScadaRepository.ActualizarMedicionesAsync(listaMedicionesJson);
}
await WriteLineAndLog("FIN","Fin proceso de recuperación DGA","");
}
catch (Exception ex)

View file

@ -18,5 +18,19 @@ namespace DAL
return result.ToList();
}
public static async Task<bool> ActualizarMedicionesAsync(string medicionesJson)
{
try
{
await using var connection = new SqlConnection(BdConexion.StringConnection);
await connection.ExecuteAsync("SP_ACTUALIZAR_MEDICION_SMARTSCADA_OPERACION", new { JsonMediciones = medicionesJson }, commandType: CommandType.StoredProcedure);
return true;
}
catch (Exception ex)
{
throw new Exception($"Error: {ex.Message}");
}
}
}
}

View file

@ -17,14 +17,14 @@ namespace DAS
_logMedicionScadaRepository = logMedicionScadaRepository;
}
public async Task<bool> EnviarMedicionAsync(string codigoObra, MedicionSubterraneaRequest request, long idMedicion)
public async Task<bool> EnviarMedicionAsync(MedicionScada medicion, MedicionSubterraneaRequest request,DateTime fechaEnvio)
{
var timeStamp = DateTime.UtcNow.ToString("yyyy-MM-dd'T'HH:mm:ss-0000");
var json = JsonSerializer.Serialize(request);
var content = new StringContent(json, Encoding.UTF8, "application/json");
content.Headers.Add("codigoObra", codigoObra);
content.Headers.Add("codigoObra", medicion.Code);
content.Headers.Add("timeStampOrigen", timeStamp);
var response = await _httpClient.PostAsync($"{SubterraneaApiUrl.BaseUrl}{SubterraneaApiUrl.EndPoint}SSSSSSSSSSSSSSSSS", content);
@ -54,8 +54,8 @@ namespace DAS
JsonEnviado = json,
JsonRecibido = jsonRecibido,
Comprobante = comprobante,
FechaEnvio = DateTime.UtcNow,
IdMedicionSmartscadaOperacion = idMedicion
FechaEnvio = fechaEnvio,
IdMedicionSmartscadaOperacion = medicion.Id
};
await _logMedicionScadaRepository.InsertarLogMedicionScadaAsync(logMedicionScada);

View file

@ -20,7 +20,8 @@
public decimal? Caudalsub { get; set; }
public decimal? Nivel { get; set; }
public DateTime? FechaEnvio { get; set; }
public int Enviado { get; set; }
public string? tipo_empresa { get; set; }
public string? nivelFreaticoDelPozo { get; set; }
}