Browse Source

update glj and feerate

zhangweicheng 7 years ago
parent
commit
e432fb3518

+ 3 - 3
modules/fee_rates/controllers/fee_rates_controller.js

@@ -7,7 +7,7 @@ let mongoose = require('mongoose');
 let feeRateModel = mongoose.model('fee_rates');
 let feeRateModel = mongoose.model('fee_rates');
 let feeRateFileModel = mongoose.model('fee_rate_file');
 let feeRateFileModel = mongoose.model('fee_rate_file');
 let feeRateFacde=require('../facade/fee_rates_facade');
 let feeRateFacde=require('../facade/fee_rates_facade');
-
+let logger = require("../../../logs/log_helper").logger;
 let template = require('./feerate_template');
 let template = require('./feerate_template');
 /*
 /*
 var stdFeeRateLibs = require('../../std_fee_rate_libs/models/std_fee_rate_libs');
 var stdFeeRateLibs = require('../../std_fee_rate_libs/models/std_fee_rate_libs');
@@ -80,13 +80,13 @@ function libNames(req, res) {
 }
 }
 
 
 
 
-function getFeeRateStandards(req, res) {
+async function getFeeRateStandards(req, res) {
     let result={
     let result={
         error:0
         error:0
     }
     }
     try {
     try {
         let data = req.body.data;
         let data = req.body.data;
-        let feeRateStandards= feeRateFacde.getFeeRateStandardsByProjectID(data.rootProjectID);
+        let feeRateStandards= await feeRateFacde.getFeeRateStandardsByProjectID(data.rootProjectID);
         result.data= feeRateStandards;
         result.data= feeRateStandards;
     }catch (err){
     }catch (err){
         console.log(err);
         console.log(err);

+ 47 - 37
modules/fee_rates/facade/fee_rates_facade.js

@@ -8,11 +8,13 @@ let feeRateModel = mongoose.model('fee_rates');
 let feeRateFileModel = mongoose.model('fee_rate_file');
 let feeRateFileModel = mongoose.model('fee_rate_file');
 let std_fee_rate_lib_model = mongoose.model('std_fee_rate_libs');
 let std_fee_rate_lib_model = mongoose.model('std_fee_rate_libs');
 let project_feerate_temp = mongoose.model('project_feerate_temp');
 let project_feerate_temp = mongoose.model('project_feerate_temp');
+let projectsModel = require("../../pm/models/project_schema");
 let consts = require('../../main/models/project_consts');
 let consts = require('../../main/models/project_consts');
 let _=require("lodash");
 let _=require("lodash");
 let template = require('../controllers/feerate_template');
 let template = require('../controllers/feerate_template');
 let logger = require("../../../logs/log_helper").logger;
 let logger = require("../../../logs/log_helper").logger;
 const uuidV1 = require('uuid/v1');
 const uuidV1 = require('uuid/v1');
+let EngineeringLibModel = require("../../users/models/engineering_lib_model");
 
 
 module.exports={
 module.exports={
     save:save,
     save:save,
@@ -186,14 +188,18 @@ async function getFeeRateData(projectID) {
     }
     }
     try {
     try {
         //
         //
-        let tem = await project_feerate_temp.findOne({projectID:projectID});//暂时取tem表的记录
-        if (tem){
-            let feeRateData = await feeRateFileModel.findOne({'ID':tem.feeRateFileID,deleteInfo:null});
-            let feeRate = await feeRateModel.findOne({ID:feeRateData.feeRateID});
-            feeRateData._doc.rates = feeRate.rates;
-            //
-            feeRateData._doc.usageProjects=getUsageProjects(feeRateData.ID);
-            result.datas = feeRateData;
+        let project =  await projectsModel.findOne({ID:projectID});
+        if (project&&project.property&&project.property.feeFile){
+            let feeRateData = await feeRateFileModel.findOne({'ID':project.property.feeFile,deleteInfo:null});
+            if(feeRateData===null){
+                result.datas=[];
+            }else {
+                let feeRate =  await feeRateModel.findOne({ID:feeRateData.feeRateID});
+                feeRateData._doc.rates = feeRate?feeRate.rates:[];
+                //
+                feeRateData._doc.usageProjects=await getUsageProjects(feeRateData.ID);
+                result.datas = feeRateData;
+            }
         }else {
         }else {
             result.datas=[];
             result.datas=[];
         }
         }
@@ -206,12 +212,12 @@ async function getFeeRateData(projectID) {
     return result;
     return result;
 }
 }
 
 
-function getUsageProjects(feeRateID){
+async function getUsageProjects(feeRateID){
    //从数据库中查,项目结构暂时还没做 todo
    //从数据库中查,项目结构暂时还没做 todo
-    var projects = [];
-    projects.push({ID:99,name:'单价调整'});
+    let projects = await projectsModel.find({'property.feeFile':feeRateID,'deleteInfo':null});
+   /* projects.push({ID:99,name:'单价调整'});
     projects.push({ID:100,name:'工程02'});
     projects.push({ID:100,name:'工程02'});
-    projects.push({ID:101,name:'建筑工程'});
+    projects.push({ID:101,name:'建筑工程'});*/
     return projects;
     return projects;
 }
 }
 
 
