| 
					
				 | 
			
			
				@@ -722,13 +722,15 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    downloadExcelReport: async function(pageDataArr, pageSize, rpt_names) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    downloadExcelReport: async function(pageDataArr, pageSize, rpt_names, signatureRelArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const private_download = async function(currentIndex) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (currentIndex < pageDataArr.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //这里的数据应该在调用前己处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const rptName = rpt_names[currentIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const singlePage = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await excelExportUtil.exportExcel(pageDataArr[currentIndex], pageSize, rptName, singlePage, null, null, ROLE_REL_LIST, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let role_rel_list = signatureRelArr[currentIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // await excelExportUtil.exportExcel(pageDataArr[currentIndex], pageSize, rptName, singlePage, null, null, ROLE_REL_LIST, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await excelExportUtil.exportExcel(pageDataArr[currentIndex], pageSize, rptName, singlePage, null, null, role_rel_list, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let idx = 0; idx < pageDataArr.length; idx++) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -736,8 +738,63 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    downloadExcelReportInOneBook: async function(pageDataArr, pageSize, signatureRelArr, signatureRelInfo, refRptTplIds, rpt_names) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    downloadExcelReportInOneBook: async function(pageDataArr, pageSize, signatureRelArr, rpt_names) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rptRoleRelArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let ttlRoleAmt = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const reAssignSignatureName = function(pageData, roleRel, rpt_name_key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const keyMap = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const pageItem of pageData.items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (const signCell of pageItem[JV.PROP_SIGNATURE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!keyMap.hasOwnProperty(signCell.signature_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        keyMap[signCell.signature_name] = rpt_name_key + '_' + signCell.signature_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //水印也要reAssign 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (const watermarkCell of pageItem[JV.PROP_WATERMARK_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!keyMap.hasOwnProperty(watermarkCell.signature_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        keyMap[watermarkCell.signature_name] = rpt_name_key + '_' + watermarkCell.signature_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const pageItem of pageData.items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (const signCell of pageItem[JV.PROP_SIGNATURE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (keyMap.hasOwnProperty(signCell.signature_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        signCell.signature_name = keyMap[signCell.signature_name]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (const watermarkCell of pageItem[JV.PROP_WATERMARK_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (keyMap.hasOwnProperty(watermarkCell.signature_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        watermarkCell.signature_name = keyMap[watermarkCell.signature_name]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (const roleSign of roleRel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (keyMap.hasOwnProperty(roleSign.signature_name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    roleSign.signature_name = keyMap[roleSign.signature_name]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let idx = 0; idx < pageDataArr.length; idx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let roleRel = signatureRelArr[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ttlRoleAmt += roleRel.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pageDataArr[idx][JV.NODE_PAGE_INFO][JV.NODE_MAIN_INFO_RPT_NAME] = rpt_names[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 这里要做些电子签名的signature_name转换,以防重名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (roleRel.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                reAssignSignatureName(pageDataArr[idx], roleRel, rpt_names[idx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rptRoleRelArr = rptRoleRelArr.concat(roleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let hasWaterMark = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (pageDataArr[idx].items[0][JV.PROP_WATERMARK_CELLS] && pageDataArr[idx].items[0][JV.PROP_WATERMARK_CELLS].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hasWaterMark = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ttlRoleAmt < 1 && hasWaterMark) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                reAssignSignatureName(pageDataArr[idx], [], rpt_names[idx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rptRoleRelArr = rptRoleRelArr.concat([pageDataArr[idx].items[0][JV.PROP_WATERMARK_CELLS][0].signature_name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        excelExportUtil.exportExcelInOneBook(pageDataArr, pageSize, TENDER_NAME, rptRoleRelArr, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getExcel_New: async function (isOneBook) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -773,22 +830,21 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let pageSize = rptControlObj.getCurrentPageSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let pageDataArr = result.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let signatureRelInfo = result.signatureRelInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for (const signatureRel of signatureRelInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const tmpRel = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            tmpRel.push(JSON.parse(signatureRel.rel_content)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (let pageObj of pageDataArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let tmpRel = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (const signatureRel of signatureRelInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (signatureRel.rpt_id === pageObj.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    tmpRel = JSON.parse(signatureRel.rel_content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             signatureRelArr.push(tmpRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (current_stage_status === 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             // 统一安排merge(除草图外) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (let pageObj of pageDataArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let singleSignatureRelArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                for (let rIdx = 0; rIdx < signatureRelInfo.length; rIdx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    let rptId = refRptTplIds[rptControlObj.currentDownloadIdx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    if (signatureRelInfo[rIdx].rpt_id === rptId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        singleSignatureRelArr = signatureRelArr[rIdx]; // 有些报表可能没有签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (let idx = 0; idx < pageDataArr.length; idx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                const pageObj = pageDataArr[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                let singleSignatureRelArr = signatureRelArr[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 rptSignatureHelper.mergeSignDate(pageObj, singleSignatureRelArr, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 // rptSignatureHelper.mergeSignature(pageObj, signatureRelArr); // 这里merge的意义不大 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 rptSignatureHelper.mergeSignAudit(pageObj, singleSignatureRelArr, STAGE_AUDIT); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -796,10 +852,9 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (isOneBook) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            me.downloadExcelReportInOneBook(pageDataArr, pageSize, signatureRelArr, signatureRelInfo, refRptTplIds, rpt_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            me.downloadExcelReportInOneBook(pageDataArr, pageSize, signatureRelArr, rpt_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 本地处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            me.downloadExcelReport(pageDataArr, pageSize, rpt_names); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            me.downloadExcelReport(pageDataArr, pageSize, rpt_names, signatureRelArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     function(failRst){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -818,23 +873,12 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    getExcel_SingleSelected: async function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (zTreeOprObj.currentRptPageRst) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 新处理(前端生成excel报表) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const pageSize = rptControlObj.getCurrentPageSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const rptName = zTreeOprObj.currentNode.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const singlePage = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            excelExportUtil.exportExcel(zTreeOprObj.currentRptPageRst, pageSize, rptName, singlePage, null, null, ROLE_REL_LIST, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     checkAndGetExcel: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (zTreeOprObj.treeObj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let chkNodes = zTreeOprObj.treeObj.getCheckedNodes(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (chkNodes.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $("#show_excel_output_cfg").trigger("click"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // rptControlObj.getAllIndividualExcelBook(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // rptControlObj.getExcel_SingleSelected(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 rptControlObj.getExcel_New(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -842,9 +886,11 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getExcel: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = rptControlObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($("#excelExportType_AllInOneBook")[0].checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.getAllInOneBook(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // me.getAllInOneBook(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rptControlObj.getExcel_New(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else if ($("#excelExportType_IndividualBook")[0].checked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.getAllIndividualExcelBook(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // me.getAllIndividualExcelBook(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rptControlObj.getExcel_New(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getPdfFontCallbackLight: function(fontProperty) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -923,27 +969,6 @@ let rptControlObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             await rptSignatureHelper.resetDummySignature(pageData, null); // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         downloadPDFReport(result.data, pageSize, rpt_names, signatureRelArr, result.signatureRelInfo, refRptTplIds, STAGE_AUDIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        for (let idx = 0; idx < result.data.length; idx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let pageData = result.data[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // if (current_stage_status === 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //     rptSignatureHelper.mergeSignDate(pageData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //     rptSignatureHelper.mergeSignature(pageData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //     rptSignatureHelper.mergeSignAudit(pageRst, ROLE_REL_LIST, STAGE_AUDIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // 备注:因多表的原因,无需merge电子签名,在下面处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            let singleSignatureRelArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (let rIdx = 0; rIdx < result.signatureRelInfo.length; rIdx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (result.signatureRelInfo[rIdx].rpt_id === refRptTplIds[idx]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    // singleSignatureRelArr.push(signatureRelArr[rIdx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    singleSignatureRelArr = signatureRelArr[rIdx]; // 有些报表可能没有签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[idx], signatureRelArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[idx], singleSignatureRelArr, STAGE_AUDIT); // 精确控制签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     function(failRst){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // closeWaitingView(); 
			 |