prj_properties.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * Created by jimiz on 2017/5/19.
  3. */
  4. // var mongoose = require("mongoose");
  5. // var db = require("../db/project_db");
  6. // var subSchema = require("./bills_sub_schemas");
  7. // var Schema = mongoose.Schema;
  8. // var deleteSchema = require('../../../public/models/delete_schema');
  9. // var consts = require('./project_consts');
  10. // var projectConsts = consts.projectConst;
  11. // var commonConsts = consts.commonConst;
  12. //
  13. // var projectPropertiesSchema = new Schema({
  14. // ID: Number,
  15. // unitPriceFileID: Number,
  16. // unitPriceFileVer: Number,
  17. // deleteInfo: deleteSchema
  18. // });
  19. //
  20. // var projectProperties = db.model("prj_properties", projectPropertiesSchema, "prj_properties");
  21. //
  22. // var projectPropertiesDAO = function(){};
  23. //
  24. // projectPropertiesDAO.prototype.getData = function(projectID, callback){
  25. // projectProperties.find({'$or': [{ID: projectID, deleteInfo: null}, {ID: projectID, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id', function(err, datas){
  26. // if (!err) {
  27. // callback(0, projectConsts.PROPERTIES, datas);
  28. // } else {
  29. // callback(1, '', null);
  30. // };
  31. // });
  32. // };
  33. //
  34. // projectPropertiesDAO.prototype.save = function(datas, callback){
  35. // var functions = [];
  36. // var data;
  37. //
  38. // function saveOne(data) {
  39. // return function (cb) {
  40. // switch (data.updateType) {
  41. // case commonConsts.UT_UPDATE:
  42. // projectProperties.update({ID: data.ID}, data, cb);
  43. // break;
  44. // case commonConsts.UT_CREATE:
  45. // projectProperties.create(data, cb);
  46. // break;
  47. // case commonConsts.UT_DELETE:
  48. // /* 假删除
  49. // var item = new GLJ(doc);
  50. // item.remove(cb);
  51. // */
  52. // }
  53. // }
  54. // }
  55. // for (var i = 0; i < datas.length; i++){
  56. // data = datas[i];
  57. // functions.push(saveOne(data));
  58. // }
  59. //
  60. // async.parallel(functions, callback);
  61. // };
  62. //
  63. // module.exports = new projectPropertiesDAO();
  64. let mongoose = require('mongoose');
  65. let propertyDetailSchema = new mongoose.Schema({
  66. key: String,
  67. dispName: String,
  68. value: String
  69. });
  70. let prj_property = new mongoose.Schema({
  71. projectID: Number,
  72. properties: Array //原则上是应该设置好对象的属性,但在实际应用中发现mongoose保存的时候会自动增加objectId(_id)字段,无语。。。
  73. // properties: [{
  74. // key: String,
  75. // dispName: String,
  76. // value: String
  77. // }]
  78. }, {versionKey: false});
  79. //预储存的项目属性,在项目创建的时候copy一份到项目中
  80. let cfg_property = new mongoose.Schema({
  81. rationLibID: Number, //这个对应标准定额库ID
  82. descr: String, //描述
  83. properties: [propertyDetailSchema]
  84. }, {versionKey: false});
  85. let prj_prop_mdl = mongoose.model('project_property', prj_property, 'prj_properties');
  86. let std_prj_prop_mdl = mongoose.model('cfg_prj_property', cfg_property, 'std_cfg_prj_properties');
  87. module.exports = {
  88. prj_prop_mdl: prj_prop_mdl,
  89. std_prj_prop_mdl: std_prj_prop_mdl
  90. };