@servicelabsco/nestjs-utility-services 1.2.130 → 1.2.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
|
|
1
|
+
import { Job } from 'bullmq';
|
1
2
|
import { SqlService } from '../../platformUtility/services/sql.service';
|
2
3
|
import { ReportEntity } from '../entities/report.entity';
|
3
|
-
import { UploadService } from '../services/upload.service';
|
4
4
|
import { PropertyService } from '../services/property.service';
|
5
|
+
import { UploadService } from '../services/upload.service';
|
5
6
|
interface ReportParams {
|
6
7
|
[key: string]: any;
|
7
8
|
}
|
@@ -14,8 +15,10 @@ export declare class GenerateDownloadableReportFile {
|
|
14
15
|
private BATCH_SIZE;
|
15
16
|
private readonly MAX_ITERATIONS;
|
16
17
|
private filePath;
|
18
|
+
private job;
|
19
|
+
private jobState;
|
17
20
|
constructor(report: ReportEntity, sqlService: SqlService, uploadService: UploadService, propertyService: PropertyService);
|
18
|
-
generate(params: ReportParams): Promise<string>;
|
21
|
+
generate(params: ReportParams, job?: Job): Promise<string>;
|
19
22
|
private uploadToS3;
|
20
23
|
private getActiveSheets;
|
21
24
|
private executePreScript;
|
@@ -31,5 +34,6 @@ export declare class GenerateDownloadableReportFile {
|
|
31
34
|
private ensureTempDirectory;
|
32
35
|
private copyFile;
|
33
36
|
private init;
|
37
|
+
private setProgress;
|
34
38
|
}
|
35
39
|
export {};
|
@@ -18,15 +18,18 @@ class GenerateDownloadableReportFile {
|
|
18
18
|
this.sqlService = sqlService;
|
19
19
|
this.uploadService = uploadService;
|
20
20
|
this.propertyService = propertyService;
|
21
|
-
this.BATCH_SIZE =
|
21
|
+
this.BATCH_SIZE = 10000;
|
22
22
|
this.MAX_ITERATIONS = 100000;
|
23
|
+
this.jobState = 0;
|
23
24
|
this.codeEvaluator = new code_evaluator_1.CodeEvaluator();
|
24
25
|
}
|
25
|
-
async generate(params) {
|
26
|
+
async generate(params, job) {
|
26
27
|
this.setPath();
|
27
28
|
await this.init();
|
29
|
+
this.job = job;
|
28
30
|
const sheets = await this.getActiveSheets();
|
29
31
|
params = await this.executePreScript(params);
|
32
|
+
await this.setProgress(10);
|
30
33
|
const workbook = new ExcelJS.stream.xlsx.WorkbookWriter({ filename: this.filePath });
|
31
34
|
await this.copyFile(workbook, sheets);
|
32
35
|
for (const sheet of sheets) {
|
@@ -62,7 +65,8 @@ class GenerateDownloadableReportFile {
|
|
62
65
|
await this.executeSheetPreScript(sheet, clonedParams);
|
63
66
|
const worksheet = workbook.addWorksheet(sheet.name);
|
64
67
|
const columns = await this.getSheetColumns(sheet);
|
65
|
-
this.writeHeader(worksheet, columns);
|
68
|
+
await this.writeHeader(worksheet, columns);
|
69
|
+
await this.setProgress(1);
|
66
70
|
await this.writeSheetData(worksheet, sheet, columns, clonedParams);
|
67
71
|
}
|
68
72
|
async getSheetColumns(sheet) {
|
@@ -87,18 +91,19 @@ class GenerateDownloadableReportFile {
|
|
87
91
|
global.console.log('sheet.name', sheet.name, this.BATCH_SIZE, offset, length);
|
88
92
|
if (!items.length)
|
89
93
|
return;
|
90
|
-
this.writeRows(worksheet, items, columns);
|
94
|
+
await this.writeRows(worksheet, items, columns);
|
95
|
+
await this.setProgress();
|
91
96
|
if (items.length < this.BATCH_SIZE)
|
92
97
|
return;
|
93
98
|
}
|
94
99
|
}
|
95
|
-
writeHeader(worksheet, columns) {
|
96
|
-
worksheet.addRow(columns.map((column) => column.display_name));
|
100
|
+
async writeHeader(worksheet, columns) {
|
101
|
+
await worksheet.addRow(columns.map((column) => column.display_name));
|
97
102
|
}
|
98
|
-
writeRows(worksheet, records, columns) {
|
99
|
-
|
100
|
-
worksheet.addRow(columns.map((column) => record[column.name] ?? ''));
|
101
|
-
}
|
103
|
+
async writeRows(worksheet, records, columns) {
|
104
|
+
for (const record of records) {
|
105
|
+
await worksheet.addRow(columns.map((column) => record[column.name] ?? ''));
|
106
|
+
}
|
102
107
|
}
|
103
108
|
async executeQuery(query, postScript) {
|
104
109
|
const records = await this.sqlService.read(query);
|
@@ -177,6 +182,13 @@ class GenerateDownloadableReportFile {
|
|
177
182
|
const maxRecord = await this.propertyService.get('downloadable.report.max.per.query', 10000);
|
178
183
|
this.BATCH_SIZE = +maxRecord;
|
179
184
|
}
|
185
|
+
async setProgress(increment = .1) {
|
186
|
+
this.jobState = this.jobState + increment;
|
187
|
+
global.console.log('GenerateDownloadableReportFile progress: ', this.jobState);
|
188
|
+
if (!this.job)
|
189
|
+
return;
|
190
|
+
return this.job.updateProgress(this.jobState);
|
191
|
+
}
|
180
192
|
}
|
181
193
|
exports.GenerateDownloadableReportFile = GenerateDownloadableReportFile;
|
182
194
|
//# sourceMappingURL=generate.downloadable.report.file.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generate.downloadable.report.file.js","sourceRoot":"","sources":["../../../src/system/libraries/generate.downloadable.report.file.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"generate.downloadable.report.file.js","sourceRoot":"","sources":["../../../src/system/libraries/generate.downloadable.report.file.ts"],"names":[],"mappings":";;;AACA,mCAAmC;AACnC,2BAAqE;AACrE,+BAA8C;AAC9C,gEAA4D;AAC5D,8EAA0E;AAE1E,6DAAyD;AAEzD,yEAAoE;AACpE,2EAAsE;AAGtE,qDAAiD;AACjD,yDAAoD;AACpD,uDAAwD;AAiBxD,MAAa,8BAA8B;IAQvC,YACqB,MAAoB,EACpB,UAAsB,EACtB,aAA4B,EAC1B,eAAgC;QAHlC,WAAM,GAAN,MAAM,CAAc;QACpB,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAV/C,eAAU,GAAG,KAAK,CAAC;QACV,mBAAc,GAAG,MAAM,CAAC;QAGjC,aAAQ,GAAG,CAAC,CAAC;QAQjB,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7C,CAAC;IAQD,KAAK,CAAC,QAAQ,CAAC,MAAoB,EAAE,GAAS;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAMO,KAAK,CAAC,UAAU;QACpB,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAA,iBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QACvH,IAAA,eAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1B,OAAO,GAAG,CAAC;IACf,CAAC;IAMO,KAAK,CAAC,eAAe;QACzB,OAAO,uCAAiB,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAClD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC;SACpD,CAAC,CAAC;IACP,CAAC;IAOO,KAAK,CAAC,gBAAgB,CAAC,MAAoB;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO,MAAM,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,yCAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAQO,KAAK,CAAC,YAAY,CAAC,QAA4C,EAAE,KAAwB,EAAE,MAAoB;QACnH,IAAI,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACvE,CAAC;IAOO,KAAK,CAAC,eAAe,CAAC,KAAwB;QAClD,OAAO,4BAAY,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE;YACnE,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACrC,CAAC,CAAC;IACP,CAAC;IAQO,KAAK,CAAC,qBAAqB,CAAC,KAAwB,EAAE,MAAoB;QAC9E,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IASO,KAAK,CAAC,cAAc,CACxB,SAA4B,EAC5B,KAAwB,EACxB,OAAuB,EACvB,MAAoB;QAEpB,MAAM,GAAG,GAAG,MAAM,IAAI,iCAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,GAAG,UAAU,IAAI,CAAC,UAAU,WAAW,MAAM,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE9E,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO;YAE1B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAEzB,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;gBAAE,OAAO;QAC/C,CAAC;IACL,CAAC;IAOO,KAAK,CAAC,WAAW,CAAC,SAA4B,EAAE,OAAuB;QAC3E,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACzE,CAAC;IAQO,KAAK,CAAC,SAAS,CAAC,SAA4B,EAAE,OAAc,EAAE,OAAuB;QACzF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAQO,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,UAAmB;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAQO,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAoB;QAC7D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,oBAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAClB,CAAC;IAQO,KAAK,CAAC,OAAO;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,kCAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC;QAChF,IAAI,CAAC,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAMO,KAAK,CAAC,mBAAmB;QAC7B,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAElD,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACvB,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAA4C,EAAE,MAA2B;QAC5F,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QACjD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,KAAK,MAAM,WAAW,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE/C,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAG5D,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;aACzB,CAAC,CAAC,CAAC;YAEJ,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;gBACjE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhD,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;oBAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAEhD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,UAAU,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACJ,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBAClC,CAAC;oBAGD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,UAAU,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzC,CAAC;oBAGD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACvC,CAAC;oBAGD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC3C,CAAC;oBAGD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,UAAU,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACvC,CAAC;oBAGD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBACpC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,MAAM,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IASO,KAAK,CAAC,IAAI;QACd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/E,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACJ;AAjUD,wEAiUC"}
|
package/package.json
CHANGED