chenshilong 4 anni fa
parent
commit
2bfd855bc7

+ 4 - 3
modules/all_models/projects.js

@@ -37,9 +37,10 @@ const ProjectSchema = new Schema({
         safetyFee: String,
         chargeFee: String
     },
-    "changeMark":String,//更新标记  feeRate:费率文件发生了改变,unitFile 单件文件发生了改变
-    "remark":String, //备注
-    "fileVer": String
+    "changeMark":String,// 更新标记  feeRate:费率文件发生了改变,unitFile 单件文件发生了改变
+    "remark":String, // 备注
+    "fileVer": String,  // 创建时程序版本号
+    "lastFileVer": String  // 最新打开并计算时的程序版本号
 });
 
 mongoose.model(collectionName, ProjectSchema, collectionName);

+ 4 - 3
modules/pm/facade/pm_facade.js

@@ -117,8 +117,7 @@ import {
     billsQuantityDecimal,
     displaySetting,
     calcOptions,
-    tenderSetting,
-    G_FILE_VER
+    tenderSetting
 } from '../models/project_property_template';
 let labourCoeFacade = require('../../main/facade/labour_coe_facade');
 let calcProgramFacade = require('../../main/facade/calc_program_facade');
@@ -126,6 +125,8 @@ let mainColLibModel = mongoose.model('std_main_col_lib');
 import EngineeringLibModel from "../../users/models/engineering_lib_model";
 let installationFacade = require('../../main/facade/installation_facade');
 let cipher = require('../../../public/cipher');
+let index = require("../../system_setting/model/index");
+
 let qiniu = require("qiniu");
 let fs = require("fs");
 let path = require("path");
@@ -2015,7 +2016,7 @@ async function importProject(importObj, userID, compilationID, overWriteUrl) {
     async function setupProject(data) {
         data.userID = userID;
         data.compilation = compilationID;
-        data.fileVer = G_FILE_VER;
+        data.fileVer = await index.getVersion();
         data.createDateTime = new Date();
         if (data.projType === 'Project') {
             await setupConstruct(data);

+ 4 - 6
modules/pm/models/project_model.js

@@ -28,8 +28,7 @@ import {
     projectFeature,
     displaySetting,
     calcOptions,
-    tenderSetting,
-    G_FILE_VER
+    tenderSetting
 } from './project_property_template';
 import optionSetting from '../../options/models/optionTypes';
 const { fixedFlag } = require('../../../public/common_constants');
@@ -48,6 +47,7 @@ let pmFacade = require('../facade/pm_facade');
 let logger = require("../../../logs/log_helper").logger;
 let BillsModel = require("../../main/models/bills").model;
 let _ = require('lodash');
+let index = require("../../system_setting/model/index");
 
 let Projects = mongoose.model('projects');
 let mainColLibModel = mongoose.model('std_main_col_lib');
@@ -57,8 +57,6 @@ let optionModel = mongoose.model('options');
 function ProjectsDAO() {
 }
 
-//let G_FILE_VER = '1.0.1';
-
 ProjectsDAO.prototype.getUserProjects = async function (userId, compilation, callback) {
     try {//
         let projects = await Projects.find({
@@ -135,7 +133,7 @@ ProjectsDAO.prototype.updateUserProjects = async function (userId, compilationId
                 data.updateData['userID'] = userId;
                 data.updateData['compilation'] = compilationId;
                 data.updateData['createDateTime'] = new Date();
-                data.updateData['fileVer'] = G_FILE_VER;
+                data.updateData['fileVer'] = await index.getVersion();
                 /*if(data.updateData.projType === projectType.project){
                     //设置建设项目基本信息,多个单位工程共用
                     data.updateData.property = {basicInformation: basicInformation};
@@ -379,7 +377,7 @@ ProjectsDAO.prototype.copyUserProjects = function (userId, compilationId, datas,
                 data.updateData['userID'] = userId;
                 data.updateData['compilation'] = compilationId;
                 data.updateData['createDateTime'] = new Date();
-                data.updateData['fileVer'] = G_FILE_VER;
+                data.updateData['fileVer'] = index.getVersion();
                 let newProject = new Projects(data.updateData);
                 newProject['srcProjectId'] = data.srcProjectId;
                 newProject.save(function (err, result) {

+ 1 - 3
modules/pm/models/project_property_template.js

@@ -138,6 +138,4 @@ const projectFeature = [
     {dispName: '门窗材料及装饰', key: 'doorsWindowsMaterial', value: ''}
 ];
 
-let G_FILE_VER = '1.0.1';
-
-export {defaultDecimal, billsQuantityDecimal, basicInformation, projectFeature,displaySetting,calcOptions,tenderSetting, G_FILE_VER};
+export {defaultDecimal, billsQuantityDecimal, basicInformation, projectFeature,displaySetting,calcOptions,tenderSetting};

+ 11 - 1
web/building_saas/main/js/models/calc_program.js

@@ -2005,6 +2005,16 @@ class CalcProgram {
             $.bootstrapLoading.end();
             return;
         };
+
+        if (projectObj.project.projectInfo.lastFileVer != VERSION){
+            let data = {
+                ID: projectObj.project.ID(),
+                lastFileVer: VERSION
+            };
+            let newData = {'type': 'project', 'data': data};
+            dataArr.push(newData);
+        };
+
         $.bootstrapLoading.start();
         let startTime = +new Date();
         me.project.updateNodes(dataArr, function (data) {
@@ -2016,7 +2026,7 @@ class CalcProgram {
 
             for (let node of treeNodes) { delete node.changed };
             projectObj.mainController.refreshTreeNode(treeNodes,false,false);
-
+            projectObj.project.projectInfo.lastFileVer = VERSION;
             // 批量树结点计算后,计算程序早已物是人非,所以这里要重新计算一下。警告:第二个参数千万不能改成3,否则死循环!
             if (activeSubSheetIsCalcProgram())
                 calcProgramObj.refreshCalcProgram(projectObj.project.mainTree.selected, 2);

+ 3 - 1
web/building_saas/main/js/views/project_view.js

@@ -1036,8 +1036,10 @@ var projectObj = {
                 // if (node.data.feesIndex && node.data.feesIndex.common && node.data.feesIndex.common.totalFee
                 //     && node.data.feesIndex.common.totalFee != 0){
                 //     if (node.data.feesIndex.common.tenderTotalFee == undefined || node.data.feesIndex.common.tenderTotalFee == 0)
-                        projectObj.project.calcProgram.doTenderCalc();
                 // };
+                if (projectObj.project.projectInfo.lastFileVer != VERSION)
+                    projectObj.project.calcProgram.doTenderCalc();
+
                 $.bootstrapLoading.end();
             }
             else {