|
|
@@ -682,7 +682,15 @@ function getBuildingArea(projFeature){
|
|
|
function getSortedDataByTree(data) {
|
|
|
// NextSiblingID-数据映射
|
|
|
const mapping = {};
|
|
|
- data.forEach(item => mapping[item.NextSiblingID] = item);
|
|
|
+ data.forEach(item => {
|
|
|
+ // 错误数据兼容处理
|
|
|
+ // 由于之前的导入建设项目,会导致最后的一个项目的NextSiblingID为空,为非正确的-1
|
|
|
+ // 因此把项目中NextSibling为空的数据设置为NextSiblingID为-1
|
|
|
+ if (!item.NextSiblingID) {
|
|
|
+ item.NextSiblingID = -1;
|
|
|
+ }
|
|
|
+ mapping[item.NextSiblingID] = item;
|
|
|
+ });
|
|
|
let lastItem = data.find(item => +item.NextSiblingID === -1);
|
|
|
if (!lastItem) {
|
|
|
return data;
|
|
|
@@ -715,7 +723,7 @@ async function getSummaryInfoByTender(tenderID, summaryType) {
|
|
|
// 汇总到建设项目层(没有单项工程层了)
|
|
|
if (summaryType === projectType.project) {
|
|
|
parentName = project.name ? project.name : '';
|
|
|
- let tenders = await projectModel.find({ParentID: project.ID, $or: notDeleted});
|
|
|
+ let tenders = await projectModel.find({ParentID: project.ID, $or: notDeleted}).lean();
|
|
|
tenders = getSortedDataByTree(tenders);
|
|
|
for(let t of tenders){
|
|
|
if(summaryInfo[t.ID]){
|