|
|
@@ -2843,25 +2843,29 @@
|
|
|
};
|
|
|
|
|
|
doTenderCalc(callback) {
|
|
|
+
|
|
|
$.bootstrapLoading.start();
|
|
|
- let tender = calcTools.getTenderType();
|
|
|
- if (tender == tenderTypes.ttReverseGLJ || tender == tenderTypes.ttReverseRation) {
|
|
|
- // 调价计算必须依赖调价树。
|
|
|
- if (!tender_obj.tenderTree){
|
|
|
- tender_obj.createTree();
|
|
|
- tender_obj.createTreeNodes();
|
|
|
+ setTimeout(()=>{
|
|
|
+ let tender = calcTools.getTenderType();
|
|
|
+ if (tender == tenderTypes.ttReverseGLJ || tender == tenderTypes.ttReverseRation) {
|
|
|
+ // 调价计算必须依赖调价树。
|
|
|
+ if (!tender_obj.tenderTree){
|
|
|
+ tender_obj.createTree();
|
|
|
+ tender_obj.createTreeNodes();
|
|
|
+ }
|
|
|
+ // 反向调价+逼近原理:
|
|
|
+ // 清理调价缓存 → 分摊目标金额(从子往父处理满载、从父往子分摊) → 全局反算 → 逼近 → 全局正算、存储
|
|
|
+ this.reverseTenderInitDatas();
|
|
|
+ this.prepareForDistribute(tender_obj.tenderTree.roots[0]);
|
|
|
+ this.distributeTargetTotalFee(tender_obj.tenderTree.roots[0]);
|
|
|
+ this.calcAllNodes(calcAllType.catAll, tender); // 先全局反算:得到每定额的coe、基础调后金额(误差大,需逼近)
|
|
|
+ this.reverseTenderApproach(callback, tender); // 逼近上述基础调后金额
|
|
|
}
|
|
|
- // 反向调价+逼近原理:
|
|
|
- // 清理调价缓存 → 分摊目标金额(从子往父处理满载、从父往子分摊) → 全局反算 → 逼近 → 全局正算、存储
|
|
|
- this.reverseTenderInitDatas();
|
|
|
- this.prepareForDistribute(tender_obj.tenderTree.roots[0]);
|
|
|
- this.distributeTargetTotalFee(tender_obj.tenderTree.roots[0]);
|
|
|
- this.calcAllNodes(calcAllType.catAll, tender); // 先全局反算:得到每定额的coe、基础调后金额(误差大,需逼近)
|
|
|
- this.reverseTenderApproach(callback, tender); // 逼近上述基础调后金额
|
|
|
- }
|
|
|
|
|
|
- // 全局正算(用的是主树,无需调价树)
|
|
|
- this.calcAllNodesAndSave(calcAllType.catAll, callback, tenderTypes.ttCalc);
|
|
|
+ // 全局正算(用的是主树,无需调价树)
|
|
|
+ this.calcAllNodesAndSave(calcAllType.catAll, callback, tenderTypes.ttCalc);
|
|
|
+ })
|
|
|
+
|
|
|
};
|
|
|
};
|
|
|
|