| 
					
				 | 
			
			
				@@ -305,6 +305,55 @@ const stage_pay = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 期 - 中间计量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const stage_im_zl = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Name: '期-中间计量-总量-数据(mem_stage_im_zl)', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    remark: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    id: 21, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    key: 'mem_stage_im_zl', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    prefix: '期-中间计量-总量', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cols: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '台账id', field: 'lid', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '部位id', field: 'pid', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '编号', field: 'code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '名称', field: 'name', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '单位', field: 'unit', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '单价', field: 'unit_price', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期数量', field: 'jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期合同数量', field: 'contract_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期变更数量', field: 'qc_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '桩号', field: 'peg', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '图册号', field: 'drawing_code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '勾选标记 - 勿用', field: 'check', type: dataType.int}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '部位', field: 'bw', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '细目', field: 'xm', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '凭证号', field: 'doc_code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '计算式说明', field: 'calc_memo', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '草图', field: 'calc_img', type: dataType.str, isPic: true}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '变更令号', field: 'bgl_code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '变更图号', field: 'bgl_drawing_code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '中间计量表号', field: 'im_code', type: dataType.str}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期数量', field: 'pre_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期合同数量', field: 'pre_contract_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期变更数量', field: 'pre_qc_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期数量', field: 'end_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期合同数量', field: 'end_contract_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期变更数量', field: 'end_qc_jl', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期金额', field: 'tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期合同金额', field: 'contract_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '本期变更金额', field: 'qc_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期金额', field: 'pre_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期合同金额', field: 'pre_contract_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止上期 - 本期变更金额', field: 'pre_qc_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期金额', field: 'end_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期合同金额', field: 'end_contract_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '截止本期 - 本期变更金额', field: 'end_qc_tp', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '台账数量', field: 'quantity', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {name: '台账金额', field: 'total_price', type: dataType.currency}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const recursiveMkdirSync = async function (pathName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!fs.existsSync(pathName)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const upperPath = path.dirname(pathName); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -322,23 +371,23 @@ const saveBufferFile = async function (buffer, fileName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     await fs.writeFileSync(fileName, buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const addFields = function(table, name, field, type, tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const addFields = function(table, col) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const data = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data.ID = table.ID * 100 + table.items.length + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data.Name = name + '(' + field + ')'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data.Name = col.name + '(' + col.field + ')'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (table.prefix && table.prefix !== '') data.Name = table.prefix + '-' + data.Name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data.DataType = type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data.DataType = col.type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data.TableName = table.key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data.descr = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    data.mapExpression = "$PROJECT.REPORT.getProperty('" + table.key + "', '" + field + "')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data.mapExpression = "$PROJECT.REPORT.getProperty('" + table.key + "', '" + col.field + "')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (col.tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (tag.type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 'up': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 data.Precision = { type: "fixed", fixedMapExpression: "$PROJECT.REPORT.getProperty('tender_info', 'decimal.up')" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 'tp': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (tag.subType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.Precision = { type: "fixed", fixedMapExpression: "$PROJECT.REPORT.getProperty('tender_info', 'decimal." + "_" + tag.subType + "_tp')" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (col.tag.subType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data.Precision = { type: "fixed", fixedMapExpression: "$PROJECT.REPORT.getProperty('tender_info', 'decimal." + "_" + col.tag.subType + "_tp')" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.Precision = { type: "fixed", fixedMapExpression: "$PROJECT.REPORT.getProperty('tender_info', 'decimal.tp')" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -348,6 +397,9 @@ const addFields = function(table, name, field, type, tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (col.isPic) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data.isPic = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     table.items.push(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const saveTableDefine = async function (tableDefine, file) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -386,12 +438,17 @@ const exportTableDefine = async function (define) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tableDefine.items = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tableDefine.prefix = define.prefix; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (const col of define.cols) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        addFields(tableDefine, col.name, col.field, col.type, col.tag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        addFields(tableDefine, col); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     await saveTableDefine(tableDefine, path.join(savePath, define.key + '_define.json')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const defines = [stage_jgcl, stage_bonus, stage_other, change, change_bills, stage_pos, stage_pos_compare, stage_pay]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const defines = [stage_jgcl, stage_bonus, stage_other, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    change, change_bills, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stage_pos, stage_pos_compare, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stage_pay, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stage_im_zl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 for (const d of defines) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     exportTableDefine(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |