Browse Source

code sync

TonyKang 6 years ago
parent
commit
2c87ad2de0

+ 46 - 38
modules/reports/util/rpt_yanghu_data_util.js

@@ -329,6 +329,10 @@ class Rpt_Data_Extractor {
                         //把显示在清单中的量材转移到工料机去, 顺带把项目工料机的组成物工料机分解出来,分解的工料机作为定额工料机保存(02表用)
                         moveRationData(srcData, rawDataObj);
                         break;
+                    case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
+                        //把定额下的组成物的工料机分解出来,分解的工料机作为定额工料机保存(02表用)
+                        moveRationComponentData(srcData, rawDataObj);
+                        break;
                     case JV.PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT:
                         //重庆2018 09-x表专用,机械数据用 组成物替换掉 ^_^!
                         componentReplacement(rawDataObj);
@@ -870,52 +874,56 @@ function moveRationData(rationData, rawDataObj) {
                 //无
             }
         }
-        //这里考虑到项目工料机有组成物,那么这些组成物应该要归类到定额工料机下
-        let newComponentItem = [];
-        for (let rationGljItem of getActDataArr(rationGljData)) {
-            for (let prjGljItem of prjGljData.data.gljList) {
-                if (prjGljItem.id === rationGljItem.projectGLJID) {
-                    if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0 && !gljUtil.isConcreteType(prjGljItem.type)) {
-                        //有组成物
-                        for (let comItem of prjGljItem.ratio_data) {
-                            let copyItem = {};
-                            copyItem.ID = comItem._id.toString();
-                            copyItem.projectID = rationGljItem.projectID;
-                            copyItem.rationID = rationGljItem.rationID;
-                            // copyItem.rationItemQuantity = rationGljItem.quantity;
-                            copyItem.quantity = parseFloat(rationGljItem.quantity) * parseFloat(comItem.consumption);
-                            copyItem.name = comItem.name;
-                            copyItem.code = comItem.code;
-                            copyItem.unit = comItem.unit;
-                            copyItem.specs = comItem.specs;
-                            // copyItem.shortName = comItem.shortName;
-                            copyItem.billsItemID = rationGljItem.billsItemID;
-                            copyItem.type = comItem.type;
-                            //其他属性,要根据工料机ID来查找
-                            for (let gljIdx = 0; gljIdx < prjGljData.data.gljList.length; gljIdx++) {
-                                if (prjGljData.data.gljList[gljIdx].code === comItem.code) {
-                                    copyItem.projectGLJID = prjGljData.data.gljList[gljIdx].id;
-                                    copyItem.original_code = prjGljData.data.gljList[gljIdx].original_code;
-                                    copyItem.is_main_material = prjGljData.data.gljList[gljIdx].is_main_material;
-                                    copyItem.is_adjust_price = prjGljData.data.gljList[gljIdx].is_adjust_price;
-                                    copyItem.unit_price = {};
-                                    copyItem.unit_price.base_price = prjGljData.data.gljList[gljIdx].unit_price.base_price;
-                                    copyItem.unit_price.market_price = prjGljData.data.gljList[gljIdx].unit_price.market_price;
-                                    break;
-                                }
+        // fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
+    }
+}
+
+//有些项目工料机有组成物,有些表需要显示这些组成物,此函数把这些组成物抽出并归类到定额工料机下
+function moveRationComponentData(rationData, rawDataObj) {
+    let rationGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.RATION_GLJ);
+    let prjGljData = getModuleDataByKey(rawDataObj.prjData, projectConst.PROJECTGLJ);
+    let newComponentItem = [];
+    for (let rationGljItem of getActDataArr(rationGljData)) {
+        for (let prjGljItem of prjGljData.data.gljList) {
+            if (prjGljItem.id === rationGljItem.projectGLJID) {
+                if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0 && !gljUtil.isConcreteType(prjGljItem.type)) {
+                    //有组成物
+                    for (let comItem of prjGljItem.ratio_data) {
+                        let copyItem = {};
+                        copyItem.ID = comItem._id.toString();
+                        copyItem.projectID = rationGljItem.projectID;
+                        copyItem.rationID = rationGljItem.rationID;
+                        // copyItem.rationItemQuantity = rationGljItem.quantity;
+                        copyItem.quantity = parseFloat(rationGljItem.quantity) * parseFloat(comItem.consumption);
+                        copyItem.name = comItem.name;
+                        copyItem.code = comItem.code;
+                        copyItem.unit = comItem.unit;
+                        copyItem.specs = comItem.specs;
+                        // copyItem.shortName = comItem.shortName;
+                        copyItem.billsItemID = rationGljItem.billsItemID;
+                        copyItem.type = comItem.type;
+                        //其他属性,要根据工料机ID来查找
+                        for (let gljIdx = 0; gljIdx < prjGljData.data.gljList.length; gljIdx++) {
+                            if (prjGljData.data.gljList[gljIdx].code === comItem.code) {
+                                copyItem.projectGLJID = prjGljData.data.gljList[gljIdx].id;
+                                copyItem.original_code = prjGljData.data.gljList[gljIdx].original_code;
+                                copyItem.is_main_material = prjGljData.data.gljList[gljIdx].is_main_material;
+                                copyItem.is_adjust_price = prjGljData.data.gljList[gljIdx].is_adjust_price;
+                                copyItem.unit_price = {};
+                                copyItem.unit_price.base_price = prjGljData.data.gljList[gljIdx].unit_price.base_price;
+                                copyItem.unit_price.market_price = prjGljData.data.gljList[gljIdx].unit_price.market_price;
+                                break;
                             }
-                            newComponentItem.push(copyItem);
                         }
+                        newComponentItem.push(copyItem);
                     }
-                    break;
                 }
+                break;
             }
         }
-        rationGljData.data = rationGljData.data.concat(newComponentItem);
-        // fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
     }
+    rationGljData.data = rationGljData.data.concat(newComponentItem);
 }
-
 function getDupGrpKeyVals(sourceData, segKeys) {
     let rst = [];
     function pushKeyVal(item) {

+ 2 - 1
public/web/rpt_value_define.js

@@ -67,7 +67,8 @@ const JV = {
     PROP_HANDLE_TYPE_SORT: "排序",
     PROP_HANDLE_TYPE_ADD_DUMMY: "增加Dummy数据",
     PROP_HANDLE_TYPE_ADJUST: "数据调整",
-    PROP_HANDLE_TYPE_BILLS_DATA_MOVE: "量材及组成物数据转移",
+    PROP_HANDLE_TYPE_BILLS_DATA_MOVE: "量材数据转移",
+    PROP_HANDLE_TYPE_COMPONENT_MOVE: "组成物数据转移",
     PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT: "组成物替换",
     PROP_HANDLE_TYPE_PRECISION: "合计精度",
 

+ 11 - 2
web/maintain/report/js/rpt_tpl_pre_handle.js

@@ -270,12 +270,13 @@ let preHandleObj = {
         types.push({Name: JV.PROP_HANDLE_TYPE_SORT, Title: ""});
         types.push({Name: JV.PROP_HANDLE_TYPE_FILTER, Title: ""});
         types.push({Name: JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE, Title: ""});
+        types.push({Name: JV.PROP_HANDLE_TYPE_COMPONENT_MOVE, Title: ""});
         types.push({Name: JV.PROP_HANDLE_TYPE_SUM, Title: ""});
         types.push({Name: JV.PROP_HANDLE_TYPE_ADJUST, Title: ""});
         types.push({Name: JV.PROP_HANDLE_TYPE_ADD_DUMMY, Title: ""});
         // types.push({Name: "纯手工填写", Title: ""});
         me.typeTreeObj = $.fn.zTree.init($("#pre_handle_type_reversed"), preHandleTypeSetting, types);
-        me.setDisabledBandSelect([0,1,2,3,4,5]);
+        me.setDisabledBandSelect([0,1,2,3,4,5,6]);
         me.build_handle_data_selection();
     },
     setDisabledBandSelect: function(disabledIdxArr) {
@@ -306,6 +307,9 @@ let preHandleObj = {
             case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
                 rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
                 break;
+            case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
+                break;
             case JV.PROP_HANDLE_TYPE_SUM:
                 rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]};
                 break;
@@ -342,6 +346,8 @@ let preHandleObj = {
                 break;
             case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
                 break;
+            case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
+                break;
             case JV.PROP_HANDLE_TYPE_SUM:
                 item[JV.PROP_SUM_GROUP_KEYS] = [];
                 item[JV.PROP_SUM_SUM_KEYS] = [];
@@ -438,7 +444,7 @@ let preHandleObj = {
         //点击预处理环节 节点
         let me = preHandleObj;
         me.currentNode = treeNode;
-        me.setDisabledBandSelect([3,4,5]);
+        me.setDisabledBandSelect([4,5,6]);
         // me.setDisabledBandSelect([]);
         me.refreshByNode(treeNode);
     },
@@ -556,6 +562,9 @@ let preHandleObj = {
                     case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
                         rst.push(preHandleBillDataMoveObj.extractTabFields(handleObj));
                         break;
+                    case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
+                        rst.push(preHandleBillDataMoveObj.extractTabFields(handleObj));
+                        break;
                     default:
                         break;
                 }