@@ -224,10 +230,8 @@ function commonCallback(callback,result,err) {
     }
     }
 }
 }
 
 
-function getFeeRateStandardsByProjectID(rootProjectID) {
-    //这里应该从项目配置中读取 to do, 暂时使用模板文件里的数据
-    let t1 = template.feerate_template1;
-    let t2 = template.feerate_template2;
+async function getFeeRateStandardsByProjectID(rootProjectID) {
+    let project =  await projectsModel.findOne({ID:rootProjectID});
 
 
     let feeRateStandards=[];
     let feeRateStandards=[];
     feeRateStandards.push({ID:t1.ID,libName:t1.libName});
     feeRateStandards.push({ID:t1.ID,libName:t1.libName});
@@ -254,27 +258,33 @@ async function changeFeeRateStandard(jdata){
     return doc;
     return doc;
 }
 }
 
 
-async function newFeeRateFile(data){
-  /*  data = {
-   libID:2,
-   rootProjectID:113,
-   name:'费率1'
-    }*/
-    let template = await std_fee_rate_lib_model.findOne({"ID":data.libID});
-    let newFeeRate = {};
-    newFeeRate.ID =uuidV1();
-    newFeeRate.rates=template.rates;
-    await feeRateModel.create(newFeeRate);
-    let doc={
-        libID:data.libID,
-        libName:template.libName,
-        feeRateID: newFeeRate.ID,
-        rootProjectID:data.rootProjectID,
-        name:data.name
-    };
-    doc.ID = uuidV1();
-    await feeRateFileModel.create(doc);
-    return doc;
+async function newFeeRateFile(updateData){
+    if(updateData.property !== null){
+        let property = updateData.property;
+        logger.info("Create new feeRate file for project :"+updateData.ID);
+        let libID = property.feeFile;
+        let rootProjectID = property.rootProjectID;
+        let name = updateData.name;
+        let doc={
+            rootProjectID:rootProjectID,
+            name:name
+        };
+        if(libID!== ''){
+            let template = await std_fee_rate_lib_model.findOne({"ID":libID});
+            let newFeeRate = {};
+            newFeeRate.ID =uuidV1();
+            newFeeRate.rates=template.rates;
+            await feeRateModel.create(newFeeRate);
+            doc.libID = libID;
+            doc.libName = template.libName;
+            doc.feeRateID =  newFeeRate.ID;
+        }
+
+        doc.ID = uuidV1();
+        await feeRateFileModel.create(doc);
+        return doc.ID;
+    }
+    return null;
 }
 }
 
 
 
 

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

@@ -6,6 +6,8 @@ let counter = require("../../../public/counter/counter.js");
 
 
 let newProjController = require('../controllers/new_proj_controller');
 let newProjController = require('../controllers/new_proj_controller');
 let copyProjController = require('../controllers/copy_proj_controller');
 let copyProjController = require('../controllers/copy_proj_controller');
+let feeRateFacade = require('../../fee_rates/facade/fee_rates_facade');
+let logger = require("../../../logs/log_helper").logger;
 
 
 let Projects = require("./project_schema");
 let Projects = require("./project_schema");
 let projectType = {
 let projectType = {
@@ -70,7 +72,8 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
                     callback(1, '同级目录已存在相同名称数据.', null);
                     callback(1, '同级目录已存在相同名称数据.', null);
                     return;
                     return;
                 }
                 }
-
+                let  feeRateFileID = await feeRateFacade.newFeeRateFile(data.updateData);
+                newProject.property.feeFile = feeRateFileID?feeRateFileID:-1;
                 newProject.save(async function (err, result) {
                 newProject.save(async function (err, result) {
                     if (!err && result._doc.projType === projectType.tender) {
                     if (!err && result._doc.projType === projectType.tender) {
                         newProjController.copyTemplateData(data.updateData.property, newProject.ID, updateAll);
                         newProjController.copyTemplateData(data.updateData.property, newProject.ID, updateAll);

+ 4 - 2
modules/ration_glj/facade/ration_glj_facade.js

@@ -95,6 +95,7 @@ function get_lib_glj_info(ration_glj) {
                 ration_glj.basePrice = glj.basePrice;
                 ration_glj.basePrice = glj.basePrice;
                 ration_glj.shortName = glj.shortName;
                 ration_glj.shortName = glj.shortName;
                 ration_glj.type = glj.gljType;
                 ration_glj.type = glj.gljType;
+                ration_glj.repositoryId = glj.ration_glj
                 getInfoFromProjectGLJ(ration_glj).then(function (result) {
                 getInfoFromProjectGLJ(ration_glj).then(function (result) {
                     if(result){
                     if(result){
                         cb(null,result);
                         cb(null,result);
@@ -111,7 +112,7 @@ function get_lib_glj_info(ration_glj) {
 
 
 async function getInfoFromProjectGLJ(ration_glj) {
 async function getInfoFromProjectGLJ(ration_glj) {
      let data = {
      let data = {
-         glj_id: ration_glj.glj_repository_id,
+         glj_id: ration_glj.GLJID,
          project_id: ration_glj.projectID,
          project_id: ration_glj.projectID,
          code: ration_glj.code,
          code: ration_glj.code,
          name: ration_glj.name,
          name: ration_glj.name,
@@ -120,7 +121,8 @@ async function getInfoFromProjectGLJ(ration_glj) {
          type: ration_glj.type,
          type: ration_glj.type,
          type_of_work: ration_glj.type,
          type_of_work: ration_glj.type,
          base_price: ration_glj.basePrice,
          base_price: ration_glj.basePrice,
-         market_price: ration_glj.basePrice
+         market_price: ration_glj.basePrice,
+         repositoryId:ration_glj.repositoryId
      };
      };
 
 
      try {
      try {

+ 1 - 0
modules/ration_glj/models/ration_glj.js

@@ -7,6 +7,7 @@ var mongoose = require('mongoose'),
 var ration_glj = new Schema({
 var ration_glj = new Schema({
     ID:String,
     ID:String,
     GLJID:Number,
     GLJID:Number,
+    repositoryId:Number,
     projectID: Number,
     projectID: Number,
     rationID:Number,
     rationID:Number,
     projectGLJID:Number,
     projectGLJID:Number,

+ 10 - 14
web/building_saas/fee_rates/fee_rate.html

@@ -17,23 +17,19 @@
     </div>
     </div>
 </div>
 </div>
 <div class="container-fluid">
 <div class="container-fluid">
-    <div class="row">
-        <div class="col-lg-12 p-0">
-            <div class="row">
-                <div class="col-lg-6">
-                    <div class="form-inline py-1">
-                        <label class="mx-2" >基于&nbsp;&nbsp;<span id="feeRateLibName">重庆渝建发[2016]35号</span></label>
-                        <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#set-lv" id="setNewFeeRate"><i class="fa fa-cog"></i> 重选标准</a>
-                    </div>
-                    <div class=" grid  main-data-top" id="divFee"></div>
-                </div>
-                <div class="col-lg-4">
-                    <div class="py-1"><input type="checkbox" id="cascadeSet" checked >统一设置相同参数</div>
-                    <div class="grid  main-data-top py-1" id="subRate"></div>
+        <div class="row">
+            <div class="main-content col-lg-8 p-0">
+                <div class="form-inline py-1">
+                    <label class="mx-2" >基于&nbsp;&nbsp;<span id="feeRateLibName">重庆渝建发[2016]35号</span></label>
+                    <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#set-lv" id="setNewFeeRate"><i class="fa fa-cog"></i> 重选标准</a>
                 </div>
                 </div>
+                <div class=" grid  main-data-full-fl" id="divFee"></div>
+            </div>
+            <div class="col-lg-4 p-0">
+                <div class="py-1"><input type="checkbox" id="cascadeSet" checked >统一设置相同参数</div>
+                <div class="grid  py-1" id="subRate"></div>
             </div>
             </div>
         </div>
         </div>
-    </div>
 </div>
 </div>
 <!--弹出更换-->
 <!--弹出更换-->
 <div class="modal fade" id="change-lv" data-backdrop="static">
 <div class="modal fade" id="change-lv" data-backdrop="static">

+ 2 - 1
web/building_saas/main/js/models/ration_glj.js

@@ -310,7 +310,8 @@ var ration_glj = {
                 market_price:newVal,
                 market_price:newVal,
                 code:recode.code,
                 code:recode.code,
                 name:recode.name,
                 name:recode.name,
-                project_id:recode.projectID
+                project_id:recode.projectID,
+                repositoryId:recode.repositoryId
             };
             };
          /*   code: '01010101',
          /*   code: '01010101',
                 market_price: '40',
                 market_price: '40',

+ 3 - 0
web/building_saas/pm/js/pm_main.js

@@ -820,6 +820,9 @@ function AddFolder() {
 function GetUpdateData(parent, next, name, property, newId, type) {
 function GetUpdateData(parent, next, name, property, newId, type) {
     let data = [];
     let data = [];
     let updateData = {};
     let updateData = {};
+    let rootProject = parent ? parent.parent : Tree._root;
+    let rootProjectID = rootProject ? rootProject.id() : -1;
+    property.rootProjectID=rootProjectID;
     updateData['updateType'] = type.updateType === undefined ? 'new' : type.updateType;
     updateData['updateType'] = type.updateType === undefined ? 'new' : type.updateType;
     updateData['updateData'] = {};
     updateData['updateData'] = {};
     if (newId !== '') {
     if (newId !== '') {