project_facade.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * Created by zhang on 2018/1/26.
  3. */
  4. let projectsModel = require("../../pm/models/project_schema");
  5. module.exports = {
  6. markUpdateProject:markUpdateProject,
  7. removeProjectMark:removeProjectMark
  8. };
  9. //data = {feeRateID:111111,projectID:1245}; type = feeRate
  10. async function markUpdateProject(data,type) {
  11. let tasks=[];
  12. let query = {deleteInfo:null};
  13. let result = null;
  14. if(type=="feeRate"){//更改了费率
  15. query['property.feeFile.id'] = data.feeRateID;
  16. }
  17. if(type=="unitFile"){//更改了单价文件
  18. query['property.unitPriceFile.id'] = data.unitFileID;//unitPriceFile
  19. }
  20. let projects =await projectsModel.find(query);
  21. for(let p of projects){
  22. if(p.ID!=data.projectID){//当前项目不用更新
  23. tasks.push(generateMarkTask(type,p.ID));
  24. }
  25. }
  26. if(tasks.length>0){
  27. result = await projectsModel.bulkWrite(tasks);
  28. }
  29. return result;
  30. }
  31. async function removeProjectMark(projectID) {
  32. return await projectsModel.findOneAndUpdate({ID:projectID},{"$unset":{"changeMark":1}});
  33. }
  34. function generateMarkTask(value,projectID) {
  35. let task = {
  36. updateOne:{
  37. filter:{
  38. ID:projectID
  39. },
  40. update:{
  41. changeMark:value
  42. }
  43. }
  44. };
  45. return task
  46. }