labour_coe_facade.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * Created by CSL on 2017-10-10.
  3. */
  4. const uuidV1 = require('uuid/v1');
  5. let logger = require("../../../logs/log_helper").logger;
  6. let mongoose = require('mongoose');
  7. let stdLabourCoesModel = mongoose.model('std_labour_coes');
  8. let projectLabourCoesModel = mongoose.model('labour_coes');
  9. let EngineeringLibModel = require("../../users/models/engineering_lib_model");
  10. module.exports = {
  11. newProjectLabourCoe: newProjectLabourCoe,
  12. getProjectLabourCoe: getProjectLabourCoe,
  13. getStdLabourCoe: getStdLabourCoe
  14. };
  15. async function newProjectLabourCoe(data) {
  16. let valid_LC_libs = [];
  17. let egnrID = data.property.engineering_id;
  18. let egnrModel = new EngineeringLibModel();
  19. let egnr = await egnrModel.getEngineering(egnrID);
  20. if(egnr){ valid_LC_libs = egnr._doc.artificial_lib };
  21. // 绑定多个人工系数标准文件时,默认取第一个作为标准模板。
  22. let stdLC = await getStdLabourCoe(valid_LC_libs[0].id);
  23. let doc={
  24. ID: uuidV1(),
  25. projectID: data.ID,
  26. name: data.name,
  27. libID: stdLC.ID,
  28. libName: stdLC.libName,
  29. coes: stdLC.coes
  30. };
  31. await projectLabourCoesModel.create(doc);
  32. let newLC = {ID: doc.ID, name: doc.name};
  33. return newLC;
  34. };
  35. async function getProjectLabourCoe(ID) {
  36. let projLC = await projectLabourCoesModel.findOne({ID:ID});
  37. return projLC;
  38. };
  39. async function getStdLabourCoe(libID) {
  40. let stdLC = await stdLabourCoesModel.findOne({ID:libID});
  41. return stdLC;
  42. };