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
7c1114ca84

+ 53 - 11
modules/main/facade/project_facade.js

@@ -384,23 +384,65 @@ async function setSEILibData(property){
     }
 }
 
-async function getIndexReportData(projectID) {
+async function getIndexReportData(projectID,keyArr) {
     let project = await projectsModel.findOne({ID:projectID});
     let bills = await bill_model.getDataSync(projectID);
-    let engineerCostList = getEngineerCostData(project.property,bills);
-    let engineerEcoList = getEconomicDatas(project.property,bills);
-    let mainMaterialList = await getMainMaterialDatas(projectID,project.property);
-    let quantityList = await getQuantityDatas(project.property,bills);
-    let result = {
-        ProjectCostFields:engineerCostList,
-        ProjectEcoFields:engineerEcoList,
-        ProjectLabMaterialFields:mainMaterialList,
-        ProjectQtyFields:quantityList
-    };
+    let result = {};
+
+     for(let key of keyArr){
+         switch (key) {
+             case 'ProjectCostFields':
+                 result[key] =getEngineerCostData(project.property,bills);
+                 break;
+             case 'ProjectEcoFields':
+                 result[key] = getEconomicDatas(project.property,bills);
+                 break;
+             case 'ProjectLabMaterialFields':
+                 result[key] = await getMainMaterialDatas(projectID,project.property);
+                 break;
+             case 'ProjectQtyFields':
+                 result[key] = await getQuantityDatas(project.property,bills);
+                 break;
+             case 'ProjectInfoFields':
+                 result[key] = getEngineerInfoData(project.property.engineerInfos);
+                 break;
+             case 'ProjectFeatureFields':
+                 result[key] = getEngineerFeaturesDatas(project.property.engineerFeatures);
+                 break;
+         }
+     }
     return result
 }
 
 
+
+
+function getEngineerInfoData(engineerInfos) {
+    let datas = [];
+    for(let info of engineerInfos){
+        let d = {
+            name:info.dispName,
+            value:info.value
+        };
+        datas.push(d);
+    }
+    return datas;
+}
+
+function getEngineerFeaturesDatas(engineerFeatures) {
+    let datas = [];
+    for(let f of engineerFeatures){
+        let tem = {
+            ID:f.ID,
+            name:f.name,
+            value:f.value,
+            ParentID:f.ParentID
+        }
+        datas.push(tem);
+    }
+    return datas;
+}
+
 function getQuantityDatas(property,bills) {
      return gljUtil.getQuantityDatas(property.engineerFeatures,property.mainQuantities,bills,fixedFlag,_,scMathUtil,property.decimal)
 }

+ 6 - 4
modules/main/models/project_consts.js

@@ -50,10 +50,12 @@ let summaryConstList = [
 ];
 
 let projectFieldConstList = [
-    `ProjectCostFields`,
-    `ProjectEcoFields`,
-    `ProjectLabMaterialFields`,
-    `ProjectQtyFields`
+    `ProjectInfoFields`,        //工程信息指标
+    `ProjectFeatureFields`,     //工程特征指标
+    `ProjectCostFields`,        //工程造价指标
+    `ProjectEcoFields`,         //工程(主要)经济指标
+    `ProjectLabMaterialFields`, //主要工料指标
+    `ProjectQtyFields`          //主要工程量指标
 ];
 
 let commonConst = {

+ 2 - 2
modules/pm/facade/pm_facade.js

@@ -706,8 +706,8 @@ function getBuildingArea(projFeature){
 
 //根据单位工程ID获取经济指标信息
 //@param {Number}prj_id @return {Object}
-async function getIndexReportData(prj_id) {
-    return await project_facade.getIndexReportData(prj_id);
+async function getIndexReportData(prj_id, filters) {
+    return await project_facade.getIndexReportData(prj_id, filters);
 }
 
 //根据单位工程ID获取汇总信息

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

@@ -242,7 +242,7 @@ function getAllPagesCommon(user_id, prj_id, rpt_id, pageSize, orientation, custo
                 }
             }
             if (economicRst.length > 0) {
-                promiseArr[2] = pm_facade.getIndexReportData(prj_id);
+                promiseArr[2] = pm_facade.getIndexReportData(prj_id, economicRst);
             }
             rptTplDataFacade.prepareProjectData(user_id, prj_id, filter, function (err, msg, rawDataObj) {
                 if (!err) {

+ 3 - 0
modules/users/models/user_model.js

@@ -176,10 +176,13 @@ class UserModel extends BaseModel {
                 latest_login:userData.latest_login,
                 isUserActive: userData.isUserActive,
             };
+            console.log("updateUser 开始 -------------------------------");
             let updateResult = await this.updateUser(condition,UpdateData);
+            console.log("updateUser 完成 -------------------------------");
             if (updateResult.ok === 1) {
                 let logModel = new LogModel();
                 result = await logModel.addLoginLog(userDataFromDb._id, request);
+                console.log("addLoginLog 完成 -------------------------------");
             }
         }
         request.session.sessionUser.id = userDataFromDb._id;

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

@@ -67,7 +67,7 @@ let userId_me = "5b6a60b1c4ba33000dd417c0"; //我的
 // demoPrjId = 2260; //QA:
 // demoPrjId = 5029; //
 // demoPrjId = 5029; //项目名称过长
-demoPrjId = 8464; //
+demoPrjId = 8522; //
 // demoPrjId = 4107; //UAT:
 //*/
 let userId_Dft = userId_Leng;

+ 2 - 2
web/building_saas/main/html/main.html

@@ -288,7 +288,7 @@
                                                           <li class="nav-item" data-toggle="tooltip" data-placement="left" title="项目特征">
                                                               <a data-toggle="tab" id="xm-nav" href="#rnc-xm" role="tab" class="zmhs-link nav-link">特征<!--<i class="fa fa-info-circle"></i>--></a>
                                                           </li>
-                                                          <li class="nav-item" data-toggle="tooltip" data-placement="left" title="附注条件"><a data-toggle="tab" href="#rnc-zm" role="tab"class="zmhs-link nav-link">换算<!--<i class="fa fa-check-circle-o"></i>--></a></li>
+                                                          <li class="nav-item" data-toggle="tooltip" data-placement="left" title="附注条件"><a data-toggle="tab" id="hs-nav" href="#rnc-zm" role="tab"class="zmhs-link nav-link">换算<!--<i class="fa fa-check-circle-o"></i>--></a></li>
                                                           <li class="nav-item" data-toggle="tooltip" data-placement="left" title="自定义系数"><a data-toggle="tab" href="#rnc-cus" role="tab"class="zmhs-link nav-link">系数<!--<i class="fa fa-wrench"></i>--></a></li>
                                      <!--                     <li class="nav-item" data-toggle="tooltip" data-placement="left" title="增减换算"><a data-toggle="tab" href="#rnc-fz" role="tab"class="zmhs-link nav-link "><i class="fa fa-plus"></i></a></li>-->
                                                         <!--  <li class="nav-item"><a data-toggle="tab" href="#rnc-xm" role="tab"  class="nav-link">项目特征</a></li>
@@ -1634,7 +1634,7 @@
                         </label>
                     </div>
                     <div class="form-check">
-                        <input class="form-check-input zlfb-check" type="checkbox" checked id="bill_recode"  >
+                        <input class="form-check-input zlfb-check" type="checkbox" id="bill_recode"  >
                         <label class="form-check-label">
                             清单重新编码
                         </label>

+ 8 - 4
web/building_saas/main/js/models/calc_program.js

@@ -384,7 +384,7 @@ let calcTools = {
         // 普通基数计算(包括普通价差)
         else{
             for (let glj of treeNode.data.gljList) {
-                if (gljTypes.indexOf(glj.type) >= 0) {
+                    if (gljTypes.indexOf(glj.type) >= 0) {
                     if (isTender){
                         calcTools.calcGLJTenderPrice(glj);
                         calcTools.calcGLJTenderQty(treeNode, glj);
@@ -829,9 +829,13 @@ let calcTools = {
         return this.calcNodeTenderQty(treeNode);
     },
     calcNodeTenderQty: function (treeNode){
-        let qCoe = (treeNode.data.rationQuantityCoe == undefined) ? 1 : treeNode.data.rationQuantityCoe;
-        treeNode.data.tenderQuantity = (this.uiNodeQty(treeNode) * qCoe).toDecimal(decimalObj.decimal("quantity", treeNode));
-        return treeNode.data.tenderQuantity;
+        if (this.isBill(treeNode))                 // 清单只有一个工程量,没有调整后工程量。
+            return this.uiNodeQty(treeNode)
+        else{
+            let qCoe = (treeNode.data.rationQuantityCoe == undefined || treeNode.data.rationQuantityCoe == 0) ? 1 : treeNode.data.rationQuantityCoe;
+            treeNode.data.tenderQuantity = (this.uiNodeQty(treeNode) * qCoe).toDecimal(decimalObj.decimal("quantity", treeNode));
+            return treeNode.data.tenderQuantity;
+        }
     },
     calcGLJTenderQty: function (treeNode, glj){
         if (treeNode.data.quantityCoe == undefined){

+ 6 - 1
web/building_saas/main/js/views/sub_view.js

@@ -13,6 +13,7 @@ let subObj = {
     TZJNRrePercent:null,
     showGljSubTab:false,
     showQDSubTab:false,
+    firstOpen:true,
     initSubSpread:function () {
         //清单子界面
         BillsSub.buildSheet();
@@ -198,6 +199,10 @@ let subObj = {
         if (gljOprObj.activeTab !== gljOprObj.preActiveTab) {   //提高焦点变换性能 2019年4月12日
             refreshSubSpread();
         }
+        if(this.firstOpen == true){
+            $("#zmhs_toogle").click();
+            this.firstOpen = false;
+        }
     },
     showQDSubTabData:function () {
         this.initQDSubTab();
@@ -814,7 +819,7 @@ $('#linkAZZJF').on('shown.bs.tab', function () {
 $('#zmhs_toogle').bind('click',function (){
    $("#zmhs_nav").show();
    if(subObj.showGljSubTab == false){
-       subObj.activeGLJItemTab?$(subObj.activeGLJItemTab).click():$("#xm-nav").click();
+       subObj.activeGLJItemTab?$(subObj.activeGLJItemTab).click():$("#hs-nav").click();
    }
     $("#zmhs_toogle").hide();
 });

+ 3 - 2
web/building_saas/main/js/views/tender_price_view.js

@@ -14,7 +14,7 @@ let tender_obj={
             {headerName: "项目名称", headerWidth: 200, dataCode: "name",showHint:true, hAlign: "left", dataType: "String",spanRows: [2]},
             {headerName: "计量\n单位", headerWidth: 60, dataCode: "unit", hAlign: "center", dataType: "String",spanRows: [2]},
             {headerName: "工程量", headerWidth: 70, dataCode: "quantity", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2],getText:'getText.quantity'},
-            {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", hAlign: "center", cellType : "checkBox",dataType: "Number",spanRows: [2]},
+            // {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", hAlign: "center", cellType : "checkBox",dataType: "Number",spanRows: [2]},
             {headerName: ["初始报价","综合单价"], headerWidth: 80, dataCode: "feesIndex.common.unitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
             {headerName: ["","综合合价"], headerWidth: 80, dataCode: "feesIndex.common.totalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
             {headerName: ["目标造价","综合单价"], headerWidth: 80, dataCode: "targetUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
@@ -29,7 +29,8 @@ let tender_obj={
             {headerName: "子目工程量\n调整系数", headerWidth: 80, dataCode: "rationQuantityCoe", hAlign: "right", dataType: "Number",spanRows: [2],validator:"number"}
         ],
         view: {
-            lockColumns: [0,1,2,3,4,6,7,10,11]
+            // lockColumns: [0,1,2,3,4,6,7,10,11]
+            lockColumns: [0,1,2,3,4,5,6,9,10]
         }
     },
     tenderTreeSetting:{