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 llamaPLANES 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:36Evento 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
- Modelo mantenimiento
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
});- 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.
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
});- Equipos:
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' },
});- 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).
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
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
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' },
});