|
@@ -1230,13 +1230,11 @@ class CalcProgram {
|
|
|
getSourceType () {
|
|
|
return ModuleNames.calc_program;
|
|
|
};
|
|
|
-
|
|
|
// 兼容Project框架方法
|
|
|
loadData (datas) {
|
|
|
this.datas = datas;
|
|
|
this.compileAllTemps();
|
|
|
};
|
|
|
-
|
|
|
// 兼容Project框架方法
|
|
|
doAfterUpdate (err, data) {
|
|
|
if(!err){
|
|
@@ -1798,7 +1796,7 @@ class CalcProgram {
|
|
|
};
|
|
|
|
|
|
// 计算叶子清单下的所有子结点、自身、所有父结点、公式引用结点(即跟该叶子清单相关的所有结点)。最后打包存储。
|
|
|
- calcLeafAndSave(treeNode){
|
|
|
+ calcLeafAndSave(treeNode, tender){
|
|
|
let me = this;
|
|
|
if(!calcTools.isLeafBill(treeNode)) return;
|
|
|
if (treeNode.children && treeNode.children.length > 0) {
|
|
@@ -1807,7 +1805,7 @@ class CalcProgram {
|
|
|
me.innerCalc(child, changedNodes);
|
|
|
};
|
|
|
|
|
|
- let curChangeds = me.calculate(treeNode);
|
|
|
+ let curChangeds = me.calculate(treeNode, true, true, tender);
|
|
|
mergeArr(changedNodes, curChangeds);
|
|
|
me.saveNodes(changedNodes);
|
|
|
};
|
|
@@ -1815,15 +1813,15 @@ class CalcProgram {
|
|
|
|
|
|
// 计算并保存指定的一个树节点。修改一个树节点,实际上要计算和保存的是一批树结点:层层父结点、被其它结点(的公式)引用的公式结点。
|
|
|
// 这个方法实际上封装了calculate()和saveNodes()两个方法,主要目的是为了外部调用方便,少写一点累赘代码。
|
|
|
- calcAndSave(treeNode, callback){
|
|
|
- let changedNodes = this.calculate(treeNode);
|
|
|
+ calcAndSave(treeNode, callback, tender){
|
|
|
+ let changedNodes = this.calculate(treeNode, true, true, tender);
|
|
|
this.saveNodes(changedNodes, callback);
|
|
|
};
|
|
|
|
|
|
// 计算零散的、混杂的树节点:清单、定额混合等(如:用到某一计算程序的定额和清单)。
|
|
|
// 计算多条零散的定额,并计算他们所属的清单、父清单、引用清单。如:批量替换工料机后受影响的定额。
|
|
|
// 计算多条零散的清单,并计算他们的父清单、引用清单。如:花选删除树结点(如花选清单、定额等,不区分树结点类型)。
|
|
|
- calcNodesAndSave(nodes, callback){
|
|
|
+ calcNodesAndSave(nodes, callback, tender){
|
|
|
let me = this, rationNodes = [], billNodes = [], leafBills = [], allChangedNodes = [];
|
|
|
for (let node of nodes) {
|
|
|
if (node.sourceType == ModuleNames.ration)
|
|
@@ -1834,7 +1832,7 @@ class CalcProgram {
|
|
|
|
|
|
// 多条定额同属一条叶子清单时,避免叶子清单重复计算
|
|
|
for (let ration of rationNodes) {
|
|
|
- me.innerCalc(ration, allChangedNodes);
|
|
|
+ me.innerCalc(ration, allChangedNodes, tender);
|
|
|
let leafBill = ration.parent;
|
|
|
if (leafBill && leafBills.indexOf(leafBill) < 0)
|
|
|
leafBills.push(leafBill);
|
|
@@ -1843,42 +1841,13 @@ class CalcProgram {
|
|
|
mergeArr(billNodes, leafBills);
|
|
|
|
|
|
for (let bill of billNodes){
|
|
|
- let changeBills = me.calculate(bill, true, false);
|
|
|
+ let changeBills = me.calculate(bill, true, false, tender);
|
|
|
mergeArr(allChangedNodes, changeBills);
|
|
|
};
|
|
|
|
|
|
me.calcFormulaNodes(allChangedNodes);
|
|
|
me.saveNodes(allChangedNodes, callback);
|
|
|
};
|
|
|
- calcRationsAndSave(rationNodes, callback){
|
|
|
- // let me = this, leafBills = [], allChangedNodes = [];
|
|
|
- // for (let node of rationNodes) {
|
|
|
- // me.innerCalc(node, allChangedNodes);
|
|
|
- // let leafBill = node.parent;
|
|
|
- // // 多条定额同属一条叶子清单时,避免叶子清单重复计算
|
|
|
- // if (leafBill && leafBills.indexOf(leafBill) < 0) leafBills.push(leafBill);
|
|
|
- // };
|
|
|
- //
|
|
|
- // for (let node of leafBills){
|
|
|
- // let curChangeds = me.calculate(node);
|
|
|
- // mergeArr(allChangedNodes, curChangeds);
|
|
|
- // };
|
|
|
- // let endShowTime = +new Date();
|
|
|
- // me.saveNodes(allChangedNodes, callback);
|
|
|
-
|
|
|
- this.calcNodesAndSave(rationNodes, callback);
|
|
|
- };
|
|
|
- calcBillsAndSave(billNodes,callback){
|
|
|
- // let me = this, allChangedNodes = [];
|
|
|
- // for (let node of billNodes) {
|
|
|
- // let curChangeds = me.calculate(node, true, false);
|
|
|
- // mergeArr(allChangedNodes, curChangeds);
|
|
|
- // };
|
|
|
- // me.calcFormulaNodes(allChangedNodes);
|
|
|
- // me.saveNodes(allChangedNodes,callback);
|
|
|
-
|
|
|
- this.calcNodesAndSave(billNodes, callback);
|
|
|
- };
|
|
|
|
|
|
// tender: null:不调价(普通计算)。 1: 正向调价 2:反向调价-调子目 3: 反向调价-调工料机
|
|
|
calcAllNodesAndSave(calcType = calcAllType.catAll, callback, tender){
|