copy_proj_controller.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  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');
  7. let volumePriceData = require('../../volume_price/models/volume_price_model');
  8. let async = require('async');
  9. module.exports = {
  10. copyProjectData: function (srcProjID, newProjID, callback) {
  11. var fun = [];
  12. var copyData = function (model) {
  13. return (cb) => {
  14. model.getQueryData({"projectID": srcProjID}, '-_id').then(function (results, err) {
  15. if (results.length > 0) {
  16. let datas = [];
  17. results.forEach(function (result) {
  18. result._doc.projectID = newProjID;
  19. datas.push(result._doc);
  20. });
  21. return model.insertData(datas, cb);
  22. } else {
  23. cb(err);
  24. }
  25. }).catch(cb);
  26. };
  27. };
  28. fun.push(copyData(billsData));
  29. fun.push(copyData(rationData));
  30. fun.push(copyData(projCounter));
  31. fun.push(copyData(volumePriceData));
  32. async.parallel(fun, (err) => callback(err));
  33. }
  34. };