| 
					
				 | 
			
			
				@@ -30,6 +30,7 @@ class loadGclBaseTree { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.ignoreParent = setting.ignoreParent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.ignoreNotFind = setting.ignoreNotFind; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.loadChange = setting.loadChange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 缓存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.keyNodeId = setting.maxId ? setting.maxId + 1 : 1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -387,15 +388,17 @@ class gatherStageGclTree extends loadGclBaseTree { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             node.contract_qty = this.ctx.helper.add(node.contract_qty, source.contract_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             node.contract_tp = this.ctx.helper.mul(node.unit_price, node.contract_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.qc_qty = this.ctx.helper.add(node.qc_qty, source.qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.qc_tp = this.ctx.helper.mul(node.unit_price, node.qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.qc_minus_qty = this.ctx.helper.add(node.qc_minus_qty, source.qc_minus_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.positive_qc_qty = this.ctx.helper.add(node.positive_qc_qty, source.positive_qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.positive_qc_tp = this.ctx.helper.mul(node.unit_price, node.positive_qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.negative_qc_qty = this.ctx.helper.add(node.negative_qc_qty, source.negative_qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            node.negative_qc_tp = this.ctx.helper.mul(node.unit_price, node.negative_qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.loadChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.qc_qty = this.ctx.helper.add(node.qc_qty, source.qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.qc_tp = this.ctx.helper.mul(node.unit_price, node.qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.qc_minus_qty = this.ctx.helper.add(node.qc_minus_qty, source.qc_minus_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.positive_qc_qty = this.ctx.helper.add(node.positive_qc_qty, source.positive_qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.positive_qc_tp = this.ctx.helper.mul(node.unit_price, node.positive_qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.negative_qc_qty = this.ctx.helper.add(node.negative_qc_qty, source.negative_qc_qty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                node.negative_qc_tp = this.ctx.helper.mul(node.unit_price, node.negative_qc_qty, this.ctx.tender.info.decimal.tp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this._gatherChange(node, source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.loadChange) this._gatherChange(node, source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getUpdateData() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -409,14 +412,14 @@ class gatherStageGclTree extends loadGclBaseTree { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (bn.is_import || this.cover || bn.contract_qty !== bn.org_contract_qty || bn.contract_tp !== bn.org_contract_tp || bn.qc_qty !== bn.org_qc_qty || bn.qc_minus_qty !== bn.org_qc_minus_qty) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let data = { lid: bn.id, contract_qty: bn.contract_qty, contract_tp: bn.contract_tp }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!bn.is_import && bn.org_qc_qty) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!this.loadChange || (!bn.is_import && bn.org_qc_qty)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.qc_qty = bn.org_qc_qty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.qc_tp = bn.org_qc_tp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.qc_minus_qty = bn.org_qc_minus_qty || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.positive_qc_qty = bn.positive_qc_qty || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.positive_qc_tp = bn.positive_qc_tp || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.negative_qc_qty = bn.negative_qc_qty || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.negative_qc_tp = bn.negative_qc_tp || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data.positive_qc_qty = bn.org_positive_qc_qty || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data.positive_qc_tp = bn.org_positive_qc_tp || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data.negative_qc_qty = bn.org_negative_qc_qty || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data.negative_qc_tp = bn.org_negative_qc_tp || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.qc_qty = bn.qc_qty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.qc_tp = bn.qc_tp; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -428,7 +431,7 @@ class gatherStageGclTree extends loadGclBaseTree { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 result.update.push(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (bn.change_detail && bn.change_detail.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.loadChange && bn.change_detail && bn.change_detail.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const cd of bn.change_detail) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     result.qc_detail.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         lid: bn.id, rela_tid: cd.tid, rela_sid: cd.sid, rela_lid: cd.lid, rela_cid: cd.cid, rela_cbid: cd.cbid, rela_qty: cd.qty, rela_minus: cd.minus, rela_no_value: cd.no_value, unit_price: bn.unit_price, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -549,10 +552,10 @@ class sumLoad { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    async stageGatherGcl(select, maxId, tenders, defaultData, cover, ignore) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async stageGatherGcl(select, maxId, tenders, defaultData, cover, ignore, loadChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const ignoreParent = this.ctx.tender.info.fun_rela.sum_load.ignoreParent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.loadTree = new gatherStageGclTree(this.ctx, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parent: select, maxId, type: 'ledger', defaultData, ignoreParent, cover, ignoreNotFind: ignore, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            parent: select, maxId, type: 'ledger', defaultData, ignoreParent, cover, ignoreNotFind: ignore, loadChange, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const posterity = await this.ctx.service.ledger.getPosterityByParentId(this.ctx.tender.id, select.ledger_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const extraData = await this.ctx.service.ledgerExtra.getData(this.ctx.tender.id, ['is_tp']); 
			 |