瀏覽代碼

Merge branch 'master' of http://192.168.1.12:3000/SmartCost/ConstructionCost

TonyKang 7 年之前
父節點
當前提交
f89d9a23d8

+ 2 - 1
modules/all_models/compilation.js

@@ -20,6 +20,7 @@ let engineeringListSchema = new Schema({
     }
 }, {_id: false});
 let childrenSchema = new Schema({
+    id:String,
     // 计价名称
     name: String,
     // 工程专业列表
@@ -47,7 +48,7 @@ let childrenSchema = new Schema({
             "cols":[]
         }
     }
-});
+},{_id: false});
 let modelSchema = {
     // 是否发布
     is_release: {

+ 19 - 0
modules/main/controllers/calc_program_controller.js

@@ -11,6 +11,7 @@ module.exports = {
     saveCalcItem: saveCalcItem,
     saveCalcItems: saveCalcItems,
     updateTemplate: updateTemplate,
+    updateTemplateFile: updateTemplateFile,
     addTemplate: addTemplate,
     deleteTemplate: deleteTemplate
 };
@@ -96,6 +97,24 @@ async function updateTemplate(req, res) {
 
 };
 
+async function updateTemplateFile(req, res) {
+    let result = {};
+    await calcProgramFacade.updateTemplateFile(req.body.data, function (err, msg, data) {
+        if (err) {
+            result.error = 1;
+            result.message = msg;
+            result.data = null;
+        }
+        else{
+            result.error = 0;
+            result.message = msg;
+            result.data = data;
+        }
+        res.json(result);
+    });
+
+};
+
 async function addTemplate(req, res) {
     let result = {};
     calcProgramFacade.addTemplate(req.body.data, function (err, msg) {

+ 23 - 0
modules/main/facade/calc_program_facade.js

@@ -21,6 +21,7 @@ module.exports = {
     saveCalcItem: saveCalcItem,
     saveCalcItems: saveCalcItems,
     updateTemplate: updateTemplate,
+    updateTemplateFile: updateTemplateFile,
     addTemplate: addTemplate,
     deleteTemplate: deleteTemplate
 };
@@ -189,6 +190,28 @@ function updateTemplate(dataObj, callback) {
     });
 };
 
+// 一次性替换所有模板:用于切换模板文件。(这里实际上只替换了所有模板,基本信息如projectID、name等保留)
+// {projectID: 2706, libID: 2}
+async function updateTemplateFile(dataObj, callback) {
+    dataObj=JSON.parse(dataObj);
+    let stdCP = await getStdCalcProgramFile(dataObj.libID);
+    projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
+        if(!err){
+            data.templates = stdCP.templates;
+            data.save(function (err) {
+                if (err) {
+                    callback(1, '计算模板文件保存失败', null);
+                } else {
+                    callback(0, '计算模板文件保存成功', stdCP.templates);
+                }
+            });
+        }
+        else {
+            callback(1, '没有找到项目的计算模板文件', null);
+        }
+    });
+};
+
 // {  projectID: 1233, ID: 19, name: '建筑工程2', custom: true, calcItems: [{},{}] }
 function addTemplate(dataObj, callback) {
     dataObj=JSON.parse(dataObj);

+ 1 - 0
modules/main/routes/calc_program_route.js

@@ -14,6 +14,7 @@ module.exports = function (app) {
     cpRouter.post('/saveCalcItem', cpController.saveCalcItem);
     cpRouter.post('/saveCalcItems', cpController.saveCalcItems);
     cpRouter.post('/updateTemplate', cpController.updateTemplate);
+    cpRouter.post('/updateTemplateFile', cpController.updateTemplateFile);
     cpRouter.post('/addTemplate', cpController.addTemplate);
     cpRouter.post('/deleteTemplate', cpController.deleteTemplate);
 

+ 5 - 5
modules/users/models/engineering_lib_model.js

@@ -39,10 +39,10 @@ class EngineeringLibModel extends BaseModel {
                 continue;
             }
             for(let engineering of valuation.engineering_list) {
-                if (engineeringTemp[valuation._id] === undefined) {
-                    engineeringTemp[valuation._id] = [engineering.engineering_id];
+                if (engineeringTemp[valuation.id] === undefined) {
+                    engineeringTemp[valuation.id] = [engineering.engineering_id];
                 }else {
-                    engineeringTemp[valuation._id].push(engineering.engineering_id);
+                    engineeringTemp[valuation.id].push(engineering.engineering_id);
                 }
                 engineeringLibIdList.push(engineering.engineering_id);
             }
@@ -79,10 +79,10 @@ class EngineeringLibModel extends BaseModel {
                 continue;
             }
             for(let engineering of valuation.engineering_list) {
-                if (engineering === null || engineeringLib[valuation._id] === undefined) {
+                if (engineering === null || engineeringLib[valuation.id] === undefined) {
                     continue;
                 }
-                for (let tmp of engineeringLib[valuation._id]) {
+                for (let tmp of engineeringLib[valuation.id]) {
                     if (tmp._id.toString() === engineering.engineering_id.toString()) {
                         engineering.lib = tmp;
                     }

+ 9 - 4
web/building_saas/main/js/views/calc_program_manage.js

@@ -497,15 +497,20 @@ $(document).ready(function(){
         // 取标准库数据过来显示。
         let libID = $(this).val();
         if (libID == ''){
-
+            calcProgramManage.mainSpread.getSheet(0).setRowCount(0);
+            calcProgramManage.detailSpread.getSheet(0).setRowCount(0);
             return false;
         };
 
-        CommonAjax.post('/calcProgram/getStdCalcProgram', {"ID":  parseFloat(libID)}, function (data) {
-            projectObj.project.calcProgram.datas.templates = data.templates;
+        $.bootstrapLoading.start();
+        libID = parseFloat(libID);
+        let projectID = projectObj.project.ID();
+        CommonAjax.post('/calcProgram/updateTemplateFile', {"projectID": projectID, "libID": libID}, function (data) {
+            projectObj.project.calcProgram.datas.templates = data;
             projectObj.project.calcProgram.compileAllTemps();
+            projectObj.project.calcProgram.calcAllNodesAndSave();
             calcProgramManage.buildSheet();
-            // $('#this').val(libID);
+            $.bootstrapLoading.end();
         });
     });
 });

+ 2 - 1
web/building_saas/pm/html/project-management.html

@@ -546,6 +546,7 @@
     let billValuation = '<%- billValuation %>';
     let rationValuation = '<%- rationValuation %>';
     let engineeringList = '<%- engineeringList %>';
-    let compilationData = JSON.parse('<%- compilationData %>');
+    let compilationData = '<%- compilationData %>';
+    compilationData = JSON.parse(compilationData.replace(/[\s\r\n]/g, ""));//去掉空格字符
 </script>
 </html>

+ 4 - 3
web/building_saas/pm/js/pm_newMain.js

@@ -24,6 +24,7 @@ let fileType = {
     feeRateFile: 'FeeRateFile'
 };
 
+
 const projTreeObj = {
     tree: null,
     workBook: null,
@@ -1064,7 +1065,7 @@ $(document).ready(function() {
             if (valuation === null) {
                 continue;
             }
-            html += `<option ${i === targetData.length -1 ? 'selected' : ''} value="${valuation._id}">${valuation.name}</option>`;
+            html += `<option ${i === targetData.length -1 ? 'selected' : ''} value="${valuation.id}">${valuation.name}</option>`;
         }
         $("#valuation").html(html);
         //$("#tender-engineering").html('<option value="">请选择对应的工程专业</option>');
@@ -1778,7 +1779,7 @@ function getEngineeringList(){
     let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
     let engineeringList = [];
     for(let tmp of valuationData) {
-        if (tmp._id === valuation) {
+        if (tmp.id === valuation) {
             engineeringList = tmp.engineering_list;
             break;
         }
@@ -2076,7 +2077,7 @@ function AddTender() {
         let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
         let engineeringList = [];
         for(let tmp of valuationData) {
-            if (tmp._id === valuation) {
+            if (tmp.id === valuation) {
                 engineeringList = tmp.engineering_list;
                 break;
             }