|
@@ -977,8 +977,26 @@ class CalcProgram {
|
|
|
me.saveNodes(needSaveNodes);
|
|
|
};
|
|
|
};
|
|
|
- calcRationsAndSave(nodes){//计算批量替换工料机后受影响的定额,同时将结果打包保存
|
|
|
|
|
|
+ calcRationsAndSave(raitonNodes){//计算批量替换工料机后受影响的定额,同时将结果打包保存
|
|
|
+ let me = this, leafBills = [], changedNodes = [];
|
|
|
+ for (let node of raitonNodes) {
|
|
|
+ me.calculate(node, false);
|
|
|
+ if (node.changed) changedNodes.push(node);
|
|
|
+ let leafBill = node.parent;
|
|
|
+ if (leafBill && leafBills.indexOf(leafBill) < 0) leafBills.push(leafBill); // 多条定额同属一条叶子清单时,避免叶子清单重复计算
|
|
|
+ };
|
|
|
+
|
|
|
+ for (let node of leafBills){
|
|
|
+ me.calculate(node);
|
|
|
+ let cur = node;
|
|
|
+ while (cur) {
|
|
|
+ if (cur.changed && changedNodes.indexOf(cur) < 0) changedNodes.push(cur);
|
|
|
+ cur = cur.parent;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ me.saveNodes(changedNodes);
|
|
|
};
|
|
|
|
|
|
}
|