TonyKang 6 سال پیش
والد
کامیت
9a4569e21c
3فایلهای تغییر یافته به همراه53 افزوده شده و 8 حذف شده
  1. 45 1
      modules/reports/util/rpt_yanghu_data_util.js
  2. 1 1
      public/web/rpt_value_define.js
  3. 7 6
      test/unit/reports/test_rpt_test_template.js

+ 45 - 1
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:
@@ -866,8 +866,52 @@ function moveRationData(rationData, rawDataObj) {
                     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

@@ -68,7 +68,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: "合计精度",
 

+ 7 - 6
test/unit/reports/test_rpt_test_template.js

@@ -41,12 +41,13 @@ let demoPrjId = - 1;
 // let demoRptId = 46; //5.5测试
 // let demoRptId = 49; //5.5
 // let demoRptId = 66; //5.4
-let demoRptId = 67; //21-2
+// let demoRptId = 67; //21-2
 // let demoRptId = 31; //21-1
 // let demoRptId = 37; //5.2.1 计日工劳务
 // let demoRptId = 68; //01-2
 // let demoRptId = 71; //21-2
 // let demoRptId = 74; //22
+let demoRptId = 81; //02
 
 let pagesize = "A4";
 //288: 11-2表(新)
@@ -65,11 +66,11 @@ let userId_Leng = "5c3ffa9aa0a92732f41216e0"; //小冷User Id (养护的)
 // demoPrjId = 671; //PROD:
 // demoPrjId = 2056; //UAT
 // demoPrjId = 815; //UAT
-// demoPrjId = 1516; //PROD:
-demoPrjId = 618; //PROD:
+// demoPrjId = 1510; //PROD:
+// demoPrjId = 618; //PROD:
 // demoPrjId = 2580; //PROD:
 // demoPrjId = 815; //PROD:
-// demoPrjId = 4107; //UAT:
+demoPrjId = 499; //UAT:
 //*/
 let userId_Dft = userId_Leng;
 // userId_Dft = '5c641205950967000d20d35b'; //临时用
@@ -110,9 +111,9 @@ test('测试 - 测试模板啦: ', function (t) {
                 try {
                     let dt = new Date();
                     console.log('取完项目数据时间:' + (dt));
-                    fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/YangHuCost/tmp/rptTplRawDataObject_测试模板.jsp");
+                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/YangHuCost/tmp/rptTplRawDataObject_测试模板.jsp");
                     let tplData = rptDataUtil.assembleData(rawDataObj);
-                    fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/YangHuCost/tmp/rptTplRawDataAfterCacl_测试模板.jsp");
+                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/YangHuCost/tmp/rptTplRawDataAfterCacl_测试模板.jsp");
                     // fsUtil.writeObjToFile(tplData, "D:/GitHome/YangHuCost/tmp/rptTplAssembledData_测试模板.jsp");
                     //it's time to build the report!!!
                     let printCom = JpcEx.createNew();