|
@@ -25,7 +25,8 @@ module.exports={
|
|
|
getChangeInfo:getChangeInfo,
|
|
|
changeFeeRateFileFromCurrent:changeFeeRateFileFromCurrent,
|
|
|
changeFeeRateFileFromOthers:changeFeeRateFileFromOthers,
|
|
|
- newFeeRateFile:newFeeRateFile
|
|
|
+ newFeeRateFile:newFeeRateFile,
|
|
|
+ getFeeRatesByProject:getFeeRatesByProject
|
|
|
};
|
|
|
let operationMap={
|
|
|
'ut_create':create_fee_rate,
|
|
@@ -93,7 +94,11 @@ async function creatFeeRateFile(feeRateFile,feeRate,projectID) {//预留projectI
|
|
|
err:null
|
|
|
}
|
|
|
try {
|
|
|
- await project_feerate_temp.findOneAndUpdate({projectID:projectID},{feeRateFileID:feeRateFile.ID});
|
|
|
+ let feeFile={
|
|
|
+ id:feeRateFile.ID,
|
|
|
+ name:feeRateFile.name
|
|
|
+ }
|
|
|
+ await projectsModel.findOneAndUpdate({ID:projectID},{'property.feeFile':feeFile});
|
|
|
await feeRateFileModel.create(feeRateFile);
|
|
|
await feeRateModel.create(feeRate);
|
|
|
}catch (err){
|
|
@@ -182,7 +187,6 @@ function getData(projectID, callback) {
|
|
|
}
|
|
|
|
|
|
async function getFeeRateData(projectID) {
|
|
|
- // to do 需根据projectID查找对应的费率文件
|
|
|
let result={
|
|
|
err:null
|
|
|
}
|
|
@@ -190,7 +194,7 @@ async function getFeeRateData(projectID) {
|
|
|
//
|
|
|
let project = await projectsModel.findOne({ID:projectID});
|
|
|
if (project&&project.property&&project.property.feeFile){
|
|
|
- let feeRateData = await feeRateFileModel.findOne({'ID':project.property.feeFile,deleteInfo:null});
|
|
|
+ let feeRateData = await feeRateFileModel.findOne({'ID':project.property.feeFile.id,deleteInfo:null});
|
|
|
if(feeRateData===null){
|
|
|
result.datas=[];
|
|
|
}else {
|
|
@@ -213,7 +217,7 @@ async function getFeeRateData(projectID) {
|
|
|
}
|
|
|
|
|
|
async function getUsageProjects(feeRateID){
|
|
|
- let projects = await projectsModel.find({'property.feeFile':feeRateID,'deleteInfo':null});
|
|
|
+ let projects = await projectsModel.find({'property.feeFile.id':feeRateID,'deleteInfo':null});
|
|
|
return projects;
|
|
|
}
|
|
|
|
|
@@ -265,27 +269,42 @@ async function newFeeRateFile(updateData){
|
|
|
if(updateData.property !== null){
|
|
|
let property = updateData.property;
|
|
|
logger.info("Create new feeRate file for project :"+updateData.ID);
|
|
|
- let libID = property.feeFile;
|
|
|
+ let feeFile = property.feeFile;
|
|
|
let rootProjectID = property.rootProjectID;
|
|
|
let name = updateData.name;
|
|
|
- let doc={
|
|
|
- rootProjectID:rootProjectID,
|
|
|
- name:name
|
|
|
- };
|
|
|
- if(libID!== ''){
|
|
|
- let template = await std_fee_rate_lib_model.findOne({"ID":libID});
|
|
|
- let newFeeRate = {};
|
|
|
- newFeeRate.ID =uuidV1();
|
|
|
- newFeeRate.rates=template.rates;
|
|
|
- await feeRateModel.create(newFeeRate);
|
|
|
- doc.libID = libID;
|
|
|
- doc.libName = template.libName;
|
|
|
- doc.feeRateID = newFeeRate.ID;
|
|
|
+ let newFeeRate = {};
|
|
|
+ if(feeFile.id.indexOf("newFeeRate")!=-1){
|
|
|
+ let temFee = await feeRateFileModel.findOne({rootProjectID:rootProjectID,name:name,deleteInfo:null});
|
|
|
+ if(temFee){
|
|
|
+ newFeeRate.id=temFee.ID;
|
|
|
+ newFeeRate.name = temFee.name;
|
|
|
+ return newFeeRate;
|
|
|
+ }
|
|
|
+ let temA = feeFile.id.split("-");
|
|
|
+ let libID = temA[1];
|
|
|
+ let doc={
|
|
|
+ rootProjectID:rootProjectID,
|
|
|
+ name:name
|
|
|
+ };
|
|
|
+ if(libID!== ''){
|
|
|
+ let template = await std_fee_rate_lib_model.findOne({"ID":libID});
|
|
|
+ let newFeeRate = {};
|
|
|
+ newFeeRate.ID =uuidV1();
|
|
|
+ newFeeRate.rates=template.rates;
|
|
|
+ await feeRateModel.create(newFeeRate);
|
|
|
+ doc.libID = libID;
|
|
|
+ doc.libName = template.libName;
|
|
|
+ doc.feeRateID = newFeeRate.ID;
|
|
|
+ }
|
|
|
+ doc.ID = uuidV1();
|
|
|
+ await feeRateFileModel.create(doc);
|
|
|
+ newFeeRate.id = doc.ID;
|
|
|
+ newFeeRate.name =doc.name;
|
|
|
+ return newFeeRate;
|
|
|
+ }else {
|
|
|
+ return feeFile
|
|
|
}
|
|
|
|
|
|
- doc.ID = uuidV1();
|
|
|
- await feeRateFileModel.create(doc);
|
|
|
- return doc.ID;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -303,33 +322,41 @@ async function checkFeeRateName(jdata) {
|
|
|
|
|
|
async function getChangeInfo(jdata){
|
|
|
let data = JSON.parse(jdata);
|
|
|
- //{ projectID: 99, user_id: '76075' }
|
|
|
+ //{ rootProjectID: 99, user_id: '76075' }
|
|
|
let result={};
|
|
|
- let currentProject = {projectID:99,name:'建设项目1'};//dummy 数据
|
|
|
- currentProject.currentOptions=await feeRateFileModel.find({rootProjectID:data.projectID,deleteInfo:null},['ID','name']);
|
|
|
+ let currentProject = await projectsModel.findOne({'ID':data.rootProjectID},['ID','name']); //{projectID:99,name:'建设项目1'};//dummy 数据
|
|
|
+ if(currentProject){
|
|
|
+ currentProject._doc.currentOptions=await getFeeRatesByProject(data.rootProjectID);
|
|
|
+ }
|
|
|
//根据用户ID 找除了当前项目的其它建设项目;
|
|
|
- let others = [
|
|
|
- {projectID:100,name:'建设项目2',optionList:[
|
|
|
- {ID:'590cf860-7d99-11e7-90b0-e3a3dfdb2116',name:'2-test另存'},
|
|
|
- {ID:'c55718d0-7d98-11e7-b3b4-cfc9038d29b0',name:'2-费率B'},
|
|
|
- {ID:'da059df1-7c18-11e7-9e2f-1390b52643b4',name:'2-费率A'}
|
|
|
- ] },
|
|
|
- {projectID:101,name:'建设项目3',optionList:currentProject.currentOptions },
|
|
|
- {projectID:102,name:'建设项目4',optionList:currentProject.currentOptions },
|
|
|
- ]
|
|
|
+ let others =await projectsModel.find({'$and': [
|
|
|
+ {'$or':[{'userID': data.user_id,'projType':'Project', 'deleteInfo': null}, {'userID': data.user_id,'projType':'Project', 'deleteInfo.deleted': {'$in': [null, false]}}]},
|
|
|
+ { 'ID':{'$nin':[data.rootProjectID]}}
|
|
|
+ ]},['ID','name']);
|
|
|
+ for(let o of others){
|
|
|
+ o._doc.optionList = await getFeeRatesByProject(o.ID);
|
|
|
+ }
|
|
|
result.currentProject=currentProject;
|
|
|
result.others = others;
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+async function getFeeRatesByProject(rootProjectID) {
|
|
|
+ let feeRates = await feeRateFileModel.find({rootProjectID:rootProjectID,deleteInfo:null},['ID','name']);
|
|
|
+ return feeRates;
|
|
|
+}
|
|
|
+
|
|
|
async function changeFeeRateFileFromCurrent(jdata){
|
|
|
let data = JSON.parse(jdata);
|
|
|
- let result = await project_feerate_temp.findOneAndUpdate({projectID:data.projectID},{feeRateFileID:data.newFeeRateFileID});
|
|
|
- let feeRateData = await feeRateFileModel.findOne({'ID':data.newFeeRateFileID});
|
|
|
- let feeRate = await feeRateModel.findOne({ID:feeRateData.feeRateID});
|
|
|
- feeRateData._doc.rates = feeRate.rates;
|
|
|
+ let newFeeRateFile=data.newFeeRateFile;
|
|
|
+ let result = await projectsModel.findOneAndUpdate({ID:data.projectID},{'property.feeFile':newFeeRateFile});
|
|
|
+ let feeRateData = await feeRateFileModel.findOne({'ID':newFeeRateFile.id});
|
|
|
+ if(feeRateData!==null){
|
|
|
+ let feeRate = await feeRateModel.findOne({ID:feeRateData.feeRateID});
|
|
|
+ feeRateData._doc.rates = feeRate.rates;
|
|
|
+ }
|
|
|
//
|
|
|
- feeRateData._doc.usageProjects=getUsageProjects(feeRateData.ID);
|
|
|
+ feeRateData._doc.usageProjects=await getUsageProjects(feeRateData.ID);
|
|
|
return feeRateData;
|
|
|
}
|
|
|
|
|
@@ -350,8 +377,12 @@ async function changeFeeRateFileFromOthers(jdata) {
|
|
|
newFeeRateFile.feeRateID =newFeeRate.ID;
|
|
|
await feeRateModel.create(newFeeRate);
|
|
|
await feeRateFileModel.create(newFeeRateFile);
|
|
|
- await project_feerate_temp.findOneAndUpdate({projectID:data.projectID},{feeRateFileID:newFeeRateFile.ID});
|
|
|
+ let feeFile={
|
|
|
+ id:newFeeRateFile.ID,
|
|
|
+ name:data.name
|
|
|
+ }
|
|
|
+ await projectsModel.findOneAndUpdate({ID:data.projectID},{'property.feeFile':feeFile});
|
|
|
newFeeRateFile.rates=newFeeRate.rates;
|
|
|
- newFeeRateFile.usageProjects=getUsageProjects(newFeeRateFile.ID);
|
|
|
+ newFeeRateFile.usageProjects=await getUsageProjects(newFeeRateFile.ID);
|
|
|
return newFeeRateFile;
|
|
|
}
|