Skip to main content

Consulta de Recolección de Viajes

tip

El servicio que atiende exactamente este flujo es (con p_CONTROL_INTERNO, p_FECHA_RECOLECION, p_ORIGEN, p_TIPO, p_EVENTO, etc.) es el Dispatch Control Service (v1), con el endpoint de búsqueda de despachos (p. ej. /dispatches/_search), cuyo request schema searchDispatchesRequest y la respuesta AlpRecoleccionViajesCollection son las mismas que en legacy.

info

Este servicio es el mismo para realizar la actualización de recolecciones de viaje

🧱 Tablas involucradas

Tabla: ALP_RECOLECCION_VIAJES

Contiene la información principal del viaje de recolección.

ColumnaTipo de datoDescripción
ROW_IDNUMBERIdentificador interno del registro
ID_VIAJENUMBERIdentificador del viaje
CONTROL_INTERNONUMBERControl interno de programación
FECHA_RECOLECCIONDATEFecha de la recolección
ORIGENVARCHAR2(60)Lugar de origen
DESTINOVARCHAR2(60)Lugar de destino
ZONAVARCHAR2(60)Zona operativa
TIPOVARCHAR2(10)Tipo de viaje (P, C, T, etc.)
RUTAVARCHAR2(60)Identificador de la ruta
OPERADOR_EMPLOYEE_NUMBERVARCHAR2(30)Número de empleado del operador
OPERADOR_FULL_NAMEVARCHAR2(120)Nombre completo del operador
TRACTORVARCHAR2(15)Número económico del tractor
PIPAVARCHAR2(15)Número económico de la pipa
DOLLYVARCHAR2(15)Dolly (opcional)
PROVEEDOR_TRANSPORTEVARCHAR2(120)Nombre del proveedor de transporte
FECHA_OPERADOR_PROGRAMADADATEFecha programada del operador
FECHA_OPERADOR_SALIDA_REALDATEFecha real de salida
PRODUCTOVARCHAR2(50)Código de producto
NUM_OC_TRANSFERENCIAVARCHAR2(60)Número de orden de compra de transferencia
EVENTOVARCHAR2(240)Estado o evento del viaje
FECHA_EVENTODATEFecha del evento actual
LATITUDNUMBERLatitud de última actualización GPS
LONGITUDNUMBERLongitud de última actualización GPS
LAST_UPDATE_DATEDATEFecha de última actualización
CREATED_BYNUMBERUsuario creador
CREATION_DATEDATEFecha de creación
ESTADOVARCHAR2(60)Estado general del viaje
ID_TRANSFERENCIANUMBERRelación con la tabla de transferencias (si aplica)
PIPA2 / RUTA2 / PRODUCTO2VARCHAR2Campos secundarios derivados de transferencia

Tabla: ALP_RECOLECCION_TRANSFERENCIAS

Relaciona dos controles internos cuando hay movimientos de transferencia entre viajes.

ColumnaTipo de datoDescripción
ID_TRANSFERENCIANUMBERIdentificador único
CONTROL_INTERNO1NUMBERControl interno origen
CONTROL_INTERNO2NUMBERControl interno destino
PRODUCTOVARCHAR2(50)Producto transferido
RUTAVARCHAR2(60)Ruta asociada a la transferencia
EVENTOVARCHAR2(240)Evento o estatus
FECHA_EVENTODATEFecha del evento

⚙️ Lógica SQL de Referencia

SELECT
v.ROW_ID AS rowId,
v.ID_VIAJE AS idViaje,
v.CONTROL_INTERNO AS controlInterno,
v.FECHA_RECOLECCION,
v.ORIGEN, v.DESTINO, v.ZONA, v.TIPO, v.RUTA,
v.OPERADOR_EMPLOYEE_NUMBER, v.OPERADOR_FULL_NAME,
v.TRACTOR, v.PIPA, v.DOLLY,
v.PROVEEDOR_TRANSPORTE, v.PROVEEDOR_ID,
v.FECHA_OPERADOR_PROGRAMADA, v.FECHA_OPERADOR_SALIDA_REAL,
v.PRODUCTO, v.VOLUMEN,
v.EVENTO, v.FECHA_EVENTO, v.LATITUD, v.LONGITUD,
v.LAST_UPDATE_DATE, v.LAST_UPDATED_BY,
v.CREATED_BY, v.CREATION_DATE,
v.NUM_OC_TRANSFERENCIA, v.ESTADO,
t.CONTROL_INTERNO1, t.CONTROL_INTERNO2,
t.RUTA AS ruta2, t.PRODUCTO AS producto2
FROM ALP_RECOLECCION_VIAJES v
LEFT JOIN ALP_RECOLECCION_TRANSFERENCIAS t
ON v.ID_TRANSFERENCIA = t.ID_TRANSFERENCIA
WHERE
(:p_TIPO = 'CONTROL_INTERNO' AND v.CONTROL_INTERNO = :p_CONTROL_INTERNO)
AND v.FECHA_RECOLECCION = TO_DATE(:p_FECHA_RECOLECION, 'DD/MM/YYYY')
AND v.ORIGEN = NVL(:p_ORIGEN, v.ORIGEN)
AND v.EVENTO = NVL(:p_EVENTO, v.EVENTO);

🔁 Diagrama de Secuencia (Mermaid)


🧭 Descripción del Flujo

  1. El cliente (p. ej., un frontend o servicio móvil) envía la solicitud con los parámetros de control interno, fecha y evento.
  2. La API Recolección interpreta el tipo (p_TIPO = 'CONTROL_INTERNO') y genera la consulta SQL.
  3. Se realiza la búsqueda principal en ALP_RECOLECCION_VIAJES.
  4. Si ID_TRANSFERENCIA > 0, se ejecuta un LEFT JOIN hacia ALP_RECOLECCION_TRANSFERENCIAS para obtener los campos secundarios (controlInterno1/2, ruta2, producto2).
  5. Los resultados se mapean a una estructura de salida estándar AlpRecoleccionViajesCollection.
  6. La API responde al cliente con el JSON completo, incluyendo los datos GPS, operador y estado.

📘 Fuentes: Diccionario de datos del dominio Recolección de Leche en el documento 5.hld.md.