Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | /* eslint-disable no-restricted-syntax */ require('babel-register'); require('babel-polyfill'); const { parentPort } = require('worker_threads'); const { Op } = require('sequelize'); const databaseConnect = require('../../../config/database'); const { sequelize } = require('../../../config/database'); const { default: OutboundOrderCtrl, } = require('../../controllers/outboundOrder'); // Funcao de envio de mensagem utilizada para logging function sendMessage(message = '') { if (parentPort) parentPort.postMessage(message); } // #################################################################### // JOB EXECUTADO PARA REGRA DE RESSUPRIMENTO // // #################################################################### const jobExec = async () => { sendMessage('Iniciando Job de alocação...'); sendMessage('Database connecting...'); const models = await databaseConnect.default(); sendMessage("Procurando documentos com o status 'Pendente Alocação'"); const outboundOrder = await models.OutboundOrder.findAll({ where: { status: 1, completed: true }, attributes: ['id', 'status'], include: [ { required: false, model: models.TypeOrders, as: 'typeOrders', attributes: ['automaticAllocation'], where: { branchCode: { [Op.eq]: sequelize.col('OutboundOrders.str_branch_code'), }, }, }, ], }); if (outboundOrder.length) { sendMessage('Executando a lógica de Alocação...'); const resultAllocation = await OutboundOrderCtrl.allocationByOutboundOrder( outboundOrder .filter((item) => item.typeOrders ? item.typeOrders.automaticAllocation : true ) .map((elem) => elem.id), 1, // Usuario padrao true ); if (resultAllocation.success) { const { amountSuccess = 0 } = resultAllocation.data; sendMessage( `De ${ outboundOrder.length } documentos selecionados, ${amountSuccess} alocados e ${ outboundOrder.length - amountSuccess } não alocados.` ); } else { sendMessage('ocorreu erro na alocação'); } } else { sendMessage("Não há nenhum documento com o status 'Pendente Alocação'"); } }; (async () => { // funcao que executa o job await jobExec(); // processo necessario para informar a conclusao do job if (parentPort) sendMessage('done'); else process.exit(0); })(); |