فهرست منبع

BUG #3400 一些编办工料机总汇总表的调整

Tony Kang 3 سال پیش
والد
کامیت
811a71fc0c

+ 7 - 4
modules/main/facade/project_facade.js

@@ -701,7 +701,7 @@ function sortChildren(lists) {
 
 }
 
-async function getGLJSummayDatas(projectIDs) {
+async function getGLJSummayDatas(projectIDs, compilationName = '') {
   let projects = [];
   let names = [];
   let prjTypeNames = [];
@@ -721,7 +721,7 @@ async function getGLJSummayDatas(projectIDs) {
       compilationScopes.push(p.compilationScope);
     }
 
-    let mList = mergeGLJ(mp, projects, names, prjTypeNames);
+    let mList = mergeGLJ(mp, projects, names, prjTypeNames, compilationName);
     mList = gljUtil.sortProjectGLJ(mList, _);
     let summaryGLJDatas = getSummaryGLJDatas(mList, mp.property.decimal, names, prjTypeNames, compilationScopes);
 
@@ -782,9 +782,11 @@ function getSummaryGLJDatas(gljList, decimal, nameList, prjTypeNames, compilatio
 
 }
 
-function mergeGLJ(mp, projects) {
+function mergeGLJ(mp, projects, names, prjTypeNames, compilationName = '') {
   let gljMap = {},
     gljList = [];
+  const noPriceChkList = ['甘肃养护(2021)', '重庆养护(2018)', '浙江养护(2005)', '安徽养护(2018)', '山东养护(2016)', '湖南养护(2014)'];
+  const noPriceCheck = noPriceChkList.indexOf(compilationName) >= 0;
   for (let g of mp.gljList) {
     g.quantityMap = {};
     g.quantityMap[mp.name] = g.tenderQuantity;
@@ -802,9 +804,10 @@ function mergeGLJ(mp, projects) {
       t.unitPriceMap = {};
       t.unitPriceMap[projects[i].name] = t.marketPrice;
       //这里除了5个属性相同判断为同一个之外,还要判断市场价相同,才认为是同一个工料机
+      //但有些省份不需要检测,体现在noPriceCheck标记
       let connect_key = gljUtil.getIndex(t);
       let g = gljMap[connect_key];
-      if (g && g.marketPrice == t.marketPrice) {
+      if (noPriceCheck || (g && g.marketPrice == t.marketPrice)) {
         g.quantityMap[projects[i].name] = t.tenderQuantity;
         g.unitPriceMap[projects[i].name] = t.marketPrice;
       } else {

+ 4 - 3
modules/reports/controllers/rpt_controller.js

@@ -570,8 +570,8 @@ function getSummaryComboPages(req, user_id, prjIds, billsSummaryRpt_ids, gljSumm
     });
 }
 
-async function getGljSummaryReportPages(user_id, prjIds, rpt_id, pageSize, orientation, customizeCfg, option, outputType, cb) {
-    let summaryRawDataRst = await rptTplDataFacade.getGLJSummayDatas(prjIds);
+async function getGljSummaryReportPages(user_id, prjIds, rpt_id, pageSize, orientation, customizeCfg, option, outputType, compilationName, cb) {
+    let summaryRawDataRst = await rptTplDataFacade.getGLJSummayDatas(prjIds, compilationName);
     let rptTpl = await rptTplFacade.getRptTemplate(rpt_id);
     let rptDataUtil = new rptDataExtractor();
     rptDataUtil.initialize((rptTpl._doc)?rptTpl._doc:rptTpl);
@@ -680,7 +680,8 @@ module.exports = {
             customizeCfg = params.custCfg
         ;
         let user_id = req.session.sessionUser.id;
-        getGljSummaryReportPages(user_id, prjIds, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, function (err, pageRst) {
+        const compilationName = req.session.sessionCompilation.name;
+        getGljSummaryReportPages(user_id, prjIds, rpt_id, pageSize, orientation, customizeCfg, null, JV.OUTPUT_TYPE_NORMAL, compilationName, function (err, pageRst) {
             callback(req, res, err, pageRst);
         });
     },

+ 2 - 2
modules/reports/facade/rpt_tpl_data_facade.js

@@ -66,8 +66,8 @@ async function getBudgetSummayDatas(prjIds, userId, CompilationId, overWriteUrl)
     return await projectFacade.getBudgetSummayDatas(prjIds, userId, CompilationId, overWriteUrl);
 }
 
-async function getGLJSummayDatas(prjIds) {
-    return await projectFacade.getGLJSummayDatas(prjIds);
+async function getGLJSummayDatas(prjIds, compilationName = '') {
+    return await projectFacade.getGLJSummayDatas(prjIds, compilationName);
 }
 
 // prepareMultiProjectData 方法实际测试有并行问题,并行的结果有时候会乱来,弃用。以prepareMultiProjectDataEx代替