| 
															
																@@ -137,7 +137,7 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // 加载树结构 
															 | 
															
															 | 
															
																         // 加载树结构 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         const bills = await this.ctx.service.ledger.getData(stage.tid); 
															 | 
															
															 | 
															
																         const bills = await this.ctx.service.ledger.getData(stage.tid); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         this.ctx.helper.assignRelaData(bills, [ 
															 | 
															
															 | 
															
																         this.ctx.helper.assignRelaData(bills, [ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'postil', 'times', 'order'], prefix: 'cur_', relaId: 'lid' }, 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'postil', 'times', 'order', 'ex_stage_qty1'], prefix: 'cur_', relaId: 'lid' }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             { data: preBillsData, fields: ['id', 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'unit_price', 'positive_qc_qty', 'negative_qc_qty', 'positive_qc_tp', 'negative_qc_tp'], prefix: 'pre_', relaId: 'lid' }, 
															 | 
															
															 | 
															
																             { data: preBillsData, fields: ['id', 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'unit_price', 'positive_qc_qty', 'negative_qc_qty', 'positive_qc_tp', 'negative_qc_tp'], prefix: 'pre_', relaId: 'lid' }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         ]); 
															 | 
															
															 | 
															
																         ]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] }); 
															 | 
															
															 | 
															
																         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] }); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -154,12 +154,13 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (node.children && node.children.length > 0) return; 
															 | 
															
															 | 
															
																             if (node.children && node.children.length > 0) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // const priceDiff = helper.sub(node.unit_price, node.pre_unit_price); 
															 | 
															
															 | 
															
																             // const priceDiff = helper.sub(node.unit_price, node.pre_unit_price); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // if (!priceDiff) return; 
															 | 
															
															 | 
															
																             // if (!priceDiff) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty || node.cur_ex_stage_qty1)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                if (cur_contract_tp !== node.cur_contract_tp || cur_qc_tp !== node.cur_qc_tp || cur_positive_qc_tp !== node.cur_positive_qc_tp || cur_negative_qc_tp !== node.cur_positive_qc_tp) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                const cur_ex_stage_tp1 = helper.mul(node.cur_ex_stage_qty1, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (cur_contract_tp !== node.cur_contract_tp || cur_qc_tp !== node.cur_qc_tp || cur_positive_qc_tp !== node.cur_positive_qc_tp || cur_negative_qc_tp !== node.cur_positive_qc_tp || cur_ex_stage_tp1 !== node.cur_ex_stage_tp1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     result.ibData.push({ 
															 | 
															
															 | 
															
																                     result.ibData.push({ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         tid: stage.tid, sid: stage.id, said, 
															 | 
															
															 | 
															
																                         tid: stage.tid, sid: stage.id, said, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         lid: node.id, 
															 | 
															
															 | 
															
																                         lid: node.id, 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -168,6 +169,7 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         qc_qty: node.cur_qc_qty, qc_tp: cur_qc_tp, 
															 | 
															
															 | 
															
																                         qc_qty: node.cur_qc_qty, qc_tp: cur_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         positive_qc_qty: node.cur_positive_qc_qty, positive_qc_tp: cur_positive_qc_tp, 
															 | 
															
															 | 
															
																                         positive_qc_qty: node.cur_positive_qc_qty, positive_qc_tp: cur_positive_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         negative_qc_qty: node.cur_negative_qc_qty, negative_qc_tp: cur_negative_qc_tp, 
															 | 
															
															 | 
															
																                         negative_qc_qty: node.cur_negative_qc_qty, negative_qc_tp: cur_negative_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        ex_stage_qty1: node.cur_ex_stage_qty1, ex_stage_tp1: cur_ex_stage_tp1, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         postil: node.postil, 
															 | 
															
															 | 
															
																                         postil: node.postil, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     }); 
															 | 
															
															 | 
															
																                     }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -334,7 +336,7 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // 加载树结构 
															 | 
															
															 | 
															
																         // 加载树结构 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         this.ctx.helper.assignRelaData(bills, [ 
															 | 
															
															 | 
															
																         this.ctx.helper.assignRelaData(bills, [ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'times', 'order', 'postil'], prefix: 'cur_', relaId: 'lid' }, 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            { data: curBillsData, fields: ['id', 'contract_qty', 'qc_qty', 'positive_qc_qty', 'negative_qc_qty', 'times', 'order', 'postil', 'ex_stage_qty1', 'ex_stage_tp1'], prefix: 'cur_', relaId: 'lid' }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             { data: preBillsData, fields: ['id', 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'unit_price', 'positive_qc_qty', 'negative_qc_qty', 'positive_qc_tp', 'negative_qc_tp'], prefix: 'pre_', relaId: 'lid' }, 
															 | 
															
															 | 
															
																             { data: preBillsData, fields: ['id', 'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'unit_price', 'positive_qc_qty', 'negative_qc_qty', 'positive_qc_tp', 'negative_qc_tp'], prefix: 'pre_', relaId: 'lid' }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         ], 'id', true); 
															 | 
															
															 | 
															
																         ], 'id', true); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] }); 
															 | 
															
															 | 
															
																         const billsTree = new Ledger.billsTree(this.ctx, { id: 'ledger_id', pid: 'ledger_pid', order: 'order', level: 'level', rootId: -1, calcFields: [] }); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -348,17 +350,19 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         const said = this.ctx.session.sessionUser.accountId; 
															 | 
															
															 | 
															
																         const said = this.ctx.session.sessionUser.accountId; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         billsTree.calculateAll(node => { 
															 | 
															
															 | 
															
																         billsTree.calculateAll(node => { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (node.children && node.children.length > 0) return; 
															 | 
															
															 | 
															
																             if (node.children && node.children.length > 0) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (node.cur_id && (node.cur_contract_qty || node.cur_qc_qty || node.cur_ex_stage_qty1)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_contract_tp = helper.mul(node.cur_contract_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_qc_tp = helper.mul(node.cur_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_positive_qc_tp = helper.mul(node.cur_positive_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp); 
															 | 
															
															 | 
															
																                 const cur_negative_qc_tp = helper.mul(node.cur_negative_qc_qty, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                if (cur_contract_tp !== node.cur_contract_tp || cur_qc_tp !== node.cur_qc_tp || cur_positive_qc_tp !== node.cur_positive_qc_tp || cur_negative_qc_tp !== node.cur_positive_qc_tp) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                const cur_ex_stage_tp1 = helper.mul(node.cur_ex_stage_qty1, node.unit_price, decimal.tp); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (cur_contract_tp !== node.cur_contract_tp || cur_qc_tp !== node.cur_qc_tp || cur_positive_qc_tp !== node.cur_positive_qc_tp || cur_negative_qc_tp !== node.cur_positive_qc_tp || cur_ex_stage_tp1 !== node.cur_ex_stage_tp1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     if (node.cur_times === stage.times && node.cur_order === 0) { 
															 | 
															
															 | 
															
																                     if (node.cur_times === stage.times && node.cur_order === 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         result.ubData.push({ 
															 | 
															
															 | 
															
																                         result.ubData.push({ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             id: node.cur_id, 
															 | 
															
															 | 
															
																                             id: node.cur_id, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             contract_tp: cur_contract_tp, qc_tp: cur_qc_tp, 
															 | 
															
															 | 
															
																                             contract_tp: cur_contract_tp, qc_tp: cur_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             positive_qc_tp: cur_positive_qc_tp, negative_qc_tp: cur_negative_qc_tp, 
															 | 
															
															 | 
															
																                             positive_qc_tp: cur_positive_qc_tp, negative_qc_tp: cur_negative_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            ex_stage_tp1: cur_ex_stage_tp1, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         }); 
															 | 
															
															 | 
															
																                         }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     } else { 
															 | 
															
															 | 
															
																                     } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         result.ibData.push({ 
															 | 
															
															 | 
															
																                         result.ibData.push({ 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -368,6 +372,7 @@ class revisePriceCalc { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             qc_qty: node.cur_qc_qty, qc_tp: cur_qc_tp, 
															 | 
															
															 | 
															
																                             qc_qty: node.cur_qc_qty, qc_tp: cur_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             positive_qc_qty: node.cur_positive_qc_qty, positive_qc_tp: cur_positive_qc_tp, 
															 | 
															
															 | 
															
																                             positive_qc_qty: node.cur_positive_qc_qty, positive_qc_tp: cur_positive_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             negative_qc_qty: node.cur_negative_qc_qty, negative_qc_tp: cur_negative_qc_tp, 
															 | 
															
															 | 
															
																                             negative_qc_qty: node.cur_negative_qc_qty, negative_qc_tp: cur_negative_qc_tp, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            ex_stage_qty1: node.cur_ex_stage_qty1, ex_stage_tp1: cur_ex_stage_tp1, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             postil: node.cur_postil, 
															 | 
															
															 | 
															
																                             postil: node.cur_postil, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         }); 
															 | 
															
															 | 
															
																                         }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     } 
															 | 
															
															 | 
															
																                     } 
															 |