copy_proj_controller.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /**
  2. * Created by Mai on 2017/4/24.
  3. */
  4. let billsData = require('../../main/models/bills');
  5. let rationData = require('../../main/models/ration');
  6. let projCounter = require('../../main/models/proj_counter_model');
  7. let projSetting = require('../../main/models/proj_setting_model');
  8. // let volumePriceData = require('../../volume_price/models/volume_price_model');
  9. let async = require('async');
  10. module.exports = {
  11. copyProjectData: function (srcProjID, newProjID, callback) {
  12. var fun = [];
  13. var copyData = function (model) {
  14. return (cb) => {
  15. model.getQueryData({"projectID": srcProjID}, '-_id').then(function (results, err) {
  16. if (results.length > 0) {
  17. let datas = [];
  18. results.forEach(function (result) {
  19. result._doc.projectID = newProjID;
  20. datas.push(result._doc);
  21. });
  22. return model.insertData(datas, cb);
  23. } else {
  24. cb(err);
  25. }
  26. }).catch(cb);
  27. };
  28. };
  29. fun.push(copyData(billsData));
  30. fun.push(copyData(rationData));
  31. fun.push(copyData(projCounter));
  32. fun.push(copyData(projSetting));
  33. // fun.push(copyData(volumePriceData));
  34. async.parallel(fun, (err) => callback(err));
  35. }
  36. };