TonyKang преди 6 години
родител
ревизия
64f15621f1
променени са 2 файла, в които са добавени 48 реда и са изтрити 3 реда
  1. 47 2
      modules/reports/util/rpt_yanghu_data_util.js
  2. 1 1
      public/web/rpt_value_define.js

+ 47 - 2
modules/reports/util/rpt_yanghu_data_util.js

@@ -326,7 +326,7 @@ class Rpt_Data_Extractor {
                         adjustData(srcData, preHandle);
                         break;
                     case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
-                        //把显示在清单中的量材转移到工料机去
+                        //把显示在清单中的量材转移到工料机去, 顺带把项目工料机的组成物工料机分解出来,分解的工料机作为定额工料机保存(02表用)
                         moveRationData(srcData, rawDataObj);
                         break;
                     case JV.PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT:
@@ -857,16 +857,61 @@ function moveRationData(rationData, rawDataObj) {
                     copyItem.projectGLJID = dummyPRJID;
                     dummyPrjItem.id = dummyPRJID;
                     dummyPRJID++;
+                    dummyPrjItem.name = rationItem.name;
                     dummyPrjItem.unit_price = {};
                     dummyPrjItem.unit_price.base_price = 0;
                     dummyPrjItem.unit_price.market_price = (rationItem["marketUnitFee"])?rationItem["marketUnitFee"]:0;
-                    dummyPrjItem.quantity = 0;
+                    dummyPrjItem.quantity = 1; //这里设置为1只是为了不被误过滤
                     dummyPrjItem.is_evaluate = 0;
                     prjGljData.data.gljList.push(dummyPrjItem);
                 }
                 rationGljData.data.push(copyItem);
+            } else {
+                //无
+            }
+        }
+        //这里考虑到项目工料机有组成物,那么这些组成物应该要归类到定额工料机下
+        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) {
+                        //有组成物
+                        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 = prjGljItem.quantity * 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);
+                        }
+                    }
+                    break;
+                }
             }
         }
+        rationGljData.data = rationGljData.data.concat(newComponentItem);
         // fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
     }
 }

+ 1 - 1
public/web/rpt_value_define.js

@@ -67,7 +67,7 @@ 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_REPLACEMENT: "组成物替换",
     PROP_HANDLE_TYPE_PRECISION: "合计精度",