|
@@ -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);
|
|
|
}
|