Преглед на файлове

bug2380 - 汇总算法逻辑问题

TonyKang преди 6 години
родител
ревизия
8271249ee5

+ 2 - 2
modules/main/facade/project_facade.js

@@ -371,7 +371,7 @@ function getReportData(nameList,items,prjTypeNames,compilationScopes,decimal) {
                 total = scMathUtil.roundForObj(p+total,decimal.process);
             }
             tem.billsPrices.push(p);
-            if(bills.quantityMap[n]){
+            if(bills.quantityMap[n] && parseFloat(bills.quantityMap[n]) !== 0){
                 tem.billsAmounts.push(bills.quantityMap[n]);
                 tem['技术经济指标'].push(scMathUtil.roundForObj(p/bills.quantityMap[n],2));
             }else {
@@ -380,7 +380,7 @@ function getReportData(nameList,items,prjTypeNames,compilationScopes,decimal) {
             }
         }
         tem.billsTtlPrice = scMathUtil.roundForObj(total,decimal.bills.totalPrice);
-        tem['技术经济综合指标'] = tem.billsTtlAmt?scMathUtil.roundForObj(tem.billsTtlPrice/tem.billsTtlAmt,2):0;
+        tem['技术经济综合指标'] = (tem.billsTtlAmt && parseFloat(tem.billsTtlAmt) !== 0)?scMathUtil.roundForObj(tem.billsTtlPrice/tem.billsTtlAmt,2):0;
         if(bills.flag == fixedFlag.TOTAL_COST) totalItem = tem;
         return tem
     }

+ 1 - 0
modules/reports/controllers/rpt_controller.js

@@ -427,6 +427,7 @@ function getMultiRptsCommon(user_id, prj_id, rpt_ids, pageSize, orientation, cus
 function getBillsSummaryReportPages(user_id, prjIds, rpt_id, pageSize, orientation, customizeCfg, option, outputType, cb) {
     let rptTpl = null;
     rptTplDataFacade.getBudgetSummayDatas(prjIds).then(function(summaryRawDataRst) {
+        console.log(summaryRawDataRst);
         rptTplFacade.getRptTemplate(rpt_id).then(function(rptTpl) {
             let rptDataUtil = new rptDataExtractor();
             rptDataUtil.initialize((rptTpl._doc)?rptTpl._doc:rptTpl);

+ 5 - 5
test/unit/reports/test_rpt_test_template.js

@@ -32,7 +32,7 @@ let demoPrjId = - 1;
 // let demoRptId = 26; //07
 // let demoRptId = 28; //09
 // let demoRptId = 27; //08
-let demoRptId = 24; //05
+// let demoRptId = 24; //05
 // let demoRptId = 20; //01
 // let demoRptId = 23; //04 综合费率表
 
@@ -47,7 +47,7 @@ let demoRptId = 24; //05
 // let demoRptId = 68; //01-2
 // let demoRptId = 71; //21-2
 // let demoRptId = 74; //22
-// let demoRptId = 83; //02 预算
+let demoRptId = 83; //02 预算
 // let demoRptId = 84; //02 清单
 
 let pagesize = "A4";
@@ -71,7 +71,7 @@ let userId_Leng = "5c3ffa9aa0a92732f41216e0"; //小冷User Id (养护的)
 // demoPrjId = 618; //PROD:
 // demoPrjId = 2580; //PROD:
 // demoPrjId = 815; //PROD:
-demoPrjId = 552; //UAT:
+demoPrjId = 3261; //UAT:
 // demoPrjId = 738; //UAT:
 // demoPrjId = 670; //UAT: 清单项目
 //*/
@@ -114,9 +114,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();

+ 5 - 4
test/unit/reports/test_summary_multi_prjs.js

@@ -14,14 +14,15 @@ let dbm = require("../../../config/db/db_manager");
 let rpt_cfg = require('./rpt_cfg');
 dbm.connect(process.env.NODE_ENV);
 
-let demoPrjs = [1510, 1511]; //
+let demoPrjs = [2552]; //
 // let demoRptId = 68; //01-2
 let demoRptId = 72; //01-1
 // let demoRptId = 73; //02-2
 let pagesize = "A4";
-let userId_Leng = "5c3ffa9aa0a92732f41216e0"; //小冷User Id (养护的)
+// let userId_Leng = "5c3ffa9aa0a92732f41216e0"; //小冷User Id (养护的)
 // let userId_me = "5b6a60b1c4ba33000dd417c0"; //我的
-let userId_Dft = userId_Leng;
+// let userId_Dft = userId_Leng;
+let userId_Dft = "5c49353e9bda24000b44414e"; //曾沛文的ID
 
 //统一引用models
 fileUtils.getGlobbedFiles('../../../modules/all_models/*.js').forEach(function(modelPath) {
@@ -52,7 +53,7 @@ test('测试 - 测试清单汇总: ', function (t) {
         rptTplFacade.getRptTemplate(demoRptId).then(function(rptTpl) {
             try {
                 let dt = new Date();
-                fsUtil.writeObjToFile(summaryRst, "D:/GitHome/YangHuCost/tmp/多清单汇总表(01_2)原始数据.jsp");
+                // fsUtil.writeObjToFile(summaryRst, "D:/GitHome/YangHuCost/tmp/多清单汇总表(01_2)原始数据.jsp");
                 let rptDataUtil = new rptDataExtractor();
                 rptDataUtil.initialize(rptTpl._doc);
                 let tplData = rptDataUtil.assembleData(summaryRst);