浏览代码

TASK #4254 前端处理

Tony Kang 2 年之前
父节点
当前提交
483f9aafab

+ 12 - 0
app/controller/report_controller.js

@@ -18,6 +18,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 advanceConst = require('../const/advance');
 // const stringUtil = require('../public/js/string_util_light');
 const needCustomTables = [
     'mem_custom_select',
@@ -277,6 +278,16 @@ module.exports = app => {
                     const groupList = accountList.filter(item => item.account_group === idx);
                     return { groupName: item, groupList };
                 });
+                const where = { tid: this.ctx.tender.id };
+                const advance = await ctx.service.advance.getAllDataByCondition({
+                    columns: ['id', 'order', 'status', 'selected', 'type'],
+                    where,
+                    orders: [['type', 'asc'], ['create_time', 'desc']],
+                });
+                advance.forEach(x => {
+                    x.statusStr = auditConst.advance.statusString[x.status];
+                    x.typeStr = advanceConst.typeColMap[x.type].text;
+                });
 
                 const renderData = {
                     accountGroup: newAccountGroup,
@@ -320,6 +331,7 @@ module.exports = app => {
                     lastAuditor,
                     rpt_id: ctx.query.rpt_id,
                     isAdmin,
+                    prePay: JSON.stringify(advance),
                     OSS_PATH: ctx.app.config.fujianOssPath,
                     viewPmData: PermissionCheck.viewPmData(this.ctx.session.sessionUser.permission),
                 };

+ 4 - 2
app/public/report/js/rpt_jspdf.js

@@ -71,7 +71,8 @@ let JpcJsPDFHelper = {
         }
 
         let newPageMergeBand = private_getIniPageMergeBorder(pageObj[JV.BAND_PROP_MERGE_BAND]);
-        if (current_stage_status === 3) {
+        let ppStatus = zTreeOprObj._chkPrePayStatus();
+        if (current_stage_status === 3 || ppStatus === 3) {
             rptSignatureHelper.mergeSignDate(pageObj, signatureRelArr, false);
             // rptSignatureHelper.mergeSignature(pageObj, signatureRelArr); // 这里merge的意义不大
             rptSignatureHelper.mergeSignAudit(pageObj, signatureRelArr, signAuditArr);
@@ -107,8 +108,9 @@ let JpcJsPDFHelper = {
                     private_drawCell(doc, ctx, cell, fonts, styles, controls, newPageMergeBand);
                 }
                 // 计量有电子签名,要单独处理
+                let ppStatus = zTreeOprObj._chkPrePayStatus();
                 for (let cell of page.signature_cells) {
-                    if (current_stage_status === 3) {
+                    if (current_stage_status === 3 || ppStatus === 3) {
                         private_drawSignature(doc, ctx, cell, styles, controls, newPageMergeBand, false, signatureRelArr);
                     } else {
                         private_drawSignature(doc, ctx, cell, styles, controls, newPageMergeBand, true, signatureRelArr);

+ 30 - 6
app/public/report/js/rpt_main.js

@@ -418,6 +418,29 @@ let zTreeOprObj = {
     _setupArchive: function() {
         //
     },
+    _chkPrePayStatus: async function() {
+        let rst = 0;
+        let me = zTreeOprObj;
+        if (me.currentNode && me.currentNode.hasOwnProperty('flags') && me.currentNode.flags.hasOwnProperty('rptTplType')) {
+            let prePayArr = PRE_PAY;
+            // 返回一个数组,得自己判断,有2种type,0:开工预付款,1:材料预付款; status与stage的status对应(3表示审核通过);order表示顺序(以同类型的最大选择顺序为判断基准),selected表示是否选择(0,1)
+            let ppType = 0;
+            if (me.currentNode['flags']['rptTplType'] === 'tplType_prePay1') {
+                // 开工预付款
+                ppType = 0;
+            } else if (me.currentNode['flags']['rptTplType'] === 'tplType_prePay2') {
+                // 材料预付款
+                ppType = 1;
+            }
+            for (let ppItem of prePayArr) {
+                if (ppItem.type === ppType && ppItem.selected) {
+                    rst = ppItem.status;
+                    break;
+                }
+            }
+        }
+        return rst;
+    },
     requestNormalReport: async function (params) {
         let me = zTreeOprObj;
         if (COMMON_WATER_MARK_PIC_DATA === null || COMMON_WATER_MARK_PIC_DATA === '') {
@@ -439,7 +462,8 @@ let zTreeOprObj = {
                     CURRENT_ROLE_REL_ID = result.signatureRelInfo[0].id;
                     ROLE_REL_LIST = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
                     rptSignatureHelper.originalRoleRelList = me._parseRoleRelList(result.signatureRelInfo[0].rel_content);
-                    if (current_stage_status === 3) {
+                    let ppStatus = zTreeOprObj._chkPrePayStatus();
+                    if (current_stage_status === 3 || ppStatus === 3) {
                         rptSignatureHelper.mergeSignDate(pageRst, ROLE_REL_LIST, true);
                         rptSignatureHelper.mergeSignature(pageRst, ROLE_REL_LIST, true);
                         await rptSignatureHelper.resetDummySignature(pageRst, ROLE_REL_LIST); // 这里重新整理签章坐标信息(因签章大小在后台暂时获取不到,挪到前端处理)
@@ -611,11 +635,10 @@ let rptControlObj = {
     },
     getTplIdsCommon: function (refRptTplIds, rpt_names) {
         for (let node of zTreeOprObj.checkedRptTplNodes) {
+            refRptTplIds.push(node.refId);
+            if (rpt_names) rpt_names.push(node.name);
             if (node.hasOwnProperty('flags') && node.flags.hasOwnProperty('reportType') && node['flags']['reportType'] !== 'NA') {
-                // 未来可能会有这些处理,目前空着
-            } else {
-                refRptTplIds.push(node.refId);
-                if (rpt_names) rpt_names.push(node.name);
+                // 未来可能会有额外处理,目前空着
             }
         }
     },
@@ -841,7 +864,8 @@ let rptControlObj = {
                             }
                             signatureRelArr.push(tmpRel);
                         }
-                        if (current_stage_status === 3) {
+                        let ppStatus = zTreeOprObj._chkPrePayStatus();
+                        if (current_stage_status === 3 || ppStatus === 3) {
                             // 统一安排merge(除草图外)
                             for (let idx = 0; idx < pageDataArr.length; idx++) {
                                 const pageObj = pageDataArr[idx];

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

@@ -400,6 +400,7 @@
     const CONSTRUCT_UNIT_LIST = <%- unitList %>;
     const ROLE_LIST = <%- role_list %>;
     const CUST_NAME = '<%- ctx.session.sessionUser.name %>';
+    const PRE_PAY = <%- prePay %>;
     if (localStorage[CUST_NAME + '_custCfg']) {
         CUST_CFG = JSON.parse(localStorage[CUST_NAME + '_custCfg']);
     } else {