Browse Source

code sync + 签名意见问题

TonyKang 5 years ago
parent
commit
c5ec7fa3bd

+ 45 - 3
app/controller/report_controller.js

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

+ 4 - 4
app/public/report/js/rpt_main.js

@@ -8,7 +8,7 @@ const NEXT_PAGE_OFFSET = 160;
 const FIRST_PAGE_OFFSET = 50;
 const LAST_PAGE_OFFSET = 60;
 
-const WAIT_TIME_EXPORT = 12000;
+const WAIT_TIME_EXPORT = 300000;
 
 let fontSuffixMapObj = {"表标题": "title", "列标题": "column", "正文内容": "content", "合计": "summary", "表眉/表脚": "header_footer"};
 
@@ -504,7 +504,7 @@ let rptControlObj = {
             if (chkNodes.length > 0) {
                 delete params.orientation; // 打印时有勾选的话,不需要提供方向
             }
-            CommonAjax.postXsrfEx("/tender/report_api/createExcelFilesInOneBook", params, 300000, true, getCookie('csrfToken'), function(result){
+            CommonAjax.postXsrfEx("/tender/report_api/createExcelFilesInOneBook", params, WAIT_TIME_EXPORT, true, getCookie('csrfToken'), function(result){
                     if (result) {
                         let uuIdUrls = [];
                         let uuIdUrl =  "/getFileByUUID/" + result.data[0].uuid + "/" + stringUtil.replaceAll(result.data[0].reportName, "#", "_") + "/xlsx";
@@ -533,7 +533,7 @@ let rptControlObj = {
                 delete params.orientation; // 打印时有勾选的话,不需要提供方向
             }
 
-            CommonAjax.postXsrfEx("/tender/report_api/createExcelFiles", params, 300000, true, getCookie('csrfToken'), function(result){
+            CommonAjax.postXsrfEx("/tender/report_api/createExcelFiles", params, WAIT_TIME_EXPORT, true, getCookie('csrfToken'), function(result){
                     if (result) {
                         let uuIdUrls = [];
                         for (let uuIdObj of result.data) {
@@ -597,7 +597,7 @@ let rptControlObj = {
                 await rptCustomObj.getCustomSelect(params);
                 delete params.orientation; // 打印时有勾选的话,不需要提供方向
                 $.bootstrapLoading.start();
-                CommonAjax.postXsrfEx("/tender/report_api/getMultiReports", params, 300000, true, getCookie('csrfToken'),
+                CommonAjax.postXsrfEx("/tender/report_api/getMultiReports", params, WAIT_TIME_EXPORT, true, getCookie('csrfToken'),
                     function(result){
                         // closeWaitingView();
                         $.bootstrapLoading.end();

+ 1 - 1
app/public/report/js/rpt_signature.js

@@ -534,10 +534,10 @@ let rptSignatureHelper = {
         for (const page of pageData.items) {
             if (page.signature_audit_cells) {
                 for (const sCell of page.signature_audit_cells) {
-                    sCell.Value = '同意'; //默认的
                     for (const role_rel of currRoleRelList) {
                         if (sCell.signature_name === role_rel.signature_name + '_审核意见') {
                             let preDate = '';
+                            sCell.Value = '同意'; // 只有选择了签名的,才需要初始化一个默认的意见(之前的逻辑在有多个签名,哪怕只选择了一个,其他的意见都会有默认意见)
                             for (const audit_rel of currAuditList) {
                                 if (role_rel.acc_id === audit_rel.aid) {
                                     if (audit_rel.end_time > preDate && audit_rel.status === 3) {

+ 2 - 2
app/reports/util/rpt_excel_util.js

@@ -903,9 +903,9 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
     const colStr = private_getCellIdxStr(xPos.length - 3);
     rst.push('<dimension ref="A1:' + colStr + '' + yPos.length + '"/>');
     if (isFirstSheet) {
-        rst.push('<sheetViews><sheetView tabSelected="1" workbookViewId="0">');
+        rst.push('<sheetViews><sheetView showGridLines="1" tabSelected="1" workbookViewId="0">');
     } else {
-        rst.push('<sheetViews><sheetView workbookViewId="0">');
+        rst.push('<sheetViews><sheetView showGridLines="1" workbookViewId="0">');
     }
     // rst.push('<selection sqref="A1:' + colStr + '1"/>');
     rst.push('<selection sqref="A1:A1"/>');