Skip to content

Modulo mantenimiento

IMPORTANTE

ESTOS MODULOS QUEDARON EN PROCESO... SE AVANZO BASTANTE EN ELLOS PERO DEL LADO DEL FRONTEND

Miercoles 2 octubre 2024

Notas importantes

  • Mantenimiento va a ser un módulo de la aplicación, la idea es que podamos darles las herramientas al cliente de que pueda controlar los mantenimiento que se le realizan a los equipos que pertenecen a la operación

  • Los equipos se van a extraer de los equipos ya creados

  • El desarrollo se va a dividir en tres partes principales.

  • MANTENIMIENTO: Es cuidar la salud de un equipo, de verificar el equipo como esta, si esta funcionando bien o no, si necesita cambio de aceite, regulación de temperatura etc. Cada equipo tiene su propia gestión de acuerdo a su funcionalidad.

  • TIPOS DE MANTENIMIENTO:

    • Correctivos: Cuando hay un fallo y se activa ese mantenimiento y se aplica un mantenimiento correctivo para poder solucionar el fallo en el equipo. Un fallo se produce porque hubo una sobrecarga, porque no se le hizo mantenimiento.
    • Preventivos: Es para prevenir esos correctivos. Cada equipo va a tener una periodicidad (Esa periodicidad va a permitir hacerle revisiones exhaustivas al equipo periodicamente para verificar el cumplimiento de su funcionamiento y preveer daños en sus piezas...). Hay una serie actividades que se van a realizar por cada grupo de equipos para las bombas son unos pasos, para los filtros otros y para los calentadores otros pasos. Para los SENSORES otros pasos. NOTA: Actualmente no estamos manejando equipos que pertenezcan a la categoria sensores. Para eso lo que se organiza es un concepto que se llama PLANES DE MANTENIMIENTO
  • PLANES DE MANTENIMIENTO: Los planes de mantenimiento nos permiten crear y agrupar ese listado o paso a paso que se va a realizar (El checklist de todas esas actividades). En la aplicación va a haber un espacio en donde vamos a tener la posibilidad de crear los planes de mantenimiento por grupos de equipos. EJEMPLO: Vamos a crear un plan de mantenimiento de bombas: MODULO PLAN DE MANTEMIENTO (MODELO) - MINUTO 8:36

  • Evento es un modelo - La proxima tengo un mantenimiento a la bomba 1. Lo reporto a la aplicación y lo marco como terminado. Si el evento tiene una periodicidad (ES UN LAZO O RANGO DE TIEMPO) de 20 días debo ver que debo realizar el mantenimiento de nuevo. Debo poder de forma visual los eventos creados y diferenciarlos por colores...

  • Desde el módulo mantenimiennto vamos a tener unn submodulo llamado equipos, donde se puede ver la información que se ya se creo y complementarla(Hay se va a hacer la asignación de plan de mantenimientos - se va dar baja- todo los equipos que finalizo su vida util...)

  • HISTORIA DE USUARIO: Es una descripción corta y simple de una funcionalidad que un usuario final necesita. QUIEN, QUE QUIERE y PARA QUE LO QUIERE... Para saber que todo esta bien se cuenta con un CRITERIO DE ACEPTACIÓN.

  • MINUTO 26 - IMPORTANTE: GRABACIÓN 1 -- GRABACIÓN N°2:

  • Tomar los equipos existentes, extraerlos y guardarlos en un modelo Equipment

  • PREGUNTA:

  • Un plan puede tener n cantidad de pasos, un grupo de equipos puede tener mas de un plan creado, pero al evento solo se le aplica un plan... MINUTO 22

NOTAS PERSONALIZADAS:

  • MODULO MANTENIMIENTO: Será un módulo que permita verificar y gestionar el estado de los equipos de la operación. Incluirá datos sobre la salud del equipo, su funcionamiento, necesidades de mantemiento, etc
  1. Modelo mantenimiento
