| 
					
				 | 
			
			
				@@ -1089,25 +1089,28 @@ function writeDrawings(pageData, signKeyArr, signPathArr, isSinglePage, signShee 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 优化调整,不再每页都设置一个,重复的签名只需要一个即可(极端case: 13xx多页的签名文档,导出有1.3G大) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (isSinglePage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('singlePage! '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst.push(writeDrawing(pageData, null, signKeyArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rst.push(writeDrawing(pageData, null, signKeyArr, 0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('pageData! '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(signKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let i = 0; i < pageData.items.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (signSheetIdxArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (true || signSheetIdxArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if (signSheetIdxArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // console.log('signKeyArr[' + i + ']'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // console.log(signKeyArr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                rst.push(writeDrawing(pageData, pageData.items[i], signKeyArr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst.push(writeDrawing(pageData, pageData.items[i], signKeyArr, i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function writeDrawing(pageData, sheetData, subSignKeyArr, sheetIdx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const rst = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const xPos = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const yPos = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const yMultiPos = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(`sheetIdx: ${sheetIdx}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const private_setSheetDrawingCellData = function(signCell, theYPos, startPicIdx, offsetRow) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let cellControl; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1203,9 +1206,10 @@ function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log(subSignKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (sheetData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('sheetData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let startPicIdx = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let startPicIdx = 2 + sheetIdx * 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (const sCell of sheetData[JV.PROP_SIGNATURE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (subSignKeyArr.indexOf(sCell.signature_name) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log(`sCell.signature_name: ${sCell.signature_name} at index: ${startPicIdx}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 private_setSheetDrawingCellData(sCell, yPos, startPicIdx, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 startPicIdx++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1246,6 +1250,7 @@ function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rst.push('</xdr:wsDr>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(rst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function writeDrawingsRels(amt, startIdx) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1422,7 +1427,13 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 这里把图片的路径作为key值判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // if (true || signKeyArr.indexOf(signature.signature_name) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log(`signature: ${signature.signature_name}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (signKeyArr.indexOf(signature.signature_name) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // console.log(`signature: ${signature.signature_name}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (signature.signature_name === '支表03 清单支付报表(凉山州)_施工单位制表人') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // console.log(chkRoles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (signature.pic) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const signPath = { signature_name: signature.signature_name,  path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         signPathArr.push(signPath); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1443,8 +1454,10 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } else if (role.sign_path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     let sPObj = _getDupPicPath(role.sign_path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    if (sPObj !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        signature.signature_name = sPObj.signature_name; //重点,如果有相同路径的,修改signature_name! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (sPObj !== null && isSinglePage) { // 只有在isSinglePage为true时,才需要优化签名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    // if (sPObj !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        signature.signature_name = sPObj.signature_name; // 重点,如果有相同路径的,修改signature_name! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         const signPath = { signature_name: signature.signature_name, path: null, pic: null }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1459,6 +1472,9 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // console.log(`duplicate signature: ${signature.signature_name}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1523,7 +1539,9 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(thisRoleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // const hasSignature = false; // 暂时不支持电子签名、草图导出excel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // fsUtil.writeObjToFile(pageData, 'D:/GitHome/temp/pageRstArrForExcelBeforeSignatureCheck.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const hasSignature = _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, thisRoleRel, signSheetIdxArr, isSinglePage); // 因草图的关系,thisRoleRel是否为null就不是充要的条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // fsUtil.writeObjToFile(pageData, 'D:/GitHome/temp/pageRstArrForExcelAfterSignatureCheck.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('signKeyArr'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(signKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('signPathArr'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1616,6 +1634,8 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // data = writeDrawings(pageData, signKeyArr, signPathArr, false, signSheetIdxArr); // 备注:这里根本不需要考虑是否single page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log('isSinglePage: ' + isSinglePage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // console.log('signSheetIdxArr: '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // console.log(signSheetIdxArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let psIdx = 0; psIdx < data.length; psIdx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 file = 'drawing' + (psIdx + 1) + '.xml'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // console.log('drawing1' + (psIdx + 1) + '.xml data'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1640,7 +1660,9 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 /*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 data = writeDrawingsRels(signKeyArr.length, relsImgAmt); // 一个drawingX.xml.rels文件与一个drawingX.xml对应 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 relsIdx++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                relsImgAmt += signKeyArr.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (isSinglePage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    relsImgAmt += signKeyArr.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 file = 'drawing' + relsIdx + '.xml.rels'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 zip_drawings_rels.file(file, data.join(''), { compression: 'DEFLATE' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1853,8 +1875,9 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 3. everything is ok, then call me 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // let roleRel = null; // 未来调用的时候,这个属性要从外面给!!! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // roleRelArr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // fsUtil.writeObjToFile(newPageData, 'D:/GitHome/temp/合并前Excel数据.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.exportExcel(newPageData, paperSize, fName, 'false', sheetNames, custMergeBands, baseDir, roleRelArr, callback); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // fsUtil.writeObjToFile(newPageData, 'D:/GitHome/ConstructionOperation/tmp/combinedHeader.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // fsUtil.writeObjToFile(newPageData, 'D:/GitHome/temp/合并后Excel数据.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             console.log(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |