Przeglądaj źródła

Merge branch '1.0.0_online' of http://192.168.1.41:3000/SmartCost/ConstructionCost into 1.0.0_online

zhongzewei 6 lat temu
rodzic
commit
da5e4756aa

+ 7 - 0
modules/pm/facade/pm_facade.js

@@ -14,6 +14,7 @@ module.exports={
     copyExample: copyExample,
     getSummaryInfo: getSummaryInfo,
     getSummaryInfoByTender: getSummaryInfoByTender,
+    getIndexReportData: getIndexReportData,
     getTendersFeeInfo: getTendersFeeInfo,
     getConstructionProject: getConstructionProject,
     getFullPath: getFullPath,
@@ -703,6 +704,12 @@ function getBuildingArea(projFeature){
     return null;
 }
 
+//根据单位工程ID获取经济指标信息
+//@param {Number}prj_id @return {Object}
+async function getIndexReportData(prj_id) {
+    return await project_facade.getIndexReportData(prj_id);
+}
+
 //根据单位工程ID获取汇总信息
 //@param {Number}tenderID {String}summaryType @return {Object}
 async function getSummaryInfoByTender(tenderID, summaryType) {

+ 12 - 13
modules/reports/controllers/rpt_controller.js

@@ -222,12 +222,7 @@ function setupCustomizeCfg(customizeCfg, rptTpl, defProperties) {
         }
     }
 }
-function getEcoFieldsData() {
-    let dummyDataObj = null;
-    let data = fs.readFileSync('D:/Temp/demoFieldData.js', 'utf8', 'r');
-    eval('dummyDataObj = ' + data + ';');
-    return dummyDataObj;
-}
+
 function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, customizeCfg, option, outputType, cb) {
     let rptTpl = null;
     rptTplFacade.getRptTemplate(rpt_id).then(function(rst) {
@@ -247,7 +242,7 @@ function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, custo
                 }
             }
             if (economicRst.length > 0) {
-                promiseArr[2] = getEcoFieldsData();
+                promiseArr[2] = pm_facade.getIndexReportData(prj_id);
             }
             rptTplDataFacade.prepareProjectData(user_id, prj_id, filter, function (err, msg, rawDataObj) {
                 if (!err) {
@@ -306,13 +301,17 @@ function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, custo
                         });
                     } else {
                         if (promiseArr[2] !== null) {
-                            //暂时这样测试
-                            rawDataObj.prjData.push({moduleName: 'ProjectCostFields', data: promiseArr[2].ProjectCostFields});
-                            rawDataObj.prjData.push({moduleName: 'ProjectEcoFields', data: promiseArr[2].ProjectEcoFields});
-                            rawDataObj.prjData.push({moduleName: 'ProjectLabMaterialFields', data: promiseArr[2].ProjectLabMaterialFields});
-                            rawDataObj.prjData.push({moduleName: 'ProjectQtyFields', data: promiseArr[2].ProjectQtyFields});
+                            promiseArr[2].then(function (rst) {
+                                let ecoFieldsRst = (rst._doc)?rst._doc:rst;
+                                rawDataObj.prjData.push({moduleName: 'ProjectCostFields', data: ecoFieldsRst.ProjectCostFields});
+                                rawDataObj.prjData.push({moduleName: 'ProjectEcoFields', data: ecoFieldsRst.ProjectEcoFields});
+                                rawDataObj.prjData.push({moduleName: 'ProjectLabMaterialFields', data: ecoFieldsRst.ProjectLabMaterialFields});
+                                rawDataObj.prjData.push({moduleName: 'ProjectQtyFields', data: ecoFieldsRst.ProjectQtyFields});
+                                buildPageData(rawDataObj, rptDataUtil, rptTpl);
+                            });
+                        } else {
+                            buildPageData(rawDataObj, rptDataUtil, rptTpl);
                         }
-                        buildPageData(rawDataObj, rptDataUtil, rptTpl);
                     }
                     /*/
                     let tplData = rptDataUtil.assembleData(rawDataObj);

+ 8 - 5
web/building_saas/main/js/views/project_view.js

@@ -291,7 +291,7 @@ var projectObj = {
         let stdMatchCode, formatCode, matchs;
         let searchStdBillsAndUpdate = function (stdCode, formatCode) {
             let orgCode = node.data.code?node.data.code.substr(0, 9):"";
-            if (projectObj.project.projectInfo.engineeringInfo.bill_lib.length === 0) {
+            if (projectObj.project.projectInfo.engineeringInfo.bill_lib.length === 0 || updateCodeCheck(value,stdCode === orgCode)) {
                 normalUpdate(node,value,stdCode === orgCode);
             } else if (projectObj.project.projectInfo.engineeringInfo.bill_lib.length > 0) {
                 let libId = projectObj.project.projectInfo.engineeringInfo.bill_lib[0].id;
@@ -355,7 +355,7 @@ var projectObj = {
                     }
                 });
             }
-        }
+        };
         //分部分项、措施项目才匹配
         let withinValidFixed = false;
         let matchFixedFlags = [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE];
@@ -387,16 +387,19 @@ var projectObj = {
         }
         normalUpdate(node,value);
 
-
-        function normalUpdate(billnode,codeValue,onNeedCheck) {//在标准库中没有找到清单时改分项为补项再更新
+        function normalUpdate(billnode,codeValue,no_Need_Check) {//在标准库中没有找到清单时改分项为补项再更新
             let toBX = false;
-            if(onNeedCheck!==true && billnode.data.type == billType.FX){
+            if(no_Need_Check!==true && billnode.data.type == billType.FX){
                 billnode.data.type = billType.BX;
                  toBX = true;
             }
             project.Bills.updateField(billnode.source, 'code', codeValue, toBX);
             me.mainController.refreshTreeNode([billnode], false);
         }
+
+        function updateCodeCheck(value,sameStdCode) {//如果前9位相同,只改前三位,则只更新编号就行了,不用做其它处理
+            return sameStdCode && value && value.length == 12
+        }
     },
     updateRationCode: function (node, value) {
         if(!isDef(node.data.code) && (!isDef(value) || value.toString().trim() == '')){