Selaa lähdekoodia

Merge branch 'master' of http://192.168.1.41:3000/maixinrong/Calculation

MaiXinRong 5 vuotta sitten
vanhempi
commit
7ca17711f0

+ 9 - 54
app/controller/report_controller.js

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

+ 8 - 4
app/controller/wap_controller.js

@@ -142,11 +142,10 @@ module.exports = app => {
         async list(ctx) {
             try {
                 // 获取用户新建标段权利
-                const accountInfo = await this.ctx.service.projectAccount.getDataById(this.ctx.session.sessionUser.accountId);
+                const accountInfo = await this.ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
                 const userPermission = accountInfo !== undefined && accountInfo.permission !== '' ? JSON.parse(accountInfo.permission) : null;
 
                 const tenderList = await this.ctx.service.tender.getList('', userPermission);
-
                 for (const t of tenderList) {
                     if (t.user_id === this.ctx.session.sessionUser.accountId && (
                         t.ledger_status === auditConst.ledger.status.checkNo || t.ledger_status === auditConst.ledger.status.uncheck)) {
@@ -156,9 +155,14 @@ module.exports = app => {
                     }
                     if (t.ledger_status === auditConst.ledger.status.checked) {
                         t.lastStage = await this.ctx.service.stage.getLastestStage(t.id, true);
-                        if (t.lastStage) {
-                            await this.ctx.service.stage.checkStageGatherData(t.lastStage);
+
+                        if (!t.lastStage) continue;
+                        if (t.lastStage.status === auditConst.stage.status.uncheck && t.lastStage.user_id !== this.ctx.session.sessionUser.accountId) {
+                            t.lastStage = await this.ctx.service.stage.getLastestStage(t.id);
                         }
+
+                        if (!t.lastStage) continue;
+                        await this.ctx.service.stage.checkStageGatherData(t.lastStage);
                     }
                 }
                 const categoryData = await this.ctx.service.category.getAllCategory(this.ctx.session.sessionProject.id);

+ 1 - 1
app/service/stage.js

@@ -225,7 +225,7 @@ module.exports = app => {
                     }, {id: stage.id});
                 } else if (stage.tp_history) {
                     const his = this.ctx.helper._.find(stage.tp_history, {times: stage.curTimes, order: stage.curOrder});
-                    console.log(his);
+                    // console.log(his);
                     if (his) {
                         stage.contract_tp = his.contract_tp;
                         stage.qc_tp = his.qc_tp;

+ 4 - 1
app/view/report/index.ejs

@@ -13,7 +13,7 @@
             <% } %>
             <div>
                 <div class="d-inline-block">
-                    <div class="dropdown">
+                    <div class="dropdown" id="divSelectableStages">
                         <button class="btn btn-sm btn-light dropdown-toggle text-primary" type="button" id="btnCurrentStage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuButton" id="optionSelectableStages"></div>
                     </div>
@@ -395,6 +395,9 @@
                 }
             }
         }
+        if (STAGE_ID > 0) {
+            $("#divSelectableStages")[0].style.display = 'none';
+        }
     }
 
     function changeCurrentStage(ele) {