|
@@ -17,6 +17,7 @@ const fs = require('fs');
|
|
const rptCronJob = require('../reports/util/rpt_tmp_file_sweep');
|
|
const rptCronJob = require('../reports/util/rpt_tmp_file_sweep');
|
|
const RPT_DEF_PROPERTIES = require('../const/report_defined_properties');
|
|
const RPT_DEF_PROPERTIES = require('../const/report_defined_properties');
|
|
const reportConst = require('../const/report');
|
|
const reportConst = require('../const/report');
|
|
|
|
+const scheduleJob = require('node-schedule');
|
|
|
|
|
|
module.exports = app => {
|
|
module.exports = app => {
|
|
class ReportController extends app.BaseController {
|
|
class ReportController extends app.BaseController {
|
|
@@ -470,7 +471,7 @@ module.exports = app => {
|
|
// await ctx.service.rptCustomDefine.db.insert(ctx.service.rptCustomDefine.tableName, updateData);
|
|
// await ctx.service.rptCustomDefine.db.insert(ctx.service.rptCustomDefine.tableName, updateData);
|
|
// }
|
|
// }
|
|
const result = await this._getReport(ctx, data);
|
|
const result = await this._getReport(ctx, data);
|
|
- ctx.body = {err: 0, msg: '', data: result};
|
|
|
|
|
|
+ ctx.body = { err: 0, msg: '', data: result };
|
|
} catch (err) {
|
|
} catch (err) {
|
|
ctx.helper.log(err);
|
|
ctx.helper.log(err);
|
|
ctx.body = this.ajaxErrorBody(err, '保存数据出错');
|
|
ctx.body = this.ajaxErrorBody(err, '保存数据出错');
|
|
@@ -600,7 +601,7 @@ async function getAllPagesCommon(ctx, rptTpl, params, option, outputType, baseDi
|
|
// console.log(filter.tables);
|
|
// console.log(filter.tables);
|
|
const rawDataObj = await ctx.service.report.getReportData(params, filter.tables, filter.memFieldKeys,
|
|
const rawDataObj = await ctx.service.report.getReportData(params, filter.tables, filter.memFieldKeys,
|
|
rptTpl[JV.NODE_CUSTOM_DEFINE], customSelect);
|
|
rptTpl[JV.NODE_CUSTOM_DEFINE], customSelect);
|
|
- await ctx.helper.saveBufferFile(JSON.stringify(rawDataObj, "", "\t"), ctx.app.baseDir + '/mem.json');
|
|
|
|
|
|
+ await ctx.helper.saveBufferFile(JSON.stringify(rawDataObj, '', '\t'), ctx.app.baseDir + '/mem.json');
|
|
// console.log(rawDataObj);
|
|
// console.log(rawDataObj);
|
|
try {
|
|
try {
|
|
const printCom = JpcEx.createNew();
|
|
const printCom = JpcEx.createNew();
|
|
@@ -638,7 +639,7 @@ async function getAllPagesCommon(ctx, rptTpl, params, option, outputType, baseDi
|
|
// console.log(pageRst);
|
|
// console.log(pageRst);
|
|
return pageRst;
|
|
return pageRst;
|
|
} catch (ex) {
|
|
} catch (ex) {
|
|
- console.log("报表数据异常, tender id: " + params.tender_id);
|
|
|
|
|
|
+ console.log('报表数据异常, tender id: ' + params.tender_id);
|
|
console.log(ex);
|
|
console.log(ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1015,3 +1016,44 @@ async function encodeDummySignatureDataUri(pageRst, baseDir) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+function createDownloadJob(ctx) {
|
|
|
|
+ /*
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 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;
|
|
|
|
+ //*/
|
|
|
|
+}
|