| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |