|
|
@@ -3117,6 +3117,11 @@ class CalcProgram {
|
|
|
// 反向调价逼近
|
|
|
reverseTenderApproach(callback, tender) {
|
|
|
let me = this;
|
|
|
+ function root0() {
|
|
|
+ return tender_obj.tenderTree.roots[0];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!root0().data.targetTotalFee) return; // 根结点没有指定目标金额时,逼近会带来莫名其妙的结果
|
|
|
|
|
|
let G_DIGIT = 0.01; // 系数调整步距(0.1最终结果误差大。0.001目标金额与逼前金额差距大时无法有效逼近)
|
|
|
let times = 300; // 逼近计算的极限次数。正常情况下“单位系数金额”列表中的结点耗尽即退出,这里指定轮数是最后保险阀,防止无限死循环。
|
|
|
@@ -3132,9 +3137,9 @@ class CalcProgram {
|
|
|
|
|
|
// 取根结点的:调后金额跟目标金额差值,看还有多少误差需要处理。
|
|
|
function getRootDiff() {
|
|
|
- let root = tender_obj.tenderTree.roots[0];
|
|
|
return (
|
|
|
- root.data.feesIndex.common.tenderTotalFee - root.data.targetTotalFee
|
|
|
+ root0().data.feesIndex.common.tenderTotalFee -
|
|
|
+ root0().data.targetTotalFee
|
|
|
).toDecimal(3);
|
|
|
}
|
|
|
|