????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/baocao.js |
var router = require('express').Router(); var path = require('path'); const { toDate } = require('../utils'); const ReportCtrl = require('../controllers/baocao/ReportController').create(); const ExcelCtrl = require('../controllers/baocao/ExcelController.js'); const WordCtrl = require('../controllers/baocao/WordController'); const PDFCtrl = require('../controllers/baocao/PDFController'); var { permit, useLayout } = require('../controllers/middleware'); var { exportPath } = require('../appconfig'); //Báo cáo phông router.get('/phong', permit(401), useLayout, async function (req, res, _next) { res.render('baocao/phong.eta', { title: 'Báo cáo phông' }) }); router.get('/phong/:type', permit(401), async function (req, res, _next) { var group = req.query.group || null; var fondCode = req.query.fondCode || null; try { var data = await ReportCtrl.getFondToReport(group, fondCode); if (req.params.type == 'json') { res.json({ data: data }); } else if (req.params.type == 'pdf') { var pdfName = await PDFCtrl.reportFond(data); if (pdfName) res.download(path.join(exportPath, pdfName)); else res.status(404).end(); } else if (req.params.type == 'docx') { var docxName = await WordCtrl.reportFond(data); res.download(path.join(exportPath, docxName)); } else if (req.params.type == 'excel') { var xlsxName = await ExcelCtrl.reportFond(data); res.download(path.join(exportPath, xlsxName)); } else { res.status(404).end() } } catch (err) { console.log(err); res.status(400).send('Không thể truy cập trang'); } }); //Báo cáo hồ sơ router.get('/hoso', permit(402), useLayout, function (req, res, _next) { res.render('baocao/hoso.eta', { title: 'Báo cáo mục lục hồ sơ' }); }); router.get('/hoso/:type', permit(402), async function (req, res, _next) { try { var result = { draw: parseInt(req.query.draw) || 0, recordsTotal: 0, recordsFiltered: 0, data: [] } var boxNumber1 = parseInt(req.query.boxNumber1) || null; var boxNumber2 = parseInt(req.query.boxNumber2) || null; var fileNumber1 = parseInt(req.query.fileNumber1) || null; var fileNumber2 = parseInt(req.query.fileNumber2) || null; var startDate1 = toDate(req.query.startDate1); var startDate2 = toDate(req.query.startDate2); var endDate1 = toDate(req.query.endDate1); var endDate2 = toDate(req.query.endDate2); var obj = {}; obj['jobState'] = parseInt(req.query.jobState || 1); if (req.query.fondCode) obj['fondCode'] = req.query.fondCode; if (boxNumber1) obj['boxNumber1'] = boxNumber1; if (boxNumber2) obj['boxNumber2'] = boxNumber2; if (fileNumber1) obj['fileNumber1'] = fileNumber1; if (fileNumber2) obj['fileNumber2'] = fileNumber2; if (startDate1) obj['startDate1'] = startDate1; if (startDate2) obj['startDate2'] = startDate2; if (endDate1) obj['endDate1'] = endDate1; if (endDate2) obj['endDate2'] = endDate2; if (req.params.type == 'json') { if (req.query.length) { obj['start'] = parseInt(req.query.start) || 0; obj['length'] = parseInt(req.query.length); } let [data, [{ recordsTotal }]] = await ReportCtrl.reportFiles(obj); result.data = data; result['recordsTotal'] = result['recordsFiltered'] = recordsTotal; res.json(result); } else if (req.params.type == 'pdf') { let [data] = await ReportCtrl.reportFiles(obj); var pdfName = await PDFCtrl.reportFile(data); if (pdfName) res.download(path.join(exportPath, pdfName)); else res.status(404).end(); } else if (req.params.type == 'excel') { let [data] = await ReportCtrl.reportFiles(obj); var xlsxName = await ExcelCtrl.reportFile(data); res.download(path.join(exportPath, xlsxName)); } else if (req.params.type == 'docx') { let [data] = await ReportCtrl.reportFiles(obj); var docxName = await WordCtrl.reportFile(data); res.download(path.join(exportPath, docxName)); } else { res.status(404).end() } } catch (err) { console.log(err.stack); res.status(400).send(err.message || err) } }); //Báo cáo văn bản router.get('/vanban', permit(403), useLayout, function (req, res, _next) { res.render('baocao/vanban.eta', { title: 'Báo cáo mục lục văn bản' }); }); router.get('/vanban/:type', permit(403), async function (req, res, _next) { try { var result = { draw: parseInt(req.query.draw) || 0, recordsTotal: 0, recordsFiltered: 0, data: [] } var boxNumber1 = parseInt(req.query.boxNumber1) || null; var boxNumber2 = parseInt(req.query.boxNumber2) || null; var fileNumber1 = parseInt(req.query.fileNumber1) || null; var fileNumber2 = parseInt(req.query.fileNumber2) || null; var issuedDate1 = toDate(req.query.issuedDate1); var issuedDate2 = toDate(req.query.issuedDate2); var obj = {}; if (req.query.state) obj['state'] = parseInt(req.query.state) || null; if (req.query.fondCode) obj['fondCode'] = req.query.fondCode || null; if (boxNumber1) obj['boxNumber1'] = boxNumber1; if (boxNumber2) obj['boxNumber2'] = boxNumber2; if (fileNumber1) obj['fileNumber1'] = fileNumber1; if (fileNumber2) obj['fileNumber2'] = fileNumber2; if (issuedDate1) obj['issuedDate1'] = issuedDate1; if (issuedDate2) obj['issuedDate2'] = issuedDate2; if (req.params.type == 'json') { if (req.query.length) { obj['start'] = parseInt(req.query.start) || 0; obj['length'] = parseInt(req.query.length); } let recordset = await ReportCtrl.reportDocuments(obj); if (recordset.length) result['recordsTotal'] = result['recordsFiltered'] = recordset[0]['recordsTotal']; result.data = recordset; res.json(result); } else if (req.params.type == 'pdf') { let docs = await ReportCtrl.reportDocuments(obj); let pdfName = await PDFCtrl.reportDoc(docs); if (pdfName) res.download(path.join(exportPath, pdfName)); else res.status(404).end(); } else if (req.params.type == 'excel') { let docs = await ReportCtrl.reportDocuments(obj); let xlsxName = await ExcelCtrl.reportDocument(docs); res.download(path.join(exportPath, xlsxName)); } else if (req.params.type == 'docx') { let docs = await ReportCtrl.reportDocuments(obj); let docxName = await WordCtrl.reportDoc(docs); res.download(path.join(exportPath, docxName)); } else { res.status(404).end() } } catch (err) { console.log(err.stack); res.status(400).send(err.message || err) } }); module.exports = router;