|
@@ -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,
|
|
@@ -265,27 +266,37 @@ 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;
|
|
|
+ if(feeFile.indexOf("newFeeRate")!=-1){
|
|
|
+ let temFee = await feeRateFileModel.findOne({rootProjectID:rootProjectID,name:name,deleteInfo:null});
|
|
|
+ if(temFee){
|
|
|
+ return temFee.ID;
|
|
|
+ }
|
|
|
+ let temA = feeFile.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);
|
|
|
+ return doc.ID;
|
|
|
+ }else {
|
|
|
+ return feeFile
|
|
|
}
|
|
|
|
|
|
- doc.ID = uuidV1();
|
|
|
- await feeRateFileModel.create(doc);
|
|
|
- return doc.ID;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
@@ -303,25 +314,28 @@ 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 数据
|
|
|
+ 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});
|