|
|
@@ -714,7 +714,15 @@ async function getIndexReportData(prj_id, filters) {
|
|
|
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;
|
|
|
@@ -752,7 +760,7 @@ async function getSummaryInfoByTender(tenderID, summaryType) {
|
|
|
let summaryInfo = await getSummaryInfo([project.ID]);
|
|
|
if(summaryType === projectType.engineering){ // 汇总到单项工程级别
|
|
|
parent = engineering;
|
|
|
- let tenders = await projectModel.find({ParentID: engineering.ID, $or: notDeleted});
|
|
|
+ let tenders = await projectModel.find({ParentID: engineering.ID, $or: notDeleted}).lean();
|
|
|
tenders = getSortedDataByTree(tenders);
|
|
|
for(let t of tenders){
|
|
|
if(summaryInfo[t.ID]){
|
|
|
@@ -762,7 +770,7 @@ async function getSummaryInfoByTender(tenderID, summaryType) {
|
|
|
}
|
|
|
} else { // 汇总到建设项目级别
|
|
|
parent = project;
|
|
|
- let engs = await projectModel.find({ParentID: project.ID, $or: notDeleted});
|
|
|
+ let engs = await projectModel.find({ParentID: project.ID, $or: notDeleted}).lean();
|
|
|
engs = getSortedDataByTree(engs);
|
|
|
for(let e of engs){
|
|
|
if(summaryInfo[e.ID]){
|