- Add 02b-hr-employees.sql: 15 puestos, 15 employees for HSE EPP assignments - Add 11-infonavit.sql: registro, ofertas, derechohabientes, asignaciones - Add validate-seeds-comprehensive.sql: FK integrity, calculations, coverage - Update 06-estimaciones.sql: Document formula in header - Update 08-hse.sql: Fix hse.capacitacion → hse.capacitaciones, add 6 new tables - Update validate-seeds.sql: Fix table name reference New tables seeded: tipos_inspeccion, inspecciones, epp_matriz_puesto, epp_asignaciones, cumplimiento_obra, dias_sin_accidente Coverage increased: HSE 7%→17%, INFONAVIT 0%→50% Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
452 lines
26 KiB
PL/PgSQL
452 lines
26 KiB
PL/PgSQL
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- SEED 08: HSE (SEGURIDAD, SALUD Y AMBIENTE)
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- Proyecto: ERP Construcción
|
|
-- Autor: Claude Opus 4.5
|
|
-- Fecha: 2026-02-03
|
|
-- Descripción: EPP, incidentes, capacitaciones, inspecciones HSE, permisos
|
|
-- Dependencias: 02-users-profiles.sql, 04-proyectos-obras.sql
|
|
-- Nota: Los seeds de normas_stps y residuos_catalogo ya existen en el DDL
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
-- UUIDs: 00000000-0000-0000-0008-XXXXXXXXXXXX
|
|
|
|
BEGIN;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 1. CATÁLOGO DE EPP
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.epp_catalogo (
|
|
id, tenant_id, codigo, nombre, categoria, descripcion,
|
|
vida_util_dias, requiere_certificacion, activo,
|
|
created_at
|
|
) VALUES
|
|
-- Cabeza
|
|
('00000000-0000-0000-0008-000000000001', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-001', 'Casco de seguridad tipo I', 'cabeza',
|
|
'Casco de polietileno de alta densidad con suspensión ajustable',
|
|
730, true, true, NOW()),
|
|
|
|
-- Ojos
|
|
('00000000-0000-0000-0008-000000000002', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-002', 'Lentes de seguridad transparentes', 'ojos',
|
|
'Lentes de policarbonato con protección UV',
|
|
365, false, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000003', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-003', 'Goggles de seguridad', 'ojos',
|
|
'Goggles sellados para protección contra polvo y salpicaduras',
|
|
365, false, true, NOW()),
|
|
|
|
-- Auditiva
|
|
('00000000-0000-0000-0008-000000000004', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-004', 'Tapones auditivos desechables', 'auditiva',
|
|
'Tapones de espuma NRR 32dB',
|
|
1, false, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000005', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-005', 'Orejeras de copa', 'auditiva',
|
|
'Orejeras con NRR 28dB para uso continuo',
|
|
730, false, true, NOW()),
|
|
|
|
-- Respiratoria
|
|
('00000000-0000-0000-0008-000000000006', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-006', 'Mascarilla N95', 'respiratoria',
|
|
'Respirador N95 para partículas',
|
|
30, false, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000007', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-007', 'Respirador de media cara', 'respiratoria',
|
|
'Respirador reutilizable con cartuchos intercambiables',
|
|
365, true, true, NOW()),
|
|
|
|
-- Manos
|
|
('00000000-0000-0000-0008-000000000008', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-008', 'Guantes de carnaza', 'manos',
|
|
'Guantes de carnaza para trabajo general',
|
|
90, false, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000009', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-009', 'Guantes de nitrilo', 'manos',
|
|
'Guantes desechables de nitrilo',
|
|
1, false, true, NOW()),
|
|
|
|
-- Pies
|
|
('00000000-0000-0000-0008-000000000010', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-010', 'Botas de seguridad con casquillo', 'pies',
|
|
'Botas de cuero con casquillo de acero',
|
|
365, true, true, NOW()),
|
|
|
|
-- Caídas
|
|
('00000000-0000-0000-0008-000000000011', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-011', 'Arnés de cuerpo completo', 'caidas',
|
|
'Arnés con 5 puntos de anclaje para trabajos en altura',
|
|
1825, true, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000012', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-012', 'Línea de vida retráctil', 'caidas',
|
|
'Línea de vida autorretráctil de 15m',
|
|
1825, true, true, NOW()),
|
|
|
|
-- Ropa
|
|
('00000000-0000-0000-0008-000000000013', '00000000-0000-0000-0003-000000000001',
|
|
'EPP-013', 'Chaleco de alta visibilidad', 'ropa',
|
|
'Chaleco reflejante clase 2',
|
|
365, false, true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 2. CAPACITACIONES
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- NOTA: La tabla en DDL es hse.capacitaciones (plural), no hse.capacitacion
|
|
|
|
INSERT INTO hse.capacitaciones (
|
|
id, tenant_id, codigo, nombre, tipo, descripcion,
|
|
duracion_horas, requiere_evaluacion, puntaje_minimo, activo,
|
|
created_at
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000101', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-IND-001', 'Inducción de Seguridad', 'induccion',
|
|
'Curso de inducción obligatorio para todo el personal nuevo',
|
|
4, true, 80, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000102', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-ALT-001', 'Trabajo en Alturas NOM-009', 'especifica',
|
|
'Capacitación para trabajos en altura según NOM-009-STPS',
|
|
8, true, 85, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000103', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-ELE-001', 'Seguridad Eléctrica NOM-029', 'especifica',
|
|
'Capacitación en seguridad eléctrica según NOM-029-STPS',
|
|
8, true, 85, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000104', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-INC-001', 'Prevención de Incendios', 'especifica',
|
|
'Uso de extintores y prevención de incendios',
|
|
4, true, 80, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000105', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-EPP-001', 'Uso correcto de EPP', 'especifica',
|
|
'Selección, uso y mantenimiento de equipo de protección personal',
|
|
2, true, 80, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000106', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-MAQ-001', 'Operación de Maquinaria Pesada', 'certificacion',
|
|
'Certificación para operadores de maquinaria pesada',
|
|
16, true, 90, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000107', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-PAU-001', 'Primeros Auxilios', 'especifica',
|
|
'Curso básico de primeros auxilios',
|
|
8, true, 80, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000108', '00000000-0000-0000-0003-000000000001',
|
|
'CAP-ESC-001', 'Espacios Confinados', 'especifica',
|
|
'Procedimientos para trabajos en espacios confinados',
|
|
8, true, 85, true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 3. INCIDENTES (Histórico demo)
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.incidentes (
|
|
id, tenant_id, fraccionamiento_id,
|
|
folio, fecha_hora, tipo, gravedad, descripcion, ubicacion_descripcion,
|
|
estado, acciones_inmediatas,
|
|
investigado_por, fecha_cierre,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000201', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'INC-2024-001', '2024-04-15 10:30:00', 'casi_accidente', 'leve',
|
|
'Trabajador casi resbala en zona de excavación por lluvia reciente',
|
|
'Manzana A, zona de excavación lote A-05',
|
|
'cerrado',
|
|
'Se colocaron señalamientos de precaución y se suspendió trabajo en la zona',
|
|
'00000000-0000-0000-0002-000000000109', '2024-04-16',
|
|
NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000202', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'INC-2024-002', '2024-05-02 14:15:00', 'incidente', 'moderado',
|
|
'Caída de material desde andamio sin causar lesiones',
|
|
'Manzana B, lote B-03, segundo nivel',
|
|
'cerrado',
|
|
'Se aseguró el perímetro y se verificó fijación de materiales en andamios',
|
|
'00000000-0000-0000-0002-000000000109', '2024-05-04',
|
|
NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000203', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'INC-2024-003', '2024-05-10 09:45:00', 'accidente', 'leve',
|
|
'Trabajador sufre cortada menor en mano por manejo de material',
|
|
'Almacén de obra Las Palmas',
|
|
'cerrado',
|
|
'Se aplicaron primeros auxilios. Trabajador continuó labores con vendaje',
|
|
'00000000-0000-0000-0002-000000000109', '2024-05-10',
|
|
NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000204', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000102',
|
|
'INC-2024-004', '2024-06-05 11:00:00', 'casi_accidente', 'moderado',
|
|
'Herramienta cae desde nivel 4 sin impactar a nadie',
|
|
'Torre Diamante, nivel 4',
|
|
'en_investigacion',
|
|
'Se acordonó la zona y se reforzó protocolo de aseguramiento de herramientas',
|
|
'00000000-0000-0000-0002-000000000109', NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000109')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 4. HORAS TRABAJADAS (Para cálculo de indicadores)
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.horas_trabajadas (
|
|
id, tenant_id, fraccionamiento_id,
|
|
fecha, trabajadores_directos, trabajadores_subcontrato,
|
|
horas_directos, horas_subcontrato,
|
|
created_at, created_by
|
|
) VALUES
|
|
-- Mayo 2024 - Las Palmas
|
|
('00000000-0000-0000-0008-000000000301', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-01', 25, 30, 200, 240, NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
('00000000-0000-0000-0008-000000000302', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-02', 28, 32, 224, 256, NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
('00000000-0000-0000-0008-000000000303', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-03', 15, 18, 120, 144, NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
('00000000-0000-0000-0008-000000000304', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-04', 30, 35, 240, 280, NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
('00000000-0000-0000-0008-000000000305', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-05', 32, 38, 256, 304, NOW(), '00000000-0000-0000-0002-000000000109')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 5. TIPOS DE INSPECCIÓN HSE
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.tipos_inspeccion (
|
|
id, tenant_id, codigo, nombre, descripcion,
|
|
frecuencia_sugerida, requiere_checklist, activo,
|
|
created_at
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000401', '00000000-0000-0000-0003-000000000001',
|
|
'INSP-DIARIA', 'Inspección Diaria de Seguridad', 'Recorrido de verificación de condiciones generales',
|
|
'diaria', true, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000402', '00000000-0000-0000-0003-000000000001',
|
|
'INSP-ANDAMIOS', 'Inspección de Andamios', 'Verificación de estabilidad y condiciones de andamios',
|
|
'antes_de_uso', true, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000403', '00000000-0000-0000-0003-000000000001',
|
|
'INSP-EQUIPO', 'Inspección de Equipo de Protección', 'Verificación de EPP del personal',
|
|
'semanal', true, true, NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000404', '00000000-0000-0000-0003-000000000001',
|
|
'INSP-EXCAVACIONES', 'Inspección de Excavaciones', 'Verificación de taludes, ademes y condiciones',
|
|
'antes_de_ingreso', true, true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 6. INSPECCIONES HSE
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.inspecciones (
|
|
id, tenant_id, fraccionamiento_id, tipo_inspeccion_id,
|
|
folio, fecha, area, resultado, observaciones,
|
|
inspector_id, created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000501', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101', '00000000-0000-0000-0008-000000000401',
|
|
'INSP-2024-001', '2024-05-01', 'Manzana A - General', 'aprobada',
|
|
'Condiciones generales adecuadas. Personal con EPP completo.',
|
|
'00000000-0000-0000-0002-000000000109', NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000502', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101', '00000000-0000-0000-0008-000000000402',
|
|
'INSP-2024-002', '2024-05-02', 'Lote B-03 - Andamio', 'aprobada_con_observaciones',
|
|
'Andamio estable. Se requiere mejorar anclaje en nivel 2.',
|
|
'00000000-0000-0000-0002-000000000109', NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000503', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000102', '00000000-0000-0000-0008-000000000401',
|
|
'INSP-2024-003', '2024-06-05', 'Torre Diamante - Nivel 4', 'rechazada',
|
|
'Se detectaron herramientas sin asegurar. Suspensión temporal.',
|
|
'00000000-0000-0000-0002-000000000109', NOW(), '00000000-0000-0000-0002-000000000109')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 7. MATRIZ EPP POR PUESTO (Requiere seed 02b-hr-employees.sql)
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.epp_matriz_puesto (
|
|
id, tenant_id, puesto_id, epp_id, obligatorio,
|
|
created_at
|
|
) VALUES
|
|
-- Albañil (EPP básico + guantes)
|
|
('00000000-0000-0000-0008-000000000601', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000006', '00000000-0000-0000-0008-000000000001', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000602', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000006', '00000000-0000-0000-0008-000000000002', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000603', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000006', '00000000-0000-0000-0008-000000000008', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000604', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000006', '00000000-0000-0000-0008-000000000010', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000605', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000006', '00000000-0000-0000-0008-000000000013', true, NOW()),
|
|
|
|
-- Operador Maquinaria (EPP + auditivo)
|
|
('00000000-0000-0000-0008-000000000610', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000011', '00000000-0000-0000-0008-000000000001', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000611', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000011', '00000000-0000-0000-0008-000000000005', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000612', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000011', '00000000-0000-0000-0008-000000000010', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000613', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000011', '00000000-0000-0000-0008-000000000013', true, NOW()),
|
|
|
|
-- Electricista (EPP + protección eléctrica)
|
|
('00000000-0000-0000-0008-000000000620', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000009', '00000000-0000-0000-0008-000000000001', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000621', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000009', '00000000-0000-0000-0008-000000000002', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000622', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000009', '00000000-0000-0000-0008-000000000010', true, NOW()),
|
|
('00000000-0000-0000-0008-000000000623', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000009', '00000000-0000-0000-0008-000000000013', true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 8. ASIGNACIONES DE EPP (Requiere seed 02b-hr-employees.sql)
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.epp_asignaciones (
|
|
id, tenant_id, employee_id, epp_id,
|
|
fecha_asignacion, fecha_vencimiento, cantidad,
|
|
estado, observaciones,
|
|
asignado_por, created_at
|
|
) VALUES
|
|
-- Asignaciones al albañil Roberto Martínez (EMP-007)
|
|
('00000000-0000-0000-0008-000000000701', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000107', '00000000-0000-0000-0008-000000000001',
|
|
'2024-03-15', '2026-03-15', 1, 'activo', 'Casco nuevo',
|
|
'00000000-0000-0000-0002-000000000109', NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000702', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000107', '00000000-0000-0000-0008-000000000010',
|
|
'2024-03-15', '2025-03-15', 1, 'activo', 'Botas talla 28',
|
|
'00000000-0000-0000-0002-000000000109', NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000703', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000107', '00000000-0000-0000-0008-000000000013',
|
|
'2024-03-15', '2025-03-15', 1, 'activo', 'Chaleco talla M',
|
|
'00000000-0000-0000-0002-000000000109', NOW()),
|
|
|
|
-- Asignaciones al operador Jesús Manuel (EMP-012)
|
|
('00000000-0000-0000-0008-000000000704', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000112', '00000000-0000-0000-0008-000000000001',
|
|
'2024-06-01', '2026-06-01', 1, 'activo', NULL,
|
|
'00000000-0000-0000-0002-000000000109', NOW()),
|
|
|
|
('00000000-0000-0000-0008-000000000705', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-002b-000000000112', '00000000-0000-0000-0008-000000000005',
|
|
'2024-06-01', '2026-06-01', 1, 'activo', 'Orejeras 3M Peltor',
|
|
'00000000-0000-0000-0002-000000000109', NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 9. CUMPLIMIENTO POR OBRA
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.cumplimiento_obra (
|
|
id, tenant_id, fraccionamiento_id,
|
|
periodo, porcentaje_cumplimiento, observaciones,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000801', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05', 92.5, 'Cumplimiento alto. 2 observaciones menores en EPP.',
|
|
NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000802', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000102',
|
|
'2024-06', 88.0, 'Incidente por herramienta sin asegurar. Se reforzó capacitación.',
|
|
NOW(), '00000000-0000-0000-0002-000000000109')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 10. DÍAS SIN ACCIDENTE
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO hse.dias_sin_accidente (
|
|
id, tenant_id, fraccionamiento_id,
|
|
fecha_inicio_conteo, dias_actuales, meta_dias, ultimo_accidente_id,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0008-000000000901', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-11', 25, 100, '00000000-0000-0000-0008-000000000203',
|
|
NOW(), '00000000-0000-0000-0002-000000000109'),
|
|
|
|
('00000000-0000-0000-0008-000000000902', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000102',
|
|
'2024-06-01', 35, 100, NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000109')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- VERIFICACIÓN
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_epp INTEGER;
|
|
v_capacitaciones INTEGER;
|
|
v_incidentes INTEGER;
|
|
v_horas INTEGER;
|
|
v_tipos_inspeccion INTEGER;
|
|
v_inspecciones INTEGER;
|
|
v_epp_matriz INTEGER;
|
|
v_epp_asignaciones INTEGER;
|
|
v_cumplimiento INTEGER;
|
|
v_dias_sin_accidente INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO v_epp FROM hse.epp_catalogo;
|
|
SELECT COUNT(*) INTO v_capacitaciones FROM hse.capacitaciones;
|
|
SELECT COUNT(*) INTO v_incidentes FROM hse.incidentes;
|
|
SELECT COUNT(*) INTO v_horas FROM hse.horas_trabajadas;
|
|
SELECT COUNT(*) INTO v_tipos_inspeccion FROM hse.tipos_inspeccion;
|
|
SELECT COUNT(*) INTO v_inspecciones FROM hse.inspecciones;
|
|
SELECT COUNT(*) INTO v_epp_matriz FROM hse.epp_matriz_puesto;
|
|
SELECT COUNT(*) INTO v_epp_asignaciones FROM hse.epp_asignaciones;
|
|
SELECT COUNT(*) INTO v_cumplimiento FROM hse.cumplimiento_obra;
|
|
SELECT COUNT(*) INTO v_dias_sin_accidente FROM hse.dias_sin_accidente;
|
|
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'SEED 08 - HSE - COMPLETADO';
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'Catálogo EPP: %', v_epp;
|
|
RAISE NOTICE 'Capacitaciones: %', v_capacitaciones;
|
|
RAISE NOTICE 'Incidentes: %', v_incidentes;
|
|
RAISE NOTICE 'Registros de horas: %', v_horas;
|
|
RAISE NOTICE 'Tipos de inspección: %', v_tipos_inspeccion;
|
|
RAISE NOTICE 'Inspecciones: %', v_inspecciones;
|
|
RAISE NOTICE 'Matriz EPP/Puesto: %', v_epp_matriz;
|
|
RAISE NOTICE 'Asignaciones EPP: %', v_epp_asignaciones;
|
|
RAISE NOTICE 'Cumplimiento obra: %', v_cumplimiento;
|
|
RAISE NOTICE 'Días sin accidente: %', v_dias_sin_accidente;
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
END $$;
|
|
|
|
COMMIT;
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- FIN SEED 08
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|