|  | @@ -35,15 +35,16 @@ const rationLibModel = mongoose.model('std_ration_lib_map');
 | 
	
		
			
				|  |  |  const multiparty = require("multiparty");
 | 
	
		
			
				|  |  |  let logger = require("../../../logs/log_helper").logger;
 | 
	
		
			
				|  |  |  let rp = require('request-promise');
 | 
	
		
			
				|  |  | +const commonUtil = require('../../../public/common_util');
 | 
	
		
			
				|  |  |  //统一回调函数
 | 
	
		
			
				|  |  | -let callback = function(req, res, err, message, data){
 | 
	
		
			
				|  |  | -    res.json({error: err, message: message, data: data});
 | 
	
		
			
				|  |  | +let callback = function (req, res, err, message, data) {
 | 
	
		
			
				|  |  | +    res.json({ error: err, message: message, data: data });
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  module.exports = {
 | 
	
		
			
				|  |  |      checkRight: function (req, res) {
 | 
	
		
			
				|  |  | -        if(typeof req.body.data === 'object'){
 | 
	
		
			
				|  |  | +        if (typeof req.body.data === 'object') {
 | 
	
		
			
				|  |  |              req.body.data = JSON.stringify(req.body.data);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
	
		
			
				|  | @@ -61,7 +62,7 @@ module.exports = {
 | 
	
		
			
				|  |  |               */
 | 
	
		
			
				|  |  |              let shareInfo = null;
 | 
	
		
			
				|  |  |              //判断是否是打开分享的项目,分享项目shareInfo不为null
 | 
	
		
			
				|  |  | -            if(userId !== result.userID){
 | 
	
		
			
				|  |  | +            if (userId !== result.userID) {
 | 
	
		
			
				|  |  |                  shareInfo = await pm_facade.getShareInfo(userId, result.ID);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if ((userId === result.userID || shareInfo) && result._doc.projType === projType.tender) {
 | 
	
	
		
			
				|  | @@ -74,8 +75,8 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(false);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getProjects: async function(req, res){
 | 
	
		
			
				|  |  | -        await ProjectsData.getUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, function(err, message, projects){
 | 
	
		
			
				|  |  | +    getProjects: async function (req, res) {
 | 
	
		
			
				|  |  | +        await ProjectsData.getUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, function (err, message, projects) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  |              if (projects) {
 | 
	
		
			
				|  |  |                  callback(req, res, err, message, projects);
 | 
	
	
		
			
				|  | @@ -86,7 +87,7 @@ module.exports = {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      updateProjects: async function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -        await ProjectsData.updateUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, req.session.sessionCompilation.name,req.session.sessionCompilation.overWriteUrl, data.updateData, function (err, message, data) {
 | 
	
		
			
				|  |  | +        await ProjectsData.updateUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, req.session.sessionCompilation.name, req.session.sessionCompilation.overWriteUrl, data.updateData, function (err, message, data) {
 | 
	
		
			
				|  |  |              if (err === 0) {
 | 
	
		
			
				|  |  |                  callback(req, res, err, message, data);
 | 
	
		
			
				|  |  |              } else {
 | 
	
	
		
			
				|  | @@ -95,7 +96,7 @@ module.exports = {
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // CSL, 2017-12-14 该方法用于项目属性:提交保存混合型数据,这些数据来自不同的表,包括projects.property、ration、bills、labour_coes.
 | 
	
		
			
				|  |  | -    updateMixDatas: async function(req, res){
 | 
	
		
			
				|  |  | +    updateMixDatas: async function (req, res) {
 | 
	
		
			
				|  |  |          let datas = JSON.parse(req.body.data).mixDataArr;
 | 
	
		
			
				|  |  |          let functions = [];
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -105,7 +106,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        function updateLC(){
 | 
	
		
			
				|  |  | +        function updateLC() {
 | 
	
		
			
				|  |  |              return function (cb) {
 | 
	
		
			
				|  |  |                  datas.labourCoes.updateData.projectID = datas.projectID;
 | 
	
		
			
				|  |  |                  labourCoe.save(datas.labourCoes.updateData, cb);
 | 
	
	
		
			
				|  | @@ -113,12 +114,12 @@ module.exports = {
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 项目属性
 | 
	
		
			
				|  |  | -        if (Object.keys(datas.properties).length > 0){
 | 
	
		
			
				|  |  | +        if (Object.keys(datas.properties).length > 0) {
 | 
	
		
			
				|  |  |              //基本信息特殊处理,更新建设项目
 | 
	
		
			
				|  |  | -            if(datas.properties['property.basicInformation']){
 | 
	
		
			
				|  |  | +            if (datas.properties['property.basicInformation']) {
 | 
	
		
			
				|  |  |                  let constructionProject = await pm_facade.getConstructionProject(datas.projectID);
 | 
	
		
			
				|  |  | -                if(constructionProject){
 | 
	
		
			
				|  |  | -                    functions.push(updateFunc(projectModel, {ID: constructionProject.ID}, {'property.basicInformation': datas.properties['property.basicInformation']}));
 | 
	
		
			
				|  |  | +                if (constructionProject) {
 | 
	
		
			
				|  |  | +                    functions.push(updateFunc(projectModel, { ID: constructionProject.ID }, { 'property.basicInformation': datas.properties['property.basicInformation'] }));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  delete datas.properties['property.basicInformation'];
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -126,79 +127,79 @@ module.exports = {
 | 
	
		
			
				|  |  |              if (datas.properties['property.compilationIllustrationProject']) {
 | 
	
		
			
				|  |  |                  let constructionProject = await pm_facade.getConstructionProject(datas.projectID);
 | 
	
		
			
				|  |  |                  if (constructionProject) {
 | 
	
		
			
				|  |  | -                    functions.push(updateFunc(projectModel, {ID: constructionProject.ID}, {'property.compilationIllustration': datas.properties['property.compilationIllustrationProject']}));
 | 
	
		
			
				|  |  | +                    functions.push(updateFunc(projectModel, { ID: constructionProject.ID }, { 'property.compilationIllustration': datas.properties['property.compilationIllustrationProject'] }));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  delete datas.properties['property.compilationIllustrationProject'];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            functions.push(updateFunc(projectModel, {ID: datas.projectID}, datas.properties));
 | 
	
		
			
				|  |  | +            functions.push(updateFunc(projectModel, { ID: datas.projectID }, datas.properties));
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //选项
 | 
	
		
			
				|  |  | -        if(datas.options && datas.options.updateData){
 | 
	
		
			
				|  |  | -            functions.push(updateFunc(optionModel, {user_id: req.session.sessionUser.id, compilation_id: req.session.sessionCompilation._id}, {'options.GENERALOPTS': datas.options.updateData}));
 | 
	
		
			
				|  |  | +        if (datas.options && datas.options.updateData) {
 | 
	
		
			
				|  |  | +            functions.push(updateFunc(optionModel, { user_id: req.session.sessionUser.id, compilation_id: req.session.sessionCompilation._id }, { 'options.GENERALOPTS': datas.options.updateData }));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 人工系数
 | 
	
		
			
				|  |  | -        if (datas.labourCoes&&datas.labourCoes.updateData){
 | 
	
		
			
				|  |  | +        if (datas.labourCoes && datas.labourCoes.updateData) {
 | 
	
		
			
				|  |  |              functions.push(updateLC());
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 清单:每文档doc只存储一条清单,每条清单都必须定位一次文档,无法合并处理
 | 
	
		
			
				|  |  | -        if (datas.bills && datas.bills.length > 0){
 | 
	
		
			
				|  |  | -            for (let bill of datas.bills){
 | 
	
		
			
				|  |  | -                functions.push(updateFunc(billsModel, {projectID: datas.projectID, ID: bill.ID, deleteInfo: null}, bill));
 | 
	
		
			
				|  |  | +        if (datas.bills && datas.bills.length > 0) {
 | 
	
		
			
				|  |  | +            for (let bill of datas.bills) {
 | 
	
		
			
				|  |  | +                functions.push(updateFunc(billsModel, { projectID: datas.projectID, ID: bill.ID, deleteInfo: null }, bill));
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 定额:每文档doc只存储一条定额,每条定额都必须定位一次文档,无法合并处理
 | 
	
		
			
				|  |  | -        if (datas.rations&& datas.rations.length > 0){
 | 
	
		
			
				|  |  | -            for (let ration of datas.rations){
 | 
	
		
			
				|  |  | -                functions.push(updateFunc(rationsModel, {projectID: datas.projectID, ID: ration.ID, deleteInfo: null}, ration));
 | 
	
		
			
				|  |  | +        if (datas.rations && datas.rations.length > 0) {
 | 
	
		
			
				|  |  | +            for (let ration of datas.rations) {
 | 
	
		
			
				|  |  | +                functions.push(updateFunc(rationsModel, { projectID: datas.projectID, ID: ration.ID, deleteInfo: null }, ration));
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        asyncTool.parallel(functions, function(err, result){
 | 
	
		
			
				|  |  | +        asyncTool.parallel(functions, function (err, result) {
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  if (!err) {
 | 
	
		
			
				|  |  | -                    res.json({error: 0, message: err, data: result});
 | 
	
		
			
				|  |  | +                    res.json({ error: 0, message: err, data: result });
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  | -                    res.json({error: 1, message: err, data: null});
 | 
	
		
			
				|  |  | +                    res.json({ error: 1, message: err, data: null });
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    updateFiles: async function(req, res){
 | 
	
		
			
				|  |  | +    updateFiles: async function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |          let updateDatas = data.updateDatas;
 | 
	
		
			
				|  |  |          await ProjectsData.udpateUserFiles(req.session.sessionUser.id, updateDatas, function (err, message, data) {
 | 
	
		
			
				|  |  |              callback(req, res, err, message, data);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    defaultSettings: async function(req, res){
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +    defaultSettings: async function (req, res) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              let projectID = data.projectID;
 | 
	
		
			
				|  |  |              let defaultSettingSc = await ProjectsData.defaultSettings(req.session.sessionUser.id, req.session.sessionCompilation._id, projectID);
 | 
	
		
			
				|  |  | -            if(!defaultSettingSc){
 | 
	
		
			
				|  |  | +            if (!defaultSettingSc) {
 | 
	
		
			
				|  |  |                  throw '恢复失败';
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            res.json({error: 0, message: '恢复成功', data: null});
 | 
	
		
			
				|  |  | +            res.json({ error: 0, message: '恢复成功', data: null });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch(error){
 | 
	
		
			
				|  |  | +        catch (error) {
 | 
	
		
			
				|  |  |              console.log(error);
 | 
	
		
			
				|  |  | -            res.json({error: 1, message: error, data: null});
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | - /*   copyProjects: function (req, res) {
 | 
	
		
			
				|  |  | -        let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -        ProjectsData.copyUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, data.updateData, function (err, message, data) {
 | 
	
		
			
				|  |  | -            if (err === 0) {
 | 
	
		
			
				|  |  | -                callback(req, res, err, message, data);
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                callback(req, res, err, message, null);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    },*/
 | 
	
		
			
				|  |  | +            res.json({ error: 1, message: error, data: null });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /*   copyProjects: function (req, res) {
 | 
	
		
			
				|  |  | +           let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | +           ProjectsData.copyUserProjects(req.session.sessionUser.id, req.session.sessionCompilation._id, data.updateData, function (err, message, data) {
 | 
	
		
			
				|  |  | +               if (err === 0) {
 | 
	
		
			
				|  |  | +                   callback(req, res, err, message, data);
 | 
	
		
			
				|  |  | +               } else {
 | 
	
		
			
				|  |  | +                   callback(req, res, err, message, null);
 | 
	
		
			
				|  |  | +               }
 | 
	
		
			
				|  |  | +           });
 | 
	
		
			
				|  |  | +       },*/
 | 
	
		
			
				|  |  |      rename: function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |          ProjectsData.rename(req.session.sessionUser.id, req.session.sessionCompilation._id, data, function (err, message) {
 | 
	
	
		
			
				|  | @@ -206,8 +207,8 @@ module.exports = {
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //project getData接口
 | 
	
		
			
				|  |  | -    getData: function(projectID, callback) {
 | 
	
		
			
				|  |  | -        projectModel.findOne({$or: [{deleteInfo: null}, {'deleteInfo.deleted': false}], ID: projectID}, '-_id').then(async function (project) {
 | 
	
		
			
				|  |  | +    getData: function (projectID, callback) {
 | 
	
		
			
				|  |  | +        projectModel.findOne({ $or: [{ deleteInfo: null }, { 'deleteInfo.deleted': false }], ID: projectID }, '-_id').then(async function (project) {
 | 
	
		
			
				|  |  |              if (!project) {
 | 
	
		
			
				|  |  |                  callback('', consts.projectConst.PROJECT_INFO, {});
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -217,7 +218,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              //查找定额库的定额库编码
 | 
	
		
			
				|  |  |              if (Array.isArray(engineeringInfo.ration_lib)) {
 | 
	
		
			
				|  |  |                  let rationLibIDs = engineeringInfo.ration_lib.map(data => data.id);
 | 
	
		
			
				|  |  | -                let rationLibs = await rationLibModel.find({ID: {$in: rationLibIDs}}, 'ID libCode');
 | 
	
		
			
				|  |  | +                let rationLibs = await rationLibModel.find({ ID: { $in: rationLibIDs } }, 'ID libCode');
 | 
	
		
			
				|  |  |                  for (let rationLib of rationLibs) {
 | 
	
		
			
				|  |  |                      let lib = engineeringInfo.ration_lib.find(data => data.id == rationLib.ID);
 | 
	
		
			
				|  |  |                      lib.libCode = rationLib.libCode;
 | 
	
	
		
			
				|  | @@ -225,10 +226,10 @@ module.exports = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              let projInfo = project._doc;
 | 
	
		
			
				|  |  |              if (engineeringInfo !== null) {
 | 
	
		
			
				|  |  | -                if(engineeringInfo.billsGuidance_lib){
 | 
	
		
			
				|  |  | -                    for(let billsGuidanceLib of engineeringInfo.billsGuidance_lib){
 | 
	
		
			
				|  |  | -                        let stdBillsGuidanceLib = await stdBillsGuidanceLibModel.findOne({ID: billsGuidanceLib.id});
 | 
	
		
			
				|  |  | -                        if(stdBillsGuidanceLib){
 | 
	
		
			
				|  |  | +                if (engineeringInfo.billsGuidance_lib) {
 | 
	
		
			
				|  |  | +                    for (let billsGuidanceLib of engineeringInfo.billsGuidance_lib) {
 | 
	
		
			
				|  |  | +                        let stdBillsGuidanceLib = await stdBillsGuidanceLibModel.findOne({ ID: billsGuidanceLib.id });
 | 
	
		
			
				|  |  | +                        if (stdBillsGuidanceLib) {
 | 
	
		
			
				|  |  |                              billsGuidanceLib.type = stdBillsGuidanceLib.type ? stdBillsGuidanceLib.type : 1;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -251,10 +252,10 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(err, consts.projectConst.PROJECT_INFO, {});
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getProject: function(req, res){
 | 
	
		
			
				|  |  | +    getProject: function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |          let projectID = data.proj_id;
 | 
	
		
			
				|  |  | -        ProjectsData.getUserProject(req.session.sessionUser.id, data.proj_id, async function(err, message, data){
 | 
	
		
			
				|  |  | +        ProjectsData.getUserProject(req.session.sessionUser.id, data.proj_id, async function (err, message, data) {
 | 
	
		
			
				|  |  |              if (err === 0) {
 | 
	
		
			
				|  |  |                  let engineeringLibModel = new EngineeringLibModel();
 | 
	
		
			
				|  |  |                  let engineeringInfo = data !== null && data.property.engineering_id !== undefined ?
 | 
	
	
		
			
				|  | @@ -262,10 +263,10 @@ module.exports = {
 | 
	
		
			
				|  |  |                  let strData = JSON.stringify(data);
 | 
	
		
			
				|  |  |                  let projInfo = JSON.parse(strData);
 | 
	
		
			
				|  |  |                  if (engineeringInfo !== null) {
 | 
	
		
			
				|  |  | -                    if(engineeringInfo.billsGuidance_lib){
 | 
	
		
			
				|  |  | -                        for(let billsGuidanceLib of engineeringInfo.billsGuidance_lib){
 | 
	
		
			
				|  |  | -                            let stdBillsGuidanceLib = await stdBillsGuidanceLibModel.findOne({ID: billsGuidanceLib.id});
 | 
	
		
			
				|  |  | -                            if(stdBillsGuidanceLib){
 | 
	
		
			
				|  |  | +                    if (engineeringInfo.billsGuidance_lib) {
 | 
	
		
			
				|  |  | +                        for (let billsGuidanceLib of engineeringInfo.billsGuidance_lib) {
 | 
	
		
			
				|  |  | +                            let stdBillsGuidanceLib = await stdBillsGuidanceLibModel.findOne({ ID: billsGuidanceLib.id });
 | 
	
		
			
				|  |  | +                            if (stdBillsGuidanceLib) {
 | 
	
		
			
				|  |  |                                  billsGuidanceLib.type = stdBillsGuidanceLib.type ? stdBillsGuidanceLib.type : 1;
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          }
 | 
	
	
		
			
				|  | @@ -302,12 +303,12 @@ module.exports = {
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 项目管理首页
 | 
	
		
			
				|  |  | -    index: async function(request, response) {
 | 
	
		
			
				|  |  | +    index: async function (request, response) {
 | 
	
		
			
				|  |  |          // TODO 上线后删除,处理旧的分享数据
 | 
	
		
			
				|  |  |          await pm_facade.prepareShareList();
 | 
	
		
			
				|  |  |          // 获取编办信息
 | 
	
		
			
				|  |  |          let sessionCompilation = request.session.sessionCompilation;
 | 
	
		
			
				|  |  | -        if (sessionCompilation === undefined ||sessionCompilation ===null) {
 | 
	
		
			
				|  |  | +        if (sessionCompilation === undefined || sessionCompilation === null) {
 | 
	
		
			
				|  |  |              return response.redirect('/logout');
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          let compilationModel = new CompilationModel();
 | 
	
	
		
			
				|  | @@ -330,13 +331,13 @@ module.exports = {
 | 
	
		
			
				|  |  |              sessionCompilation.ration_valuation : [];
 | 
	
		
			
				|  |  |          rationValuation = await engineeringLibModel.getLib(rationValuation);
 | 
	
		
			
				|  |  |          let absoluteUrl = compilationData.overWriteUrl ? request.app.locals.rootDir + compilationData.overWriteUrl : request.app.locals.rootDir;
 | 
	
		
			
				|  |  | -        let overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilationData.overWriteUrl : null;
 | 
	
		
			
				|  |  | +        let overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile() ? compilationData.overWriteUrl : null;
 | 
	
		
			
				|  |  |          //欢迎页显示控制
 | 
	
		
			
				|  |  | -        let [isShow,context] = await pm_facade.getWelcomeInfo(sessionCompilation._id,request.session.sessionUser,request.session.compilationVersion.includes('免费'));
 | 
	
		
			
				|  |  | +        let [isShow, context] = await pm_facade.getWelcomeInfo(sessionCompilation._id, request.session.sessionUser, request.session.compilationVersion.includes('免费'));
 | 
	
		
			
				|  |  |          let renderData = {
 | 
	
		
			
				|  |  |              isFirst: isFirst,
 | 
	
		
			
				|  |  | -            isShow:isShow,
 | 
	
		
			
				|  |  | -            context:context,
 | 
	
		
			
				|  |  | +            isShow: isShow,
 | 
	
		
			
				|  |  | +            context: context,
 | 
	
		
			
				|  |  |              userAccount: request.session.userAccount,
 | 
	
		
			
				|  |  |              userID: request.session.sessionUser.id,
 | 
	
		
			
				|  |  |              compilationData: JSON.stringify(sessionCompilation),
 | 
	
	
		
			
				|  | @@ -346,13 +347,13 @@ module.exports = {
 | 
	
		
			
				|  |  |              engineeringList: JSON.stringify(engineering.List),
 | 
	
		
			
				|  |  |              compilationName: sessionCompilation.name,
 | 
	
		
			
				|  |  |              versionName: request.session.compilationVersion,
 | 
	
		
			
				|  |  | -            LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
 | 
	
		
			
				|  |  | +            LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          response.render('building_saas/pm/html/project-management.html', renderData);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      //第一次进入该费用定额时准备的初始数据
 | 
	
		
			
				|  |  | -    prepareInitialData: async function(request, response) {
 | 
	
		
			
				|  |  | +    prepareInitialData: async function (request, response) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              const data = {
 | 
	
		
			
				|  |  |                  userID: request.session.sessionUser.id,
 | 
	
	
		
			
				|  | @@ -361,19 +362,19 @@ module.exports = {
 | 
	
		
			
				|  |  |              };
 | 
	
		
			
				|  |  |              await redirectToImportServer(data, 'prepareInitialData', request);
 | 
	
		
			
				|  |  |              callback(request, response, 0, 'success', null);
 | 
	
		
			
				|  |  | -        } catch(err) {
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  |              callback(request, response, 1, err.toString(), null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 获取单价文件列表
 | 
	
		
			
				|  |  | -    getUnitFileList: async function(request, response) {
 | 
	
		
			
				|  |  | +    getUnitFileList: async function (request, response) {
 | 
	
		
			
				|  |  |          let data = request.body.data;
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              data = JSON.parse(data);
 | 
	
		
			
				|  |  |              let projectId = data.parentID !== undefined ? data.parentID : 0;
 | 
	
		
			
				|  |  |              if (isNaN(projectId) && projectId <= 0) {
 | 
	
		
			
				|  |  | -                throw {msg: 'id数据有误!', err: 1};
 | 
	
		
			
				|  |  | +                throw { msg: 'id数据有误!', err: 1 };
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              /*// 获取对应建设项目下所有的单位工程id
 | 
	
		
			
				|  |  |              let idList = await ProjectsData.getTenderByProjectId(projectId);
 | 
	
	
		
			
				|  | @@ -385,7 +386,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              let unitPriceFileData = await unitPriceFileModel.getDataByRootProject(projectId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (unitPriceFileData === null) {
 | 
	
		
			
				|  |  | -                throw {msg: '不存在对应单价文件', err: 0};
 | 
	
		
			
				|  |  | +                throw { msg: '不存在对应单价文件', err: 0 };
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 整理数据
 | 
	
	
		
			
				|  | @@ -405,17 +406,17 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(request, response, error.err, error.msg, responseData);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getFeeRateFileList:async function(request, response) {
 | 
	
		
			
				|  |  | +    getFeeRateFileList: async function (request, response) {
 | 
	
		
			
				|  |  |          let data = request.body.data;
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              data = JSON.parse(data);
 | 
	
		
			
				|  |  |              let projectId = data.parentID !== undefined ? data.parentID : 0;
 | 
	
		
			
				|  |  |              if (isNaN(projectId) && projectId <= 0) {
 | 
	
		
			
				|  |  | -                throw {msg: 'id数据有误!', err: 1};
 | 
	
		
			
				|  |  | +                throw { msg: 'id数据有误!', err: 1 };
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              // 获取对应建设项目下所有的单位工程id
 | 
	
		
			
				|  |  |              let feeRateFileList = await fee_rate_facade.getFeeRatesByProject(projectId);
 | 
	
		
			
				|  |  | -            callback(request, response, 0, '',feeRateFileList );
 | 
	
		
			
				|  |  | +            callback(request, response, 0, '', feeRateFileList);
 | 
	
		
			
				|  |  |          } catch (error) {
 | 
	
		
			
				|  |  |              console.log(error);
 | 
	
		
			
				|  |  |              let responseData = error.err === 1 ? null : [];
 | 
	
	
		
			
				|  | @@ -423,95 +424,95 @@ module.exports = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    getGCDatas: async function(request, response) {
 | 
	
		
			
				|  |  | +    getGCDatas: async function (request, response) {
 | 
	
		
			
				|  |  |          let userID = request.session.sessionUser.id;
 | 
	
		
			
				|  |  |          let compilatoinId = request.session.sessionCompilation._id;
 | 
	
		
			
				|  |  |          let rst = [];
 | 
	
		
			
				|  |  |          let _projs = Object.create(null), _engs = Object.create(null), prefix = 'ID_';
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let gc_unitPriceFiles = await ProjectsData.getGCFiles(fileType.unitPriceFile, userID);
 | 
	
		
			
				|  |  |              let gc_feeRateFiles = await ProjectsData.getGCFiles(fileType.feeRateFile, userID);
 | 
	
		
			
				|  |  |              let gc_tenderFiles = await ProjectsData.getGCFiles(projType.tender, userID);
 | 
	
		
			
				|  |  | -            for(let i = 0, len = gc_unitPriceFiles.length; i < len; i++){
 | 
	
		
			
				|  |  | +            for (let i = 0, len = gc_unitPriceFiles.length; i < len; i++) {
 | 
	
		
			
				|  |  |                  let gc_uf = gc_unitPriceFiles[i];
 | 
	
		
			
				|  |  |                  let theProj = _projs[prefix + gc_uf.root_project_id] || null;
 | 
	
		
			
				|  |  | -                if(!theProj){
 | 
	
		
			
				|  |  | +                if (!theProj) {
 | 
	
		
			
				|  |  |                      let tempProj = await ProjectsData.getProjectsByIds(userID, compilatoinId, [gc_uf.root_project_id]);
 | 
	
		
			
				|  |  | -                    if(tempProj.length > 0 && tempProj[0].projType !== projType.folder){
 | 
	
		
			
				|  |  | +                    if (tempProj.length > 0 && tempProj[0].projType !== projType.folder) {
 | 
	
		
			
				|  |  |                          theProj = _projs[prefix + gc_uf.root_project_id] = tempProj[0]._doc;
 | 
	
		
			
				|  |  |                          buildProj(theProj);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if(theProj){
 | 
	
		
			
				|  |  | +                if (theProj) {
 | 
	
		
			
				|  |  |                      theProj.unitPriceFiles.push(gc_uf);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            for(let i = 0, len = gc_feeRateFiles.length; i < len; i++){
 | 
	
		
			
				|  |  | +            for (let i = 0, len = gc_feeRateFiles.length; i < len; i++) {
 | 
	
		
			
				|  |  |                  let gc_ff = gc_feeRateFiles[i];
 | 
	
		
			
				|  |  |                  let theProj = _projs[prefix + gc_ff.rootProjectID] || null;
 | 
	
		
			
				|  |  | -                if(!theProj){
 | 
	
		
			
				|  |  | +                if (!theProj) {
 | 
	
		
			
				|  |  |                      let tempProj = await ProjectsData.getProjectsByIds(userID, compilatoinId, [gc_ff.rootProjectID]);
 | 
	
		
			
				|  |  | -                    if(tempProj.length > 0 && tempProj[0].projType !== projType.folder){
 | 
	
		
			
				|  |  | +                    if (tempProj.length > 0 && tempProj[0].projType !== projType.folder) {
 | 
	
		
			
				|  |  |                          theProj = _projs[prefix + gc_ff.rootProjectID] = tempProj[0]._doc;
 | 
	
		
			
				|  |  |                          buildProj(theProj);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if(theProj) {
 | 
	
		
			
				|  |  | +                if (theProj) {
 | 
	
		
			
				|  |  |                      theProj.feeRateFiles.push(gc_ff);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(gc_tenderFiles.length > 0){
 | 
	
		
			
				|  |  | -                for(let i = 0, len = gc_tenderFiles.length; i < len; i++){
 | 
	
		
			
				|  |  | +            if (gc_tenderFiles.length > 0) {
 | 
	
		
			
				|  |  | +                for (let i = 0, len = gc_tenderFiles.length; i < len; i++) {
 | 
	
		
			
				|  |  |                      let gc_t = gc_tenderFiles[i];
 | 
	
		
			
				|  |  |                      let theEng = _engs[prefix + gc_t.ParentID] || null;
 | 
	
		
			
				|  |  | -                    if(!theEng){
 | 
	
		
			
				|  |  | +                    if (!theEng) {
 | 
	
		
			
				|  |  |                          let tempEngs = await ProjectsData.getProjectsByIds(userID, compilatoinId, [gc_t.ParentID]);
 | 
	
		
			
				|  |  | -                        if(tempEngs.length > 0 && tempEngs[0].projType === projType.engineering){
 | 
	
		
			
				|  |  | +                        if (tempEngs.length > 0 && tempEngs[0].projType === projType.engineering) {
 | 
	
		
			
				|  |  |                              theEng = _engs[prefix + gc_t.ParentID] = tempEngs[0]._doc;
 | 
	
		
			
				|  |  |                              theEng.children = [];
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    if(theEng) {
 | 
	
		
			
				|  |  | +                    if (theEng) {
 | 
	
		
			
				|  |  |                          theEng.children.push(gc_t);
 | 
	
		
			
				|  |  |                          let theProj = _projs[prefix + theEng.ParentID] || null;
 | 
	
		
			
				|  |  | -                        if(!theProj){
 | 
	
		
			
				|  |  | +                        if (!theProj) {
 | 
	
		
			
				|  |  |                              let tempProj = await ProjectsData.getProjectsByIds(userID, compilatoinId, [theEng.ParentID]);
 | 
	
		
			
				|  |  | -                            if(tempProj.length > 0 && tempProj[0].projType === projType.project){
 | 
	
		
			
				|  |  | +                            if (tempProj.length > 0 && tempProj[0].projType === projType.project) {
 | 
	
		
			
				|  |  |                                  theProj = _projs[prefix + theEng.ParentID] = tempProj[0]._doc;
 | 
	
		
			
				|  |  |                                  buildProj(theProj);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  | -                        if(theProj) {
 | 
	
		
			
				|  |  | +                        if (theProj) {
 | 
	
		
			
				|  |  |                              let isExist = false;
 | 
	
		
			
				|  |  | -                            for(let j = 0, jLen = theProj.children.length; j < jLen; j++){
 | 
	
		
			
				|  |  | -                                if(theProj.children[j].ID === theEng.ID){
 | 
	
		
			
				|  |  | +                            for (let j = 0, jLen = theProj.children.length; j < jLen; j++) {
 | 
	
		
			
				|  |  | +                                if (theProj.children[j].ID === theEng.ID) {
 | 
	
		
			
				|  |  |                                      isExist = true;
 | 
	
		
			
				|  |  |                                      break;
 | 
	
		
			
				|  |  |                                  }
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  | -                            if(!isExist){
 | 
	
		
			
				|  |  | +                            if (!isExist) {
 | 
	
		
			
				|  |  |                                  theProj.children.push(theEng);
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            for(let i in _projs){
 | 
	
		
			
				|  |  | +            for (let i in _projs) {
 | 
	
		
			
				|  |  |                  rst.push(_projs[i]);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            function buildProj(proj){
 | 
	
		
			
				|  |  | +            function buildProj(proj) {
 | 
	
		
			
				|  |  |                  proj.children = [];
 | 
	
		
			
				|  |  |                  proj.unitPriceFiles = [];
 | 
	
		
			
				|  |  |                  proj.feeRateFiles = [];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              callback(request, response, 0, 'success', rst);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (error){
 | 
	
		
			
				|  |  | +        catch (error) {
 | 
	
		
			
				|  |  |              callback(request, response, true, error, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    recGC: function(request, response){
 | 
	
		
			
				|  |  | +    recGC: function (request, response) {
 | 
	
		
			
				|  |  |          let userID = request.session.sessionUser.id,
 | 
	
		
			
				|  |  |              compilationId = request.session.sessionCompilation._id;
 | 
	
		
			
				|  |  |          let data = JSON.parse(request.body.data);
 | 
	
	
		
			
				|  | @@ -519,101 +520,108 @@ module.exports = {
 | 
	
		
			
				|  |  |          ProjectsData.recGC(userID, compilationId, nodes, function (err, msg, data) {
 | 
	
		
			
				|  |  |              callback(request, response, err, msg, data);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | -   },
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    delGC: async function(request, response){
 | 
	
		
			
				|  |  | +    delGC: async function (request, response) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(request.body.data);
 | 
	
		
			
				|  |  |          let delDatas = data.delDatas;
 | 
	
		
			
				|  |  |          let bulkProjs = [], bulkUFs = [], bulkFFs = [];
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | -            for(let data of delDatas){
 | 
	
		
			
				|  |  | -                if(data.updateType === 'Project'){
 | 
	
		
			
				|  |  | -                    bulkProjs.push({updateOne: {filter: {ID: data.ID}, update: {'deleteInfo.completeDeleted': true}}});
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            for (let data of delDatas) {
 | 
	
		
			
				|  |  | +                if (data.updateType === 'Project') {
 | 
	
		
			
				|  |  | +                    bulkProjs.push({ updateOne: { filter: { ID: data.ID }, update: { 'deleteInfo.completeDeleted': true } } });
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                else if(data.updateType === fileType.unitPriceFile){
 | 
	
		
			
				|  |  | -                    bulkUFs.push({updateOne: {filter: {id: data.ID}, update: {'deleteInfo.completeDeleted': true}}});
 | 
	
		
			
				|  |  | +                else if (data.updateType === fileType.unitPriceFile) {
 | 
	
		
			
				|  |  | +                    bulkUFs.push({ updateOne: { filter: { id: data.ID }, update: { 'deleteInfo.completeDeleted': true } } });
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                else{
 | 
	
		
			
				|  |  | -                    bulkFFs.push({updateOne: {filter: {ID: data.ID}, update: {'deleteInfo.completeDeleted': true}}});
 | 
	
		
			
				|  |  | +                else {
 | 
	
		
			
				|  |  | +                    bulkFFs.push({ updateOne: { filter: { ID: data.ID }, update: { 'deleteInfo.completeDeleted': true } } });
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(bulkProjs.length > 0){
 | 
	
		
			
				|  |  | +            if (bulkProjs.length > 0) {
 | 
	
		
			
				|  |  |                  await projectModel.bulkWrite(bulkProjs);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(bulkUFs.length > 0){
 | 
	
		
			
				|  |  | +            if (bulkUFs.length > 0) {
 | 
	
		
			
				|  |  |                  await unitPriceFileModel.bulkWrite(bulkUFs);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(bulkFFs.length > 0){
 | 
	
		
			
				|  |  | +            if (bulkFFs.length > 0) {
 | 
	
		
			
				|  |  |                  await feeRateFileModel.bulkWrite(bulkFFs);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              callback(request, response, 0, 'success', null);
 | 
	
		
			
				|  |  | -        } catch(err){
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              callback(request, response, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    moveProject:async function(req,res){
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +    moveProject: async function (req, res) {
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              let data = req.body.data;
 | 
	
		
			
				|  |  | -            let rdata= await pm_facade.moveProject(data);
 | 
	
		
			
				|  |  | -            result.data= rdata;
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            let rdata = await pm_facade.moveProject(data);
 | 
	
		
			
				|  |  | +            result.data = rdata;
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    copyProjects:async function (req, res) {
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +    copyProjects: async function (req, res) {
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            let data = {dataString:req.body.data,userID:req.session.sessionUser.id,compilationID:req.session.sessionCompilation._id};
 | 
	
		
			
				|  |  | -            result = await redirectToImportServer(data,"copyProject",req);
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            let data = { dataString: req.body.data, userID: req.session.sessionUser.id, compilationID: req.session.sessionCompilation._id };
 | 
	
		
			
				|  |  | +            result = await redirectToImportServer(data, "copyProject", req);
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    projectShareInfo: async function(req, res){
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +    projectShareInfo: async function (req, res) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              const data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -            const shareList = await pm_facade.getShareList({projectID: data.projectID});
 | 
	
		
			
				|  |  | +            const shareList = await pm_facade.getShareList({ projectID: data.projectID });
 | 
	
		
			
				|  |  |              const shareInfoMap = await pm_facade.getShareInfoMap(null, shareList);
 | 
	
		
			
				|  |  |              const shareInfo = shareInfoMap[data.projectID] || [];
 | 
	
		
			
				|  |  |              //let shareInfo = await projectModel.findOne({ID: data.projectID, $or: [{deleteInfo: null}, {'deleteInfo.deleted': false}]}, '-_id shareInfo');
 | 
	
		
			
				|  |  |              callback(req, res, 0, 'success', shareInfo);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getRecentShareInfo: async function (req, res) {
 | 
	
		
			
				|  |  | +    getInitialShareData: async function (req, res) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            const { count } = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | +            const { count, projectID } = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              const userID = req.session.sessionUser.id;
 | 
	
		
			
				|  |  | +            // 最近分享
 | 
	
		
			
				|  |  |              const recentUsers = await pm_facade.getRecentShareList(userID, count);
 | 
	
		
			
				|  |  | +            // 联系人
 | 
	
		
			
				|  |  |              const contacts = await userModelObj.getContacts(userID);
 | 
	
		
			
				|  |  | -            callback(req, res, 0, 'success', { recentUsers, contacts });
 | 
	
		
			
				|  |  | +            // 分享过的人
 | 
	
		
			
				|  |  | +            const sharedUsers = await pm_facade.getProjectShareList(projectID);
 | 
	
		
			
				|  |  | +            callback(req, res, 0, 'success', { recentUsers, contacts, sharedUsers });
 | 
	
		
			
				|  |  |          } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  |              callback(req, res, 1, err.message, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    share: async function(req, res){
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +    share: async function (req, res) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              const data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -            const { type, shareData, projectID } = data;
 | 
	
		
			
				|  |  | +            const { type, shareData, projectID, count } = data;
 | 
	
		
			
				|  |  |              const userID = req.session.sessionUser.id;
 | 
	
		
			
				|  |  |              const shareDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
 | 
	
		
			
				|  |  |              shareData.forEach(item => item.shareDate = shareDate);
 | 
	
		
			
				|  |  |              const task = [];
 | 
	
		
			
				|  |  | +            // 是否只是单纯的更新分享选项,如果不是,需要重新获取最近分享和联系人
 | 
	
		
			
				|  |  | +            let isSimpleUpdate = true;
 | 
	
		
			
				|  |  |              if (type === 'create') {
 | 
	
		
			
				|  |  | +                isSimpleUpdate = false;
 | 
	
		
			
				|  |  |                  // 生成分享记录
 | 
	
		
			
				|  |  |                  const docs = shareData.map(item => ({
 | 
	
		
			
				|  |  |                      ID: uuidV1(),
 | 
	
	
		
			
				|  | @@ -629,58 +637,70 @@ module.exports = {
 | 
	
		
			
				|  |  |                  // 分享即互相添加为联系人
 | 
	
		
			
				|  |  |                  task.push(userModelObj.addContact(docs[0].owner, docs[0].receiver));
 | 
	
		
			
				|  |  |              } else if (type === 'update') {
 | 
	
		
			
				|  |  | -                // 取消分享(项目管理界面可一次进行更新和取消)
 | 
	
		
			
				|  |  | +                // 取消分享(以前项目管理界面可一次进行更新和取消)
 | 
	
		
			
				|  |  |                  const cancelReceivers = shareData
 | 
	
		
			
				|  |  |                      .filter(item => item.isCancel)
 | 
	
		
			
				|  |  |                      .map(item => item.userID);
 | 
	
		
			
				|  |  |                  if (cancelReceivers.length) {
 | 
	
		
			
				|  |  | -                    task.push(pm_facade.deleteShareList({projectID, receiver: {$in: cancelReceivers}}));
 | 
	
		
			
				|  |  | +                    isSimpleUpdate = false;
 | 
	
		
			
				|  |  | +                    task.push(pm_facade.deleteShareList({ projectID, receiver: { $in: cancelReceivers } }));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  // 更新分享选项
 | 
	
		
			
				|  |  |                  const updateData = shareData
 | 
	
		
			
				|  |  |                      .filter(item => !item.isCancel)
 | 
	
		
			
				|  |  | -                    .map(item => (
 | 
	
		
			
				|  |  | -                        {
 | 
	
		
			
				|  |  | +                    .map(item => {
 | 
	
		
			
				|  |  | +                        const update = { updateDate: shareDate };
 | 
	
		
			
				|  |  | +                        if (commonUtil.isDef(item.allowCopy)) {
 | 
	
		
			
				|  |  | +                            update.allowCopy = item.allowCopy;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        if (commonUtil.isDef(item.allowCooperate)) {
 | 
	
		
			
				|  |  | +                            update.allowCooperate = item.allowCooperate;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        return {
 | 
	
		
			
				|  |  |                              query: {
 | 
	
		
			
				|  |  |                                  projectID,
 | 
	
		
			
				|  |  |                                  receiver: item.userID
 | 
	
		
			
				|  |  |                              },
 | 
	
		
			
				|  |  | -                            update: {
 | 
	
		
			
				|  |  | -                                allowCopy: item.allowCopy,
 | 
	
		
			
				|  |  | -                                allowCooperate: item.allowCooperate,
 | 
	
		
			
				|  |  | -                                updateDate: shareDate
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                    ));
 | 
	
		
			
				|  |  | +                            update
 | 
	
		
			
				|  |  | +                        };
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  |                  if (updateData.length) {
 | 
	
		
			
				|  |  |                      task.push(pm_facade.updateShareList(updateData))
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              } else { // 取消分享
 | 
	
		
			
				|  |  |                  const cancelReceivers = shareData.map(item => item.userID);
 | 
	
		
			
				|  |  | -                task.push(pm_facade.deleteShareList({projectID, receiver: {$in: cancelReceivers}}));
 | 
	
		
			
				|  |  | +                task.push(pm_facade.deleteShareList({ projectID, receiver: { $in: cancelReceivers } }));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              await Promise.all(task);
 | 
	
		
			
				|  |  | -            const rstData = shareData.filter(item => !item.isCancel);
 | 
	
		
			
				|  |  | -            callback(req, res, 0, 'success', rstData);
 | 
	
		
			
				|  |  | +            const rstTask = [
 | 
	
		
			
				|  |  | +                pm_facade.getRecentShareList(userID, count),
 | 
	
		
			
				|  |  | +                userModelObj.getContacts(userID)
 | 
	
		
			
				|  |  | +            ]
 | 
	
		
			
				|  |  | +            let rst = null;
 | 
	
		
			
				|  |  | +            if (!isSimpleUpdate) {
 | 
	
		
			
				|  |  | +                const [recentUsers, contacts] = await Promise.all(rstTask);
 | 
	
		
			
				|  |  | +                rst = { recentUsers, contacts };
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            callback(req, res, 0, 'success', rst);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    receiveProjects: async function(req, res) {
 | 
	
		
			
				|  |  | +    receiveProjects: async function (req, res) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            let rst = {grouped: [], ungrouped: [], summaryInfo: null};
 | 
	
		
			
				|  |  | +            let rst = { grouped: [], ungrouped: [], summaryInfo: null };
 | 
	
		
			
				|  |  |              let userID = req.session.sessionUser.id;
 | 
	
		
			
				|  |  |              const shareList = await pm_facade.getShareList({ receiver: userID });
 | 
	
		
			
				|  |  |              const receiveProjectIDs = shareList.map(item => item.projectID);
 | 
	
		
			
				|  |  |              const compilation = req.session.sessionCompilation._id;
 | 
	
		
			
				|  |  | -            const notDeleted = [{deleteInfo: null}, {'deleteInfo.deleted': false}];
 | 
	
		
			
				|  |  | -            const receiveProjects = await projectModel.find({ID: {$in: receiveProjectIDs}, compilation, $or: notDeleted}, '-_id').lean();
 | 
	
		
			
				|  |  | +            const notDeleted = [{ deleteInfo: null }, { 'deleteInfo.deleted': false }];
 | 
	
		
			
				|  |  | +            const receiveProjects = await projectModel.find({ ID: { $in: receiveProjectIDs }, compilation, $or: notDeleted }, '-_id').lean();
 | 
	
		
			
				|  |  |              //设置原项目用户信息
 | 
	
		
			
				|  |  |              const shareInfoMap = await pm_facade.getShareInfoMap(null, shareList);
 | 
	
		
			
				|  |  | -            if(receiveProjects.length > 0){
 | 
	
		
			
				|  |  | +            if (receiveProjects.length > 0) {
 | 
	
		
			
				|  |  |                  let orgUserIDs = [];
 | 
	
		
			
				|  |  | -                for(let proj of receiveProjects){
 | 
	
		
			
				|  |  | +                for (let proj of receiveProjects) {
 | 
	
		
			
				|  |  |                      orgUserIDs.push(proj.userID);
 | 
	
		
			
				|  |  |                      if (proj.projType === projType.tender) {
 | 
	
		
			
				|  |  |                          //设置工程专业
 | 
	
	
		
			
				|  | @@ -692,14 +712,14 @@ module.exports = {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  orgUserIDs = Array.from(new Set(orgUserIDs));
 | 
	
		
			
				|  |  |                  let userObjIDs = [];
 | 
	
		
			
				|  |  | -                for(let uID of orgUserIDs){
 | 
	
		
			
				|  |  | +                for (let uID of orgUserIDs) {
 | 
	
		
			
				|  |  |                      userObjIDs.push(mongoose.Types.ObjectId(uID));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                let orgUsersInfo = await userModel.find({_id: {$in : userObjIDs}});
 | 
	
		
			
				|  |  | +                let orgUsersInfo = await userModel.find({ _id: { $in: userObjIDs } });
 | 
	
		
			
				|  |  |                  //建设项目
 | 
	
		
			
				|  |  |                  let consProjIDs = [],
 | 
	
		
			
				|  |  |                      ungroupedTenders = [];
 | 
	
		
			
				|  |  | -                for(let proj of receiveProjects){
 | 
	
		
			
				|  |  | +                for (let proj of receiveProjects) {
 | 
	
		
			
				|  |  |                      // 设置分享信息
 | 
	
		
			
				|  |  |                      proj.shareInfo = shareInfoMap[proj.ID] || [];
 | 
	
		
			
				|  |  |                      if (proj.projType === projType.project) {
 | 
	
	
		
			
				|  | @@ -735,9 +755,9 @@ module.exports = {
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      //设置项目类型为来自别人分享
 | 
	
		
			
				|  |  |                      proj.shareType = 'receive';
 | 
	
		
			
				|  |  | -                    for(let userData of orgUsersInfo){
 | 
	
		
			
				|  |  | -                        if(proj.userID == userData._id.toString()){
 | 
	
		
			
				|  |  | -                            let userInfo = {name: userData.real_name, mobile: userData.mobile, company: userData.company, email: userData.email};
 | 
	
		
			
				|  |  | +                    for (let userData of orgUsersInfo) {
 | 
	
		
			
				|  |  | +                        if (proj.userID == userData._id.toString()) {
 | 
	
		
			
				|  |  | +                            let userInfo = { name: userData.real_name, mobile: userData.mobile, company: userData.company, email: userData.email };
 | 
	
		
			
				|  |  |                              proj.userInfo = userInfo;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -745,17 +765,17 @@ module.exports = {
 | 
	
		
			
				|  |  |                  consProjIDs = Array.from(new Set(consProjIDs));
 | 
	
		
			
				|  |  |                  let summaryInfo = await pm_facade.getSummaryInfo(consProjIDs);
 | 
	
		
			
				|  |  |                  let tendersFeeInfo = await pm_facade.getTendersFeeInfo(ungroupedTenders);
 | 
	
		
			
				|  |  | -                rst.summaryInfo = {grouped: summaryInfo, ungrouped: tendersFeeInfo};
 | 
	
		
			
				|  |  | +                rst.summaryInfo = { grouped: summaryInfo, ungrouped: tendersFeeInfo };
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              callback(req, res, 0, 'success', rst);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      getProjectsByQuery: async function (req, res) {
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              let compilation = req.session.sessionCompilation._id;
 | 
	
		
			
				|  |  |              let query = data.query;
 | 
	
	
		
			
				|  | @@ -764,107 +784,107 @@ module.exports = {
 | 
	
		
			
				|  |  |              let projects = await projectModel.find(query, options);
 | 
	
		
			
				|  |  |              callback(req, res, 0, 'success', projects);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getSummaryInfo: async function(req, res){
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +    getSummaryInfo: async function (req, res) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              let summaryInfo = await pm_facade.getSummaryInfo(data.projectIDs);
 | 
	
		
			
				|  |  |              callback(req, res, 0, 'success', summaryInfo);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    changeFile:async function(req,res){
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +    changeFile: async function (req, res) {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              console.log(data);
 | 
	
		
			
				|  |  | -            await pm_facade.changeFile(data.projects,data.user_id,data.fileID,data.name,data.from,data.type);
 | 
	
		
			
				|  |  | +            await pm_facade.changeFile(data.projects, data.user_id, data.fileID, data.name, data.from, data.type);
 | 
	
		
			
				|  |  |              callback(req, res, 0, 'success', []);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        catch (err){
 | 
	
		
			
				|  |  | +        catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    exportProject:async function(req,res){
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +    exportProject: async function (req, res) {
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            let data = {dataString:req.body.data,userID:req.session.sessionUser.id};
 | 
	
		
			
				|  |  | -            result =  await redirectToImportServer(data,"exportProject",req);
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            let data = { dataString: req.body.data, userID: req.session.sessionUser.id };
 | 
	
		
			
				|  |  | +            result = await redirectToImportServer(data, "exportProject", req);
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    importProject:async function(req,res){
 | 
	
		
			
				|  |  | +    importProject: async function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              data.session = req.session;
 | 
	
		
			
				|  |  | -            result = await redirectToImportServer(data,"importProject",req);
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            result = await redirectToImportServer(data, "importProject", req);
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    importChongqingProject:async function(req,res){
 | 
	
		
			
				|  |  | +    importChongqingProject: async function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              data.session = req.session;
 | 
	
		
			
				|  |  | -            result = await redirectToImportServer(data,"importChongqingProject",req);
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            result = await redirectToImportServer(data, "importChongqingProject", req);
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    importProcessChecking:async function (req,res) {
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +    importProcessChecking: async function (req, res) {
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  | -        try{
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              data.userID = req.session.sessionUser.id;
 | 
	
		
			
				|  |  |              data.compilationID = req.session.sessionCompilation._id;
 | 
	
		
			
				|  |  |              result.data = await pm_facade.importProcessChecking(data);
 | 
	
		
			
				|  |  | -        } catch (err){
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getUploadToken:function (req,res) {
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +    getUploadToken: function (req, res) {
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            result =pm_facade.uploadToken();
 | 
	
		
			
				|  |  | -        }catch (err){
 | 
	
		
			
				|  |  | +            result = pm_facade.uploadToken();
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getBasicInfo: async function(req, res) {
 | 
	
		
			
				|  |  | +    getBasicInfo: async function (req, res) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              let infoLib = await pm_facade.getBasicInfo(req.session.sessionCompilation._id, data.fileKind);
 | 
	
	
		
			
				|  | @@ -874,7 +894,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, []);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getProjectFeature: async function(req, res) {
 | 
	
		
			
				|  |  | +    getProjectFeature: async function (req, res) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              let featureLib = await pm_facade.getProjectFeature(data.valuationID, data.engineeringName, data.feeName);
 | 
	
	
		
			
				|  | @@ -893,7 +913,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, []);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getProjectByGranularity: async function(req, res) {
 | 
	
		
			
				|  |  | +    getProjectByGranularity: async function (req, res) {
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |              const userID = req.session.sessionUser.id;
 | 
	
	
		
			
				|  | @@ -904,7 +924,7 @@ module.exports = {
 | 
	
		
			
				|  |  |              callback(req, res, 1, err, null);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    getProjectPlaceholder: async function(req, res) {
 | 
	
		
			
				|  |  | +    getProjectPlaceholder: async function (req, res) {
 | 
	
		
			
				|  |  |          let data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              let countRst = await pm_facade.getProjectPlaceholder(data);
 | 
	
	
		
			
				|  | @@ -948,15 +968,15 @@ module.exports = {
 | 
	
		
			
				|  |  |      } */
 | 
	
		
			
				|  |  |      importInterface: async function (req, res) {
 | 
	
		
			
				|  |  |          const data = JSON.parse(req.body.data);
 | 
	
		
			
				|  |  | -        let result={
 | 
	
		
			
				|  |  | -            error:0
 | 
	
		
			
				|  |  | +        let result = {
 | 
	
		
			
				|  |  | +            error: 0
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              data.session = req.session;
 | 
	
		
			
				|  |  | -            result = await redirectToImportServer(data,"importInterface",req);
 | 
	
		
			
				|  |  | +            result = await redirectToImportServer(data, "importInterface", req);
 | 
	
		
			
				|  |  |          } catch (err) {
 | 
	
		
			
				|  |  |              console.log(err);
 | 
	
		
			
				|  |  | -            result.error=1;
 | 
	
		
			
				|  |  | +            result.error = 1;
 | 
	
		
			
				|  |  |              result.message = err.message;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          res.json(result);
 | 
	
	
		
			
				|  | @@ -964,15 +984,15 @@ module.exports = {
 | 
	
		
			
				|  |  |      redirectToImportServer: redirectToImportServer
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -async function redirectToImportServer(data,action,req) {
 | 
	
		
			
				|  |  | -    let importURL = config.getImportURL(process.env.NODE_ENV,req.headers.origin);
 | 
	
		
			
				|  |  | +async function redirectToImportServer(data, action, req) {
 | 
	
		
			
				|  |  | +    let importURL = config.getImportURL(process.env.NODE_ENV, req.headers.origin);
 | 
	
		
			
				|  |  |      let options = {
 | 
	
		
			
				|  |  |          method: 'POST',
 | 
	
		
			
				|  |  |          uri: `http://${importURL}/import/${action}`,
 | 
	
		
			
				|  |  |          body: data,
 | 
	
		
			
				|  |  | -        timeout:220000,
 | 
	
		
			
				|  |  | +        timeout: 220000,
 | 
	
		
			
				|  |  |          json: true
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -    console.log("post import data to:"+options.uri);
 | 
	
		
			
				|  |  | +    console.log("post import data to:" + options.uri);
 | 
	
		
			
				|  |  |      return await rp.post(options);
 | 
	
		
			
				|  |  |  }
 |