????
Current Path : C:/inetpub/vhost/binhdinhinvest.gdtvietnam.com/api/dist/xtdt/service/ |
Current File : C:/inetpub/vhost/binhdinhinvest.gdtvietnam.com/api/dist/xtdt/service/export.service.js |
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExportService = void 0; const common_1 = require("@nestjs/common"); const typeorm_1 = require("@nestjs/typeorm"); const typeorm_2 = require("typeorm"); const excel4node_1 = require("excel4node"); const entity_1 = require("../entity"); const entity_2 = require("../../category/entity"); let ExportService = class ExportService { constructor(entity) { this.entity = entity; } async exportDiemDauTu(tinhTrang, loai) { const query = this.entity.getRepository(entity_1.DiemDauTu) .createQueryBuilder("diem") .select(entity_1.DDT_COLS).addSelect('qh.TenQuanHuyen', 'maQuanHuyen') .leftJoin(entity_2.QuanHuyen, 'qh', 'qh.MaQuanHuyen = diem.MaQuanHuyen'); tinhTrang && query.where('diem.TinhTrang = :tinhTrang', { tinhTrang }); loai && query.andWhere('diem.LoaiHinhDauTu = :loai', { loai }); query.orderBy('diem.OBJECTID', 'ASC'); const meta = this.entity.getRepository(entity_1.DiemDauTu).metadata.columns .filter(f => f.propertyName === 'maQuanHuyen' || entity_1.DDT_COLS.indexOf(f.propertyName) > -1); const data = await query.getRawMany(); return await this.buildReport(meta, data); } async exportRanhGioiKhu(loaiKhu) { const data = await this.entity.getRepository(entity_1.RanhGioiKhu) .createQueryBuilder('khu') .select(entity_1.RGK_COLS).addSelect('qh.TenQuanHuyen', 'maQuanHuyen') .leftJoin(entity_2.QuanHuyen, 'qh', 'qh.MaQuanHuyen = khu.MaQuanHuyen') .where('khu.LoaiKhu = :loaiKhu', { loaiKhu }) .orderBy('khu.OBJECTID', 'ASC') .getRawMany(); const meta = this.entity.getRepository(entity_1.RanhGioiKhu).metadata.columns .filter(f => f.propertyName === 'maQuanHuyen' || entity_1.RGK_COLS.indexOf(f.propertyName) > -1); return await this.buildReport(meta, data); } async exportDoanhNghiep(loaiDn) { const query = this.entity.getRepository(entity_1.DoanhNghiep) .createQueryBuilder('dn') .innerJoinAndSelect("dn.dnThongTinThues", "dntt") .leftJoinAndSelect("dn.quocGia", "qg") .addSelect("dn.quocGiaId", "quocGia.tenQuocGia"); loaiDn && query.where('dn.LoaiDoanhNghiep=:loaiDn', { loaiDn }); const a = await query.getMany(); const meta = this.entity.getRepository(entity_1.DNThongTinThue).metadata.columns .filter(f => entity_1.DN_COLS.indexOf(f.propertyName) > -1); return await this.buildReportDn(meta, a); } buildReport(columns, data) { const wb = new excel4node_1.Workbook({ jszip: { compression: 'DEFLATE' }, defaultFont: { size: 12, name: 'Times New Roman', color: '000000' }, dateFormat: 'd/m/yyyy' }); const ws = wb.addWorksheet("BAO CAO", { sheetView: { pane: { activePane: 'bottomRight', state: 'frozenSplit', topLeftCell: 'A2', ySplit: 1 } } }); ws.cell(1, 1).style(entity_1.HEADER_STYLES).string('STT'); for (let c = 0; c < columns.length; c++) { const col = columns[c]; ws.cell(1, c + 2).style(entity_1.HEADER_STYLES).string(col.comment); for (let r = 0; r < data.length; r++) { if (c === 0) ws.cell(r + 2, 1).style(entity_1.CELL_STYLES).number(r + 1); const cell = ws.cell(r + 2, c + 2).style(entity_1.CELL_STYLES); const value = data[r][col.propertyName]; if (!value) continue; else if (value instanceof Date) cell.date(value); else if (typeof value === "number") cell.number(value); else cell.string(value); } } ws.column(1).setWidth(5); for (let c = 0; c < columns.length; c++) { if (columns[c].length) ws.column(c + 2).setWidth(Math.min(30, +columns[c].length)); } return wb.writeToBuffer(); } buildReportDn(columns, data) { const wb = new excel4node_1.Workbook({ jszip: { compression: 'DEFLATE' }, defaultFont: { size: 12, name: 'Times New Roman', color: '000000' }, dateFormat: 'd/m/yyyy' }); const ws = wb.addWorksheet("BAO CAO", { sheetView: { pane: { activePane: 'bottomRight', state: 'frozenSplit', topLeftCell: 'A2', ySplit: 1 } } }); ws.cell(1, 1).style(entity_1.HEADER_STYLES).string('STT'); let i = 2; for (let c = 0; c < columns.length; c++) { const col = columns[c]; ws.cell(1, c + 2).style(entity_1.HEADER_STYLES).string(col.comment); } for (let r = 0; r < data.length; r++) { const dnThongTinThues = data[r]['dnThongTinThues']; ws.cell(i, 1, i + dnThongTinThues.length, 1, true).style(entity_1.CELL_STYLES).number(r + 1); ws.cell(i, 2, i, columns.length + 1, true).style(Object.assign(Object.assign({}, entity_1.CELL_STYLES), { font: { bold: true } })).string(`${data[r].maDoanhNghiep} - ${data[r].tenDoanhNghiep}`); i++; for (let t = 0; t < dnThongTinThues.length; t++) { for (let c = 0; c < columns.length; c++) { const cell = ws.cell(i, c + 2).style(entity_1.CELL_STYLES); const col = columns[c]; ws.cell(1, c + 2).style(entity_1.HEADER_STYLES).string(col.comment); const value = dnThongTinThues[t][col.propertyName]; if (!value) continue; else if (value instanceof Date) cell.date(value); else if (typeof value === "number") cell.number(value); else cell.string(value); } i++; } } ws.column(1).setWidth(5); for (let c = 0; c < columns.length; c++) { if (columns[c].length) ws.column(c + 2).setWidth(Math.min(30, +columns[c].length)); } return wb.writeToBuffer(); } }; ExportService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, typeorm_1.InjectEntityManager)()), __metadata("design:paramtypes", [typeorm_2.EntityManager]) ], ExportService); exports.ExportService = ExportService;