TonyKang hace 5 años
padre
commit
02cb11d4a1
Se han modificado 2 ficheros con 2883 adiciones y 2880 borrados
  1. 31 1
      app/controller/report_controller.js
  2. 2852 2879
      package-lock.json

+ 31 - 1
app/controller/report_controller.js

@@ -1044,7 +1044,37 @@ async function encodeDummySignatureDataUri(pageRst, baseDir) {
     }
 }
 
-function createDownloadJob(ctx) {
+async function createDownloadJob(ctx, baseUuid) {
+    const params = JSON.parse(ctx.request.body.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 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));
+    }
+    const uuidRst = await Promise.all(runnableRst);
     /*
     const params = JSON.parse(ctx.request.body.params);
     await this._saveCustomSelects(params);

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2852 - 2879
package-lock.json