Skip to content

Estructura de carpeta modulo mantenimiento

NOTAS_IMPORTANTES:

  • Dado que el módulo de Mantenimiento está directamente relacionado con las plantas de tratamiento, es más práctico integrarlo en la misma API. Esto facilita el acceso a datos compartidos, reduce la sobrecarga de configuración y evita problemas de comunicación entre servicios. Además, como usas MVC con Node.js, TypeScript y Mongoose, puedes organizar el nuevo módulo en una carpeta separada dentro de la API actual, manteniendo la estructura limpia y modular.

ESTRUCTURAS DE CARPETAS A: OPCIONAL PARA CUANDO CREZCA EL PROYECTO... src/

bash
├── maintenance/
   ├── controllers/
   ├── MaintenanceController.ts
   ├── EquipmentController.ts
   ├── MaintenancePlanController.ts
   └── EventController.ts
   ├── models/
   ├── MaintenanceModel.ts
   ├── EquipmentModel.ts
   ├── MaintenancePlanModel.ts
   └── EventModel.ts
   ├── routes/
   ├── maintenanceRoutes.ts
   ├── equipmentRoutes.ts
   ├── maintenancePlanRoutes.ts
   └── eventRoutes.ts
   └── index.ts  # Archivo opcional para importar/exportar todas las rutas del módulo
├── controllers/
├── models/
├── routes/
├── db/
├── enums/
├── interfaces/
├── middlewares/
└── index.ts

Estructura de carpetas B: (ACTUAL)

bash
src/
├── controllers/
   ├── MaintenanceController.ts
   ├── EquipmentController.ts
   ├── MaintenancePlanController.ts
   └── EventController.ts
├── models/
   ├── MaintenanceModel.ts
   ├── EquipmentModel.ts
   ├── MaintenancePlanModel.ts
   └── EventModel.ts
├── routes/
   ├── maintenanceRoutes.ts
   ├── equipmentRoutes.ts
   ├── maintenancePlanRoutes.ts
   └── eventRoutes.ts

DISEÑANDO MODELO - PLAN DE MANTENIMIENTO

js
let maintenancePlan = [
  {
    nombre: string, //REQUERIDO, MINIMO 5 CARACTERES, MAXIMO 100 CARACTERES, NO SE PERMITEN CARACTERES ESPECIALES
    listadoActividades: [ //PUEDO AGREGAR TANTAS ACTIVIDADES COMO YO QUIERA, REQUERIDO, MINIMO 10 CARACTERES, MAXIMO 500 CARACTERES
      {
        titulo: string,
        descripcion: string,
        status: string // en proceso, terminada
      }
    ],
    tipo: string, // [preventivo o correctivo] - REQUERIDO
    grupo: string // [ asignación de grupos ] - LISTA DE TODOS LOS LOS GRUPOS DE EQUIPOS EN EL SISTEMA - LISTA DESPLEGABLE CON TODOS LOS EQUIPOS DISPONIBLES EN EL SISTEMA. [ REQUERIDO ]
    prioridad: string, // alta,media, baja - REQUERIDO
    frecuenciaMantenimiento: string, // diario,semanal,anual [ OPCIONAL ]    
  }
]

Informe de pruebas:

Estas pruebas se realizon para validar el funcionamiento de creación de equipos

  1. Se creo una planta [ PLANTA 07-11-2024 A] con 4 equipos. Se valido que no dejara crear la planta si los equipos a agregar ya existen y se envio un status code con un mensaje: El equipo o equipos NOMBRE O SERIAL ya existe
  2. Se inactivaron todos los equipos de la planta que se creo en el punto anterior desde el módulo de mantenimiento. Se valido que los equipos se inactivaran tambien en la planta a la que pertenecen. Se valido que al entrar a la vista mis plantas se pudieran visualizar de forma correcta los equipos que se inactivaron...
  3. Al editar un planta si el usuario quiere ingresar un equipo que ya existe se envia un mensaje de error indicando que el equipo ya estar registrado
  4. Al editar una planta se agregan 2 equipos una bomba y un filtro, el push se hace de forma exitosa y el equipo tambien se guarda en su propia colección equipment en mantenimiento.

Modulo - mantenimiento equipos (PRUEBAS EN PRODUCCIÓN)

