|
@@ -174,6 +174,7 @@ module.exports = app => {
|
|
|
try {
|
|
|
// console.log('rptCronJob.started: ' + rptCronJob.started);
|
|
|
rptCronJob.started = true;
|
|
|
+ // console.log('this.app.baseDir: ' + this.app.baseDir);
|
|
|
rptCronJob.createJob(null, this.app.baseDir + '/app/public/download');
|
|
|
} catch (ex) {
|
|
|
rptCronJob.started = false;
|
|
@@ -1044,24 +1045,13 @@ async function encodeDummySignatureDataUri(pageRst, baseDir) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-async function createDownloadJob(ctx, baseUuid) {
|
|
|
+async function createExportRequestJob(ctx) {
|
|
|
const params = JSON.parse(ctx.request.body.params);
|
|
|
+ // const uuidArr = params.uuidArr;
|
|
|
const baseDir = this.app.baseDir;
|
|
|
- function getExcelByPageData(pageRst, rpt_name, innerRoleRel) {
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- rpt_xl_util.exportExcel(pageRst, params.pageSize, rpt_name, params.isOneSheet, null, null, baseDir, innerRoleRel,
|
|
|
- (err, uuidName) => {
|
|
|
- if (err) return reject(err);
|
|
|
- const fileRst = { uuid: uuidName, reportName: rpt_name };
|
|
|
- resolve(fileRst);
|
|
|
- }
|
|
|
- );
|
|
|
- });
|
|
|
- }
|
|
|
const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
|
|
|
const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
|
|
|
await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
|
- const runnableRst = [];
|
|
|
for (let idx = 0; idx < pageRstArr.length; idx++) {
|
|
|
let roleRel = null;
|
|
|
for (const roleR of roleRelArr) {
|
|
@@ -1070,47 +1060,12 @@ async function createDownloadJob(ctx, baseUuid) {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- // console.log('roleRel.rel_content: ' + roleRel.rel_content);
|
|
|
- // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/testBuiltPageResult.jsp');
|
|
|
- runnableRst.push(getExcelByPageData(pageRstArr[idx], params.rpt_names[idx], roleRel));
|
|
|
- }
|
|
|
- const uuidRst = await Promise.all(runnableRst);
|
|
|
- /*
|
|
|
- const params = JSON.parse(ctx.request.body.params);
|
|
|
- await this._saveCustomSelects(params);
|
|
|
- const baseDir = this.app.baseDir;
|
|
|
- function getExcelByPageData(pageRst, rpt_name, innerRoleRel) {
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- rpt_xl_util.exportExcel(pageRst, params.pageSize, rpt_name, params.isOneSheet, null, null, baseDir, innerRoleRel,
|
|
|
- (err, uuidName) => {
|
|
|
- if (err) return reject(err);
|
|
|
- const fileRst = { uuid: uuidName, reportName: rpt_name };
|
|
|
- resolve(fileRst);
|
|
|
- }
|
|
|
- );
|
|
|
- });
|
|
|
- }
|
|
|
- const roleRelArr = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_ids, params.stage_id)) : [];
|
|
|
- // const roleRel = (params.stage_status === 3) ? (await ctx.service.roleRptRel.getRoleRptRelByDetailIds(params.tender_id, params.rpt_tpl_id)) : [];
|
|
|
- const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
|
|
|
- await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
|
-
|
|
|
- const runnableRst = [];
|
|
|
- for (let idx = 0; idx < pageRstArr.length; idx++) {
|
|
|
- let roleRel = null;
|
|
|
- for (const roleR of roleRelArr) {
|
|
|
- if (roleR.rpt_id === params.rpt_ids[idx]) {
|
|
|
- roleRel = JSON.parse(roleR.rel_content);
|
|
|
- break;
|
|
|
- }
|
|
|
+ if (params.exportType === 'xlsx') {
|
|
|
+ const zip = rpt_xl_util.exportExcel(pageRstArr[idx], params.pageSize, null, params.isOneSheet, null, null, baseDir, roleRel, null); // 给个null报表名称,返回zip对象自己处理,这样就不用改接口结构了
|
|
|
+ zip.generateNodeStream({ type: 'nodebuffer', streamFiles: true })
|
|
|
+ .pipe(fs.createWriteStream(baseDir + '/app/public/download/' + params.uuidArr[idx] + '.xlsx'));
|
|
|
+ } else if (params.exportType === 'pdf') {
|
|
|
+ // PDF的后期补上
|
|
|
}
|
|
|
- // console.log('roleRel.rel_content: ' + roleRel.rel_content);
|
|
|
- // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/testBuiltPageResult.jsp');
|
|
|
- runnableRst.push(getExcelByPageData(pageRstArr[idx], params.rpt_names[idx], roleRel));
|
|
|
}
|
|
|
- // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/计量导出pageArr.js');
|
|
|
- const uuidRst = await Promise.all(runnableRst);
|
|
|
- ctx.body = { data: uuidRst };
|
|
|
- ctx.status = 201;
|
|
|
- //*/
|
|
|
}
|