Explorar el Código

导入建设项目,错误数据兼容处理,能正确将单项、单位汇总排序

zhongzewei hace 6 años
padre
commit
d36bf3cb7e
Se han modificado 1 ficheros con 11 adiciones y 3 borrados
  1. 11 3
      modules/pm/facade/pm_facade.js

+ 11 - 3
modules/pm/facade/pm_facade.js

@@ -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]){