Fix: los listados de instancias e incidencias aceptan varios estados en una consulta
Mantis 0044467
Qué
GET /instancias y GET /incidencias aceptan varios estados separados por coma en el parámetro estado (por ejemplo estado=ACTIVO,INACTIVO) y los resuelven en una sola consulta paginada. Es la parte de backend del Mantis 0044467.
Por qué
Para mostrar "Estado: Todos", el frontend pedía las activas y las inactivas por separado y las combinaba, porque el endpoint solo aceptaba un estado. Cada mitad paginaba por su cuenta: la página podía traer más de 20 filas y el rango del pie quedaba mal ("1-21 de 25"). Con los dos estados en una sola consulta, la paginación la resuelve el backend.
Cambios
-
InstanciaComunController.listareIncidenciaController.listar: el parámetroestadopasa deEstadoLogicoaList<EstadoLogico>. -
InstanciaComunService.listareIncidenciaService.listar: reciben la lista de estados; si viene vacía o no viene, usanACTIVO. -
InstanciaComunSpecseIncidenciaSpecs:estados(Collection<EstadoLogico>)reemplaza aestado(EstadoLogico). - Tests: un caso nuevo en cada controller (varios estados separados por coma) y ajuste de los existentes, incluidos los de integración, a la nueva firma.
Es compatible con el uso anterior: estado=INACTIVO funciona igual, y sin el parámetro se siguen devolviendo solo las activas.
Cómo probar
-
GET /instancias?estado=ACTIVO,INACTIVO: devuelve activas e inactivas juntas, ordenadas por fecha, de a 20 por página, contotalElementsigual a la suma de ambas. -
GET /instancias?estado=INACTIVO: solo inactivas, como antes. -
GET /instancias: solo activas, como antes. - Repetir con
/incidencias.
Tests: ./mvnw test -Dtest='InstanciaComun*Test,Incidencia*Test'
Los tests de integración (InstanciaBusquedaIT, IncidenciaBusquedaIT) se adaptaron a la nueva firma y compilan, pero no se corrieron localmente.
Cambios en BD
Ninguno.
A tener en cuenta
Mergear antes o junto con el MR de frontend fix/paginacion-listado-instancias-e-incidencias, que depende de este cambio.