Browse Source

支付审批-报表信息返回签名信息

Tony Kang 2 years ago
parent
commit
c24b848059

+ 0 - 6
app/controller/payment_controller.js

@@ -237,12 +237,6 @@ module.exports = app => {
                         const rptTpl = await ctx.service.rptTpl.getDataById(rpt.ID);
                         // 根据模板ID获取报表JSON
                         const pageRst = ctx.service.jpcReport.getAllPreviewPagesCommon(rptTpl, 'A4');
-                        /*
-                        //--------------------
-                        params.rpt_tpl_id = rpt.ID;
-                        const actRptTpl = JSON.parse(rptTpl.rpt_content);
-                        const pageRst = await ctx.service.jpcReport.getAllPagesCommon(ctx, actRptTpl, params, JV.PAGING_OPTION_NORMAL, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir, null);
-                        */
                         rptTplList.push(pageRst.items[0]);
                     }
                 }

+ 23 - 21
app/reports/rpt_component/helper/jpc_helper_discrete.js

@@ -251,7 +251,7 @@ const JpcDiscreteHelper = {
         }
         return rst;
     },
-    outputPreviewDiscreteInfo(discreteArray, bands, unitFactor, pageStatus, $CURRENT_RPT, interactRst) {
+    outputPreviewDiscreteInfo(discreteArray, bands, unitFactor, pageStatus, $CURRENT_RPT, interactRst, signatureRst = [], signatureDateRst = [], signatureAuditRst = []) {
         const rst = [];
         for (let i = 0; i < discreteArray.length; i++) {
             const band = bands[discreteArray[i][JV.PROP_BAND_NAME]];
@@ -267,28 +267,30 @@ const JpcDiscreteHelper = {
                 if (discreteArray[i][JV.PROP_DISCRETE_FIELDS]) {
                     for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {
                         const df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];
-                        let value = '';
-                        if (df[JV.PROP_DFT_VALUE]) {
-                            value = df[JV.PROP_DFT_VALUE];
-                        }
-                        const item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, null);
-                        // position
-                        item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
-                        if (interactRst && JE.isInterActionParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
-                            if (Array.isArray(interactRst)) {
-                                let pID = 0;
-                                if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
-                                    pID = df[JV.PROP_PARAM_ID];
-                                } else {
-                                    pID = df[JV.PROP_ID];
+                        if (!this.setupSignatureFieldParam(signatureRst, signatureDateRst, signatureAuditRst, interactRst, $CURRENT_RPT, band, unitFactor, df)) {
+                            let value = '';
+                            if (df[JV.PROP_DFT_VALUE]) {
+                                value = df[JV.PROP_DFT_VALUE];
+                            }
+                            const item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, null);
+                            // position
+                            item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                            if (interactRst && JE.isInterActionParam(df[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                                if (Array.isArray(interactRst)) {
+                                    let pID = 0;
+                                    if (df.hasOwnProperty(JV.PROP_PARAM_ID)) {
+                                        pID = df[JV.PROP_PARAM_ID];
+                                    } else {
+                                        pID = df[JV.PROP_ID];
+                                    }
+                                    const iParam = JE.P(pID, $CURRENT_RPT);
+                                    item[JV.PROP_BAND_NAME] = band.Name;
+                                    item[JV.PROP_DATA_TYPE] = iParam[JV.PROP_DATA_TYPE];
+                                    interactRst.push(item);
                                 }
-                                const iParam = JE.P(pID, $CURRENT_RPT);
-                                item[JV.PROP_BAND_NAME] = band.Name;
-                                item[JV.PROP_DATA_TYPE] = iParam[JV.PROP_DATA_TYPE];
-                                interactRst.push(item);
+                            } else {
+                                rst.push(item);
                             }
-                        } else {
-                            rst.push(item);
                         }
                     }
                 }

+ 16 - 13
app/reports/rpt_component/jpc_bill_tab.js

@@ -62,7 +62,7 @@ JpcBillTabSrv.prototype.createNew = function() {
         me.signatureAuditRst = [];
         me.interactRst = [];
         rst = rst.concat(me.outputPreviewContent(rptTpl, bands, unitFactor, controls, pageStatus, $CURRENT_RPT));
-        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst));
+        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst, me.signatureRst, me.signatureDateRst, me.signatureAuditRst));
         return rst;
     };
     JpcBillTabResult.outputAsSimpleJSONPage = function(rptTpl, dataObj, page, bands, controls, fonts, $CURRENT_RPT, customizeCfg) {
@@ -97,6 +97,7 @@ JpcBillTabSrv.prototype.createNew = function() {
         return rst;
     };
     JpcBillTabResult.outputPreviewContent = function(rptTpl, bands, unitFactor, controls, pageStatus, $CURRENT_RPT) {
+        const me = this;
         let rst = [];
         const tab = rptTpl[JV.NODE_BILL_INFO][JV.NODE_BILL_CONTENT];
         const band = bands[tab[JV.PROP_BAND_NAME]];
@@ -106,17 +107,19 @@ JpcBillTabSrv.prototype.createNew = function() {
                 for (let i = 0; i < tab_fields.length; i++) {
                     const tab_field = tab_fields[i];
                     if (!(tab_field[JV.PROP_HIDDEN])) {
-                        const cellItem = JpcCommonOutputHelper.createCommonOutput(tab_field, '', controls);
-                        cellItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
-                        if (JE.isInterActionParam(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
-                            const iParam = JE.P(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT);
-                            cellItem[JV.PROP_BAND_NAME] = band.Name;
-                            cellItem[JV.PROP_DATA_TYPE] = iParam[JV.PROP_DATA_TYPE];
-                            cellItem[JV.PROP_LABEL] = iParam[JV.PROP_NAME];
-                            cellItem[JV.PROP_PREFIX] = tab_field[JV.PROP_PREFIX];
-                            this.interactRst.push(cellItem);
-                        } else {
-                            rst.push(cellItem);
+                        if (!JpcDiscreteHelper.setupSignatureFieldParam(me.signatureRst, me.signatureDateRst, me.signatureAuditRst, me.interactRst, $CURRENT_RPT, band, unitFactor, tab_field)) {
+                            const cellItem = JpcCommonOutputHelper.createCommonOutput(tab_field, '', controls);
+                            cellItem[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
+                            if (JE.isInterActionParam(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT)) {
+                                const iParam = JE.P(tab_field[JV.PROP_PARAM_ID], $CURRENT_RPT);
+                                cellItem[JV.PROP_BAND_NAME] = band.Name;
+                                cellItem[JV.PROP_DATA_TYPE] = iParam[JV.PROP_DATA_TYPE];
+                                cellItem[JV.PROP_LABEL] = iParam[JV.PROP_NAME];
+                                cellItem[JV.PROP_PREFIX] = tab_field[JV.PROP_PREFIX];
+                                this.interactRst.push(cellItem);
+                            } else {
+                                rst.push(cellItem);
+                            }
                         }
                     }
                 }
@@ -129,7 +132,7 @@ JpcBillTabSrv.prototype.createNew = function() {
                     }
                 }
                 if (tab[JV.NODE_DISCRETE_INFO]) {
-                    rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(tab[JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, this.interactRst));
+                    rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(tab[JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, this.interactRst, me.signatureRst, me.signatureDateRst, me.signatureAuditRst));
                 }
             }
         }

+ 1 - 1
app/reports/rpt_component/jpc_cross_tab.js

@@ -516,7 +516,7 @@ JpcCrossTabSrv.prototype.createNew = function() {
         rst = rst.concat(me.outputPreviewTabSumRow(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxColRec, JV.NODE_CROSS_ROW_SUM, unitFactor));
         // 7. 离散
         me.interactRst = [];
-        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_CROSS_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst));
+        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_CROSS_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst, me.signatureRst, me.signatureDateRst, me.signatureAuditRst));
         return rst;
     };
     JpcCrossTabResult.outputPreviewRowTab = function(rptTpl, bands, controls, $CURRENT_RPT, customizeCfg, maxRowRec, unitFactor) {

+ 13 - 4
app/reports/rpt_component/jpc_ex.js

@@ -289,24 +289,33 @@ JpcExSrv.prototype.createNew = function() {
             // 1.
             const rstPage = {};
             rstPage[JV.PROP_PAGE_SEQ] = 1;
+            rstPage[JV.PROP_SIGNATURE_CELLS] = [];
+            rstPage[JV.PROP_SIGNATURE_DATE_CELLS] = [];
+            rstPage[JV.PROP_SIGNATURE_AUDIT_CELLS] = [];
+            rstPage[JV.PROP_INTERACT_CELLS] = [];
             if (me.flowTab) {
                 rstPage[JV.PROP_CELLS] = me.flowTab.outputAsPreviewPage(rptTpl, bands, rst[JV.NODE_CONTROL_COLLECTION], me);
                 rstPage[JV.PROP_INTERACT_CELLS] = me.flowTab.interactRst;
+                rstPage[JV.PROP_SIGNATURE_CELLS] = me.flowTab.signatureRst;
+                rstPage[JV.PROP_SIGNATURE_DATE_CELLS] = me.flowTab.signatureDateRst;
+                rstPage[JV.PROP_SIGNATURE_AUDIT_CELLS] = me.flowTab.signatureAuditRst;
             } else if (me.crossTab) {
                 rstPage[JV.PROP_CELLS] = me.crossTab.outputAsPreviewPage(rptTpl, bands, rst[JV.NODE_CONTROL_COLLECTION], me);
                 rstPage[JV.PROP_INTERACT_CELLS] = me.crossTab.interactRst;
+                rstPage[JV.PROP_SIGNATURE_CELLS] = me.crossTab.signatureRst;
+                rstPage[JV.PROP_SIGNATURE_DATE_CELLS] = me.crossTab.signatureDateRst;
+                rstPage[JV.PROP_SIGNATURE_AUDIT_CELLS] = me.crossTab.signatureAuditRst;
             } else if (me.billTab) {
                 rstPage[JV.PROP_CELLS] = me.billTab.outputAsPreviewPage(rptTpl, bands, rst[JV.NODE_CONTROL_COLLECTION], me);
                 rstPage[JV.PROP_INTERACT_CELLS] = me.billTab.interactRst;
+                rstPage[JV.PROP_SIGNATURE_CELLS] = me.billTab.signatureRst;
+                rstPage[JV.PROP_SIGNATURE_DATE_CELLS] = me.billTab.signatureDateRst;
+                rstPage[JV.PROP_SIGNATURE_AUDIT_CELLS] = me.billTab.signatureAuditRst;
             }
             const pageMergeBorder = getPageMergeBorder();
             if (pageMergeBorder) {
                 rstPage[JV.PROP_PAGE_MERGE_BORDER] = pageMergeBorder;
             }
-            rstPage[JV.PROP_SIGNATURE_CELLS] = [];
-            rstPage[JV.PROP_SIGNATURE_DATE_CELLS] = [];
-            rstPage[JV.PROP_SIGNATURE_AUDIT_CELLS] = [];
-            // rstPage[JV.PROP_INTERACT_CELLS] = [];
             rst.items.push(rstPage);
             // 2.
             if (bands[JV.BAND_PROP_MERGE_BAND]) {

+ 1 - 1
app/reports/rpt_component/jpc_flow_tab.js

@@ -880,7 +880,7 @@ JpcFlowTabSrv.prototype.createNew = function() {
         // 2.5 Group
         // 2.6 Discrete
         me.interactRst = [];
-        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_FLOW_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst));
+        rst = rst.concat(JpcDiscreteHelper.outputPreviewDiscreteInfo(rptTpl[JV.NODE_FLOW_INFO][JV.NODE_DISCRETE_INFO], bands, unitFactor, pageStatus, $CURRENT_RPT, me.interactRst, me.signatureRst, me.signatureDateRst, me.signatureAuditRst));
         return rst;
     };
     JpcFlowTabResult.outputAsSimpleJSONPage = function(rptTpl, dataObj, page, bands, controls, fonts, adHocMergePos, $CURRENT_RPT, customizeCfg) {