js
const MantenimientoSchema = new Schema({
  equipoId: { type: Schema.Types.ObjectId, ref: 'Equipo', required: true },
  fecha: { type: Date, required: true },
  tipo: { type: String, enum: ['correctivo', 'preventivo'], required: true },
  /**
   * Descripción del mantenimiento realizado (e.g., cambio de aceite, regulación de temperatura
   */
  detalles: { type: String, required: true },
  /**
   * El estado del equipo antes y después del mantenimiento
   */
  estadoEquipo: { type: String, required: true },
  frecuencia: { type: Number }, // En días, si es preventivo
});
  1. Plan de mantenimiento: Un plan de mantenimiento agrupa una lista de pasos o actividades a realizar en los equipos de un grupo determinado. Cada tipo de equipo (bombas, filtros, calentadores) tendrá su propio conjunto de actividades.
js
const PlanMantenimientoSchema = new Schema({
  nombre: { type: String, required: true },
  equipos: [{ type: Schema.Types.ObjectId, ref: 'Equipo' }], // Grupos de equipos que aplican
  actividades: [{ type: String, required: true }] // Lista de pasos para cada tipo de equipo
});
  1. Equipos:
js
const EquipoSchema = new Schema({
  nombre: { type: String, required: true },
  tipo: { type: String, required: true }, // Bomba, filtro, etc.
  vidaUtil: { type: Number }, // Tiempo estimado de uso en días o meses
  estado: { type: String }, // Activo, Inactivo, Fuera de servicio
  planMantenimiento: { type: Schema.Types.ObjectId, ref: 'PlanMantenimiento' },
});
  1. Eventos de mantenimiento : El sistema debe permitir crear eventos relacionados con el mantenimiento, que indiquen cuándo y cómo se realiza el mantenimiento, así como marcar un mantenimiento como completado. Debe ser posible ver los eventos creados, con distinciones visuales por colores para identificar los tipos de mantenimiento o su estado (pendiente, completado).
js
const EventoMantenimientoSchema = new Schema({
  equipoId: { type: Schema.Types.ObjectId, ref: 'Equipo', required: true },
  planMantenimientoId: { type: Schema.Types.ObjectId, ref: 'PlanMantenimiento' },
  fechaProxima: { type: Date, required: true }, // Fecha del próximo mantenimiento
  estado: { type: String, enum: ['pendiente', 'completado'], required: true },
  comentarios: { type: String }
});

Modelos de datos

maintenancePlan

js
const maintenancePlan = new Schema({
  // No permite caracteres especiales
  name: { type: String, required: true, min: 5, max: 100 },
  activityList: [
    name: {
      type: String,
      required: true,
      min: 50,
      max: 500
    },
    description: {
      type: String,
      required: true
    },
    state: {
      type: Boolean,
      required: true
    },
    obligatorio: { //POR DEFINIR
      type: String,
      enum: ['si', 'no'],
      required: true
    }
  ],
  maintenanceType: { type: String , enum: [ 'preventive', 'corrective']}, // preventivo y correctivo
  //Asignación de grupos de equipos
  /**
   * Como se puede seleccionar más de una categoría, se deben activar de forma dinamica los equipos que pertenecen a esa categoria?
   */
  equipmentGroupAssignment: { type: [String], required: true}, // Categoria : Bombas, Filtros
  activityPriority: { type: String, enum: ['alta', 'media', 'baja'],required: true},
  maintenanceFrequency : { type: String , enum: ['diario','semanal','mensual','anual'], required: false},
  equipmentDowntime: { type: string } // POR DEFINIR
})

equipment

js
const EquipoSchema = new Schema({
  nombre: { type: String, required: true },
  tipo: { type: String, required: true }, // Bomba, filtro, etc.
  vidaUtil: { type: Number }, // Tiempo estimado de uso en días o meses
  estado: { type: String }, // Activo, Inactivo, Fuera de servicio
  planMantenimiento: { type: Schema.Types.ObjectId, ref: 'PlanMantenimiento' },
});