Skip to main content

🧪 Consulta de Tanques por Viaje

Este documento mapea el endpoint legacy consultarViajesTanques al nuevo servicio y detalla el mapeo a tablas de base de datos.


1) Legacy → Nuevo

  • Legacy request (ejemplo):

    { "idviaje": 508463, "idsocio": 5431 }
  • Nuevo servicio: Trip Query Service (v1)
    Endpoint: GET /trips/{idViaje}/tanks?idSocio={idSocio}
    Descripción: Consulta tanques asociados a un viaje y socio específicos (lectura).

    Ejemplo (equivalente):

    GET /trips/508463/tanks?idSocio=5431

Nota: La captura/actualización de muestreos de tanques no se hace aquí; se realiza con Trip Execution Service (v1) POST /trips/{rowId}/tanks (escritura).


2) Estructura de respuesta (nuevo) — Equivalente a legacy

Legacy response (ejemplo):

{
"AlpDetRecoTanquesViajesCollection": {
"#text": "-",
"AlpDetRecoTanquesViajes": [
{
"idViaje": 508463,
"tanqueSoc": 1,
"producto": "DIINEZ0001",
"descripcionProducto": "LECHE CRUDA",
"litrosRemisionados": 0,
"rowId": 2998791,
"muestraReco": "",
"saborOlor": "",
"estabilidad": "",
"densidad": "",
"temperatura": "",
"udm": "",
"observaciones": ""
},
{
"idViaje": 508463,
"tanqueSoc": 2,
"producto": "DIINEZ0001",
"descripcionProducto": "LECHE CRUDA",
"litrosRemisionados": 0,
"rowId": 2998790,
"muestraReco": "",
"saborOlor": "",
"estabilidad": "",
"densidad": "",
"temperatura": "",
"udm": "",
"observaciones": ""
}
]
}
}

Nuevo response (equivalente):

{
"AlpDetRecoTanquesViajesCollection": {
"AlpDetRecoTanquesViajes": [
{
"idViaje": 508463,
"tanqueSoc": 1,
"producto": "DIINEZ0001",
"descripcionProducto": "LECHE CRUDA",
"litrosRemisionados": 0,
"rowId": 2998791,
"muestraReco": "",
"saborOlor": "",
"estabilidad": "",
"densidad": "",
"temperatura": "",
"udm": "",
"observaciones": ""
}
]
}
}

3) Mapeo a Tablas de Base de Datos

Tabla principal para tanques por viaje: ALP_DET_RECO_TANQUES_VIAJES
Tablas relacionadas: ALP_DET_RECOLECCION_VIAJES (detalle por socio/visita), ALP_RECOLECCION_VIAJES (maestro, ruta/producto).

Campo (response)Tabla.ColumnaObservaciones
rowIdALP_DET_RECO_TANQUES_VIAJES.ROW_IDIdentificador del tanque por viaje
idViajeALP_DET_RECO_TANQUES_VIAJES.ID_VIAJEFK hacia viaje
idSocio (implícito)ALP_DET_RECO_TANQUES_VIAJES.ID_SOCIOSe filtra por idSocio en query
tanqueSocALP_DET_RECO_TANQUES_VIAJES.TANQUE_SOCNo. de tanque por socio
productoALP_DET_RECO_TANQUES_VIAJES.PRODUCTOCódigo de producto
descripcionProductoCatálogo de productos / descripciónPuede venir de catálogo o campo descriptivo asociado
litrosRemisionadosALP_DET_RECO_TANQUES_VIAJES.LITROS_REMISIONADOS
muestraRecoALP_DET_RECO_TANQUES_VIAJES.MUESTRA*Si existe como MUESTRA/MUESTRA_RECO en el modelo físico
saborOlorALP_DET_RECO_TANQUES_VIAJES.SABOR_OLOR*Verificar nombre exacto en físico
estabilidadALP_DET_RECO_TANQUES_VIAJES.ESTABILIDAD*
densidadALP_DET_RECO_TANQUES_VIAJES.DENSIDAD
temperaturaALP_DET_RECO_TANQUES_VIAJES.TEMPERATURA
udmALP_DET_RECO_TANQUES_VIAJES.UDM*Unidad de medida (si aplica)
observacionesALP_DET_RECO_TANQUES_VIAJES.OBSERVACIONES*

* Campos marcados con * dependen del nombre exacto en el modelo físico; el diccionario confirma DENSIDAD, TEMPERATURA, PRODUCTO, LITROS_(REMISIONADOS/PROGRAMADOS), etc.

Relaciones clave (ER):


4) SQL de referencia (consulta por viaje y socio)

SELECT
t.ROW_ID AS rowId,
t.ID_VIAJE AS idViaje,
t.ID_SOCIO AS idSocio,
t.TANQUE_SOC AS tanqueSoc,
t.PRODUCTO AS producto,
/* Descripción producto: preferir catálogo; si no, derivar de maestro si existe */
t.LITROS_REMISIONADOS AS litrosRemisionados,
t.DENSIDAD AS densidad,
t.TEMPERATURA AS temperatura
/* + otros campos de calidad si están en el físico: MUESTRA, SABOR_OLOR, ESTABILIDAD, UDM, OBSERVACIONES */
FROM ALP_DET_RECO_TANQUES_VIAJES t
WHERE t.ID_VIAJE = :idViaje
AND t.ID_SOCIO = :idSocio;

5) Diferenciación de responsabilidades

  • Trip Query Service (v1) GET /trips/{idViaje}/tanks?idSocio=Consulta (lectura de tanques).
  • Trip Execution Service (v1) POST /trips/{rowId}/tanksCaptura/actualización de resultados de muestreo (escritura).