Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

zhongzewei 7 years ago
parent
commit
a0c26ff30b

+ 21 - 9
modules/reports/util/rpt_construct_data_util.js

@@ -573,11 +573,27 @@ function filterData(sourceData, handleCfg, prjData) {
             }
             startIdx++;
             if (!compRst) {
-                break; //不符合条件的数据则退出(这里的判断条件是and关系)
+                break; //不符合条件的数据则退出(这里的判断条件是and关系)
             }
         }
         return compRst;
     };
+    let private_sub_filter_compare = function (dtlItem, subFilters) {
+        let cmpRst = false;
+        for (let dtlCfg of subFilters) {
+            cmpRst = private_filter_compare(dtlItem, dtlCfg);
+            if (cmpRst) {
+                if (dtlCfg[JV.PROP_OTHER_SUB_FILTER] && dtlCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
+                    cmpRst = private_sub_filter_compare(dtlItem, dtlCfg[JV.PROP_OTHER_SUB_FILTER]);
+                    if (cmpRst) break;
+                } else {
+                    break;
+                }
+            }
+        }
+        return cmpRst;
+    };
+
     for (let item of tempRstArr) {
         if (private_filter_compare(item, handleCfg)) {
             rstArr.push(item);
@@ -586,19 +602,15 @@ function filterData(sourceData, handleCfg, prjData) {
     if (handleCfg[JV.PROP_OTHER_SUB_FILTER] && handleCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
         let newRstArr = [];
         for (let dtlItem of rstArr) {
-            let cmpRst = false;
-            for (let dtlCfg of handleCfg[JV.PROP_OTHER_SUB_FILTER]) {
-                cmpRst = private_filter_compare(dtlItem, dtlCfg);
-                if (cmpRst) {
-                    newRstArr.push(dtlItem);
-                    break;
-                }
+            let cmpRst = private_sub_filter_compare(dtlItem, handleCfg[JV.PROP_OTHER_SUB_FILTER]);
+            if (cmpRst) {
+                newRstArr.push(dtlItem);
             }
         }
         rstArr = newRstArr;
     }
     replaceActDataArr(sourceData, rstArr);
-    // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.js");
+    // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.jsp");
 }
 
 function adjustData(sourceData, adjustCfg) {

+ 9 - 1
public/web/treeDataHelper.js

@@ -29,6 +29,14 @@ let tree_Data_Helper = {
                 nextNode[TOP_BILL_ID] = tbID;
                 if (parentItem === null) {
                     nextNode[TOP_BILL_ID] = nextNode[NODE_ID];
+                    if (nextNode.flags && nextNode.flags.length > 0) {
+                        for (let flag of nextNode.flags) {
+                            if (flag.fieldName === "fixed") {
+                                nextNode[TOP_BILL_ID] = flag.flag;
+                                break;
+                            }
+                        }
+                    }
                 }
                 if (addLevel) nextNode[TREE_LEVEL] = treeLevel;
                 nextNode = tmpNodes[prefix + nextNode[NEXT_ID]];
@@ -36,7 +44,7 @@ let tree_Data_Helper = {
             for (let i = 0; i < iter.length; i++) {
                 let rtbID = tbID;
                 if (parentItem === null) {
-                    rtbID = iter[i][NODE_ID];
+                    rtbID = iter[i][TOP_BILL_ID];
                 }
                 private_buildNodeData(iter[i], iter[i][SUB_ID], (treeLevel + 1), rtbID);
             }

+ 3 - 1
test/unit/reports/test_rpt_test_template.js

@@ -26,7 +26,9 @@ cfgCacheUtil.setupDftCache();
 let fsUtil = require("../../../public/fsUtil");
 
 let demoPrjId = - 1;
-let demoRptId = 288, pagesize = "A4"; //11-2表(新)
+let demoRptId = 279, pagesize = "A4";
+//288: 11-2表(新)
+//279: 04
 
 // let userId_Leng = "59cdf14a0034a1000ba52b97"; //小冷User Id 换成_id了 QQ号
 let userId_Leng = "5acac1e885bf55000bd055ba"; //小冷User Id2