|
@@ -375,53 +375,11 @@ class BillsPosConvert {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- _mapTreeNode(tree) {
|
|
|
|
|
- const setting = tree.setting;
|
|
|
|
|
- let map = {}, maxLevel = 0;
|
|
|
|
|
- for (const node of tree.nodes) {
|
|
|
|
|
- let levelArr = map[node[setting.level]];
|
|
|
|
|
- if (!levelArr) {
|
|
|
|
|
- levelArr = [];
|
|
|
|
|
- map[node[setting.level]] = levelArr;
|
|
|
|
|
- }
|
|
|
|
|
- if (node[setting.level] > maxLevel) {
|
|
|
|
|
- maxLevel = node[setting.level];
|
|
|
|
|
- }
|
|
|
|
|
- levelArr.push(node);
|
|
|
|
|
- }
|
|
|
|
|
- return [maxLevel, map];
|
|
|
|
|
- }
|
|
|
|
|
- _calculateAndSortNodes() {
|
|
|
|
|
- const self = this;
|
|
|
|
|
- const [maxLevel, levelMap] = this._mapTreeNode(this.resultTree);
|
|
|
|
|
- for (let i = maxLevel; i >= 0; i--) {
|
|
|
|
|
- const levelNodes = levelMap[i];
|
|
|
|
|
- if (!levelNodes || levelNodes.length === 0) continue;
|
|
|
|
|
-
|
|
|
|
|
- for (const node of levelNodes) {
|
|
|
|
|
- if (node.unitTree) {
|
|
|
|
|
- node.unitTree.sortTreeNodeCustom(function (a, b) {
|
|
|
|
|
- if (a.b_code && a.b_code !== '') {
|
|
|
|
|
- return b.b_code && b.b_code !== '' ? self.ctx.helper.compareCode(a.b_code, b.b_code) : 1;
|
|
|
|
|
- } else {
|
|
|
|
|
- return b.b_code && b.b_code !== '' ? -1 : a.order - b.order;
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- this._calculateNode(node, node.unitTree.children, this.tpFields);
|
|
|
|
|
- } else if (node.children && node.children.length > 0) {
|
|
|
|
|
- this._calculateNode(node, node.children, this.tpFields);
|
|
|
|
|
- } else {
|
|
|
|
|
- this._calculateChild(node);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
_calculateAndSortResult() {
|
|
_calculateAndSortResult() {
|
|
|
this.resultTree.sortTreeNode();
|
|
this.resultTree.sortTreeNode();
|
|
|
console.time('recurCalc');
|
|
console.time('recurCalc');
|
|
|
- // this._recursiveCalculateAndSort(this.resultTree.children);
|
|
|
|
|
- this._calculateAndSortNodes();
|
|
|
|
|
- console.timeEnd('recurCalc');
|
|
|
|
|
|
|
+ this._recursiveCalculateAndSort(this.resultTree.children);
|
|
|
|
|
+ console.timeEnd('recurCalc')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
_generateCodeByWbsCodeWithHis(wbsCode) {
|
|
_generateCodeByWbsCodeWithHis(wbsCode) {
|