feat(fsm): modulo de asignacion de tareas y visitas tecnicas integrado con tareas.telcotronics.com
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
const db = require('../config/db');
|
||||
const Ticket = require('../models/Ticket');
|
||||
const TicketVisita = require('../models/TicketVisita');
|
||||
const TareasHubService = require('../config/tareasHubService');
|
||||
|
||||
async function run() {
|
||||
console.log('--- 1. Probando obtenerTecnicos() ---');
|
||||
const tecnicos = await TareasHubService.obtenerTecnicos();
|
||||
console.log(`Técnicos obtenidos (${tecnicos.length}):`, tecnicos.map(t => `${t.nombre || t.email} <${t.email}>`));
|
||||
|
||||
const emailTecnico = tecnicos.length > 0 ? tecnicos[0].email : 'pablinux@hotmail.es';
|
||||
const nombreTecnico = tecnicos.length > 0 ? (tecnicos[0].nombre || tecnicos[0].email) : 'Jefferson';
|
||||
|
||||
console.log('\n--- 2. Creando Visita Técnica en Hub (tareas.telcotronics.com) ---');
|
||||
const hubRes = await TareasHubService.crearVisita({
|
||||
ticketId: 1,
|
||||
titulo: 'Visita de Prueba Automatizada - Help Desk',
|
||||
descripcion: 'Verificación de conectividad de fibra óptica en cliente de prueba.',
|
||||
emailTecnico: emailTecnico,
|
||||
fechaVisita: new Date(),
|
||||
ubicacion: 'Av. 10 de Agosto y Colón, Quito',
|
||||
coordenadas: '-0.198321, -78.490123',
|
||||
referencia: 'Edificio Plaza Piso 2',
|
||||
prioridad: 'Alta',
|
||||
checklist: [
|
||||
'Revisión física de acometida y ONT',
|
||||
'Medición de potencia en splitter (-19dBm esperado)',
|
||||
'Prueba de velocidad LAN y firma de acta'
|
||||
]
|
||||
});
|
||||
console.log('Respuesta de Hub:', hubRes);
|
||||
|
||||
console.log('\n--- 3. Guardando en ticket_visitas (MariaDB) ---');
|
||||
const visitaId = await TicketVisita.create({
|
||||
company_id: 3,
|
||||
ticket_id: 1,
|
||||
external_id: hubRes.tareaId,
|
||||
tecnico_email: emailTecnico,
|
||||
tecnico_nombre: nombreTecnico,
|
||||
titulo: 'Visita de Prueba Automatizada - Help Desk',
|
||||
descripcion: 'Verificación de conectividad de fibra óptica en cliente de prueba.',
|
||||
ubicacion: 'Av. 10 de Agosto y Colón, Quito',
|
||||
fecha_visita: new Date(),
|
||||
estado: 'programada',
|
||||
checklist_json: [
|
||||
'Revisión física de acometida y ONT',
|
||||
'Medición de potencia en splitter (-19dBm esperado)',
|
||||
'Prueba de velocidad LAN y firma de acta'
|
||||
],
|
||||
historial_json: hubRes.tarea
|
||||
});
|
||||
console.log('Visita creada en MariaDB con ID:', visitaId);
|
||||
|
||||
console.log('\n--- 4. Consultando Visita creada en MariaDB ---');
|
||||
const visitaEnDb = await TicketVisita.findByTicket(3, 1);
|
||||
console.log('Registro en DB:', {
|
||||
id: visitaEnDb.id,
|
||||
ticket_id: visitaEnDb.ticket_id,
|
||||
external_id: visitaEnDb.external_id,
|
||||
tecnico: visitaEnDb.tecnico_nombre,
|
||||
estado: visitaEnDb.estado,
|
||||
fecha_visita: visitaEnDb.fecha_visita
|
||||
});
|
||||
|
||||
console.log('\n--- 5. Probando sincronización con Hub (consultarEstadoVisita) ---');
|
||||
const syncRes = await TareasHubService.consultarEstadoVisita(hubRes.tareaId);
|
||||
console.log('Estado sincronizado desde Hub:', {
|
||||
tareaId: syncRes.tarea._id,
|
||||
estado: syncRes.tarea.estado,
|
||||
checklistTotal: syncRes.tarea.checklist ? syncRes.tarea.checklist.length : 0,
|
||||
progreso: syncRes.tarea.progreso_checklist
|
||||
});
|
||||
|
||||
console.log('\n--- 6. Limpieza de prueba ---');
|
||||
// Limpiar en MariaDB
|
||||
await db.query('DELETE FROM ticket_visitas WHERE id = ?', [visitaId]);
|
||||
console.log('Registro eliminado de MariaDB');
|
||||
|
||||
// Limpiar tarea en CT 132
|
||||
try {
|
||||
const http = require('http');
|
||||
await new Promise((resolve, reject) => {
|
||||
const req = http.request({
|
||||
hostname: '192.168.10.160',
|
||||
port: 3000,
|
||||
path: `/api/external/tareas/${hubRes.tareaId}`,
|
||||
method: 'DELETE',
|
||||
headers: { 'x-api-key': 'sigma_crm_test_key_123' }
|
||||
}, (res) => {
|
||||
res.on('data', () => {});
|
||||
res.on('end', () => {
|
||||
console.log(`Tarea ${hubRes.tareaId} eliminada de tareas.telcotronics.com (Status: ${res.statusCode})`);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
req.on('error', reject);
|
||||
req.end();
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn('Advertencia al eliminar tarea de prueba en Hub:', e.message);
|
||||
}
|
||||
|
||||
console.log('\n✅ ¡FLUJO COMPLETO DE VISITAS TÉCNICAS (FSM) VERIFICADO SATISFACTORIAMENTE!');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
run().catch(err => {
|
||||
console.error('❌ Error durante la prueba:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user