Merge branch 'main' into 4452-vnChanges2

This commit is contained in:
Guillermo Bonet 2024-09-16 08:22:17 +02:00
commit f8a05fac72
3 changed files with 9 additions and 27 deletions

7
.gitignore vendored
View File

@ -2,7 +2,6 @@
node_modules/
npm-debug.log
yarn-error.log
.env
# Logs
logs/
@ -27,9 +26,7 @@ build/Release/
.yarn-integrity
# dotenv environment variables file
.env
.env.test
.env.production
.env*
# Next.js build output
.next/
@ -66,6 +63,4 @@ $RECYCLE.BIN/
*.swp
*~
# Docker files
docker-compose.override.yml
zplData_*.txt

View File

@ -38,6 +38,7 @@ Este proyecto es una aplicación backend que utiliza Node.js, Docker, MariaDB y
```env
DB_HOST=mariadb
DB_PORT=3306
DB_USER=user
DB_PASSWORD=password
DB_NAME=database

View File

@ -39,25 +39,18 @@ async function getConnectionWithRetries(retries = 3, delay = 5000) {
}
//Función para enviar ZPL a la impresora con TCP socket y reintentos
async function sendZPL(zplContent, ipAddress, retries = 2, delay = 3000) {
async function sendZPL(zplContent, ipAddress, retries = 3, delay = 2000) {
const port = 9100; // puerto que se utiliza para el envio de zpl junto con el ipAddress
for (let attempt = 0; attempt < retries; attempt++) {
try {
const result = await new Promise((resolve, reject) => {
const client = new net.Socket();
let dataReceived = false; // Bandera para rastrear si se recibió respuesta
client.connect(port, ipAddress, () => {
logger.info(`Conexión establecida con la impresora en el intento ${attempt + 1}`);
client.write(zplContent);
});
client.on('data', data => {
dataReceived = true; // Se ha recibido respuesta
logger.info(`Respuesta de la impresora: ${data.toString()}`);
client.destroy();
resolve('success');
client.write(zplContent, () => {
resolve('success');
});
});
client.on('error', error => {
@ -68,19 +61,14 @@ async function sendZPL(zplContent, ipAddress, retries = 2, delay = 3000) {
client.on('close', () => {
logger.info('Conexión cerrada');
// Si no se recibió ningún dato, considerarlo como cerrado exitosamente
if (dataReceived)
resolve('success'); // Considerar éxito si la impresora cerró la conexión sin error
else
resolve('closed');
resolve('closed');
});
});
if (result === 'success')
return 'success';
else if (result === 'closed') {
if(retries >= attempt)
return 'error';
if (retries >= attempt) return 'error';
continue; // Reintentar si la conexión se cerró sin error
}
@ -159,7 +147,7 @@ async function processRecord(record) {
try {
await connection.beginTransaction();
logger.info(`Procesando expeditionFk=${record.expeditionFk} en worker`);
logger.info(`Procesando expedición = ${record.expeditionFk}`);
const zplData = generateZPL(record, label);
const filePath = path.join(__dirname, `zplData_${record.expeditionFk}.txt`);
@ -173,7 +161,6 @@ async function processRecord(record) {
const sendResult = await sendZPL(zplContent, ipAddress);
if (sendResult === 'success') {
logger.info(`Etiqueta impresa correctamente para expeditionFk=${record.expeditionFk}`);
await connection.query(
'UPDATE expedition_PrintOut SET isPrinted = 1 WHERE expeditionFk = ?',
[record.expeditionFk]
@ -186,7 +173,6 @@ async function processRecord(record) {
[record.expeditionFk]
);
}
parentPort.postMessage('done');
await connection.commit();
} catch (error) {