Explorar el Código

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

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

+ 10 - 2
modules/pm/facade/pm_facade.js

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