SET PRUEBAS

  1. Se crea una planta llamada PLANTA 8 NOV 2024 A. Con dos equipos uno con categoria filtro - FILTRO 10 Y bomba - BOMBA 10. Se valida que el software no deje crear la planta ni los equipos en mantenimiento porque ambos equipos ya existen. Se envia un mensaje de error indicando al usuario que ambos equipos ya existen. errorError al crear un equipo que ya existe

  2. En la plata PLANTA 8 NOV 2024 A se crean 4 equipos 2 filtros (PENTAIR TRITON II y HAYWARD PRO SERIE) y dos bombas (SER-1234-BP y BP-7890-WQ) - El flujo funciona de forma correcta.

  3. Editamos la planta PLANTA 8 NOV 2024 A - sección equipos (FILTRO - PENTAIR TRITON II) Cambiamos altura de 4 a 8, vida util de 4 a 45, proveedor de XXX a MMCONTROL S.A.S, el manual de usuario cambiamos un pdf con el texto: corrigiendo error cloudinary por un pdf: Fake PDF- El cambio se hizo efectivo en plantas y en mantenimiento equipos... imagePlanta antes de actualizarimage2Planta actualizadaimage2Equipo actualizado en mantenimiento

  4. Editamos la planta PLANTA 8 NOV 2024 A - validamos que no se pueda ingresar equipos que ya existan. image5No se permiten ingresar equipos que ya existan

  5. Editamos la planta PLANTA 8 NOV 2024 A - agregamos dos equipos un filtro - Evoqua Vantage PTI y una bomba - VTX-9907-KQ34 image6Confirmación de que los equipos se agregaron de forma exitosa

  6. Validamos que en mantenimiento se hayan guardado los dos equipos que se agregaron desde plantas. image7Confirmación de que el equipo se guardo en mantenimiento

  7. Validamos que en mantenimiento se hayan guardado los dos equipos que se agregaron desde plantas. image7Confirmación de que el equipo se guardo en mantenimiento

  8. Se inactivan los equipos Evoqua Vantage PTI y VTX-9907-KQ34 desde mantenimiento image9Equipos antes de inactivarimage9Equipos despues de inactivar

  9. Validamos que el equipo se inactive en plantas - RECOMENDACIÓN: En la vista mis plantas deberia colocarse una bolita de color verde o rojo que informe el status del equipo: activo, inactivo, fuera de servicio, etc... image10Confirmación equipo inactivado en plantasNotas: Se formateo la data en backend en el endpoint listar equipos por ID de planta y listar equipos por categoria...

  • El plan de mantenimiento correctivo no debe llevar el campo frecuency
  • Existe el modelo Equipment pero no se esta usando como tal equipment.save.Se esta usando Equipment.insertMany(equipments) y este proceso de guardado se hace de forma automatica cuando se guarda un planta de tratamiento. Mientras se crea una planta de tratamiento se extraen los equipos se guardan en un variable y esos equipos son los que se le pasan al Método - insertMany

NOTAS_IMPORTANTES

  • Los siguientes endpoints en equipos no se utilizan (En un principio si pero despues de reunirnos y realizar un revisión por parte de la directora del proyecto) se llego a la conclusión de que no se debe usar. Porque la inactivación de los equipos debe hacerse desde plantas y en cuanto al tema de los filtros desde mantenimiento el filtro debe funcionar filtrando por id de una planta y por la categoria las dos a la vez...
    • /equipment-by-category/:category - [ GET ] - Filtrar por categoria: filtros o bombas
    • /equipment-change-status/:id - [ PUT ] - Inactivar un equipos
    • /equipment-by-plant/:plantId - [ PUT ] - Filtrar equipos por id de planta
  • El endpoint que permite inactivar un equipo desde plantas es: /deactivate-equipment/:plantId/equipments - [ PUT ] el endpoint se creo en plantas al igual que su controller porque la inactivación se hace es desde plantas. NOTAS: Hay que establecer en que punto de la interfaz gráfica se va a realizar la inactivación...
  • Cuando se editan los equipos de una planta se puede agregar tantos equipos como yo considere...

Grabaciones importantes sobre plan de mantenimiento y reportes

  • Se crearon dos grabaciones importantes sobre el módulo mantenimiento: 2024-10-03 14-11-31.ModuloInventario (ambas estan en el drive de la cuenta nlopez.treea)
  • Grabación: TareasAusenciaJeimy_II investigar como hacer un calendario con frecuencia claras (Recurrencias, periodicidades)
  • Grabación-TestDeJarrasExplicación_A (2024-04-26 15:07 GMT): Explicación completa de test de jarras
  • **Grabación_Reportes_Piscinas (2024-04-30) - Explicación de los reportes
  • **Grabación_Reportes_Piscinas_II (2024-05-03) - Explicación de los reportes II