material_calc.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * Created by zhang on 2019/3/18.
  3. */
  4. // import mongoose from 'mongoose';
  5. let mongoose = require("mongoose");
  6. let Schema = mongoose.Schema;
  7. var rationAssItemSchema = mongoose.Schema({
  8. name: String,
  9. assistID: Number,
  10. assistCode: String,
  11. stdValue: Number,
  12. actualValue:Number,
  13. stepValue: String,
  14. decimal: Number,
  15. carryBit: String,
  16. minValue: String,
  17. maxValue: String,
  18. paramName:String,//参数名称
  19. param:String,//参数
  20. thirdRationCode:String,//第三定额
  21. isAdjust:Number,//0不调整,1调整
  22. groupList:[Schema.Types.Mixed],//当有分组的时候用这个
  23. assRation:Schema.Types.Mixed//存放对应的定额,材料计算时用到
  24. }, { _id: false });
  25. var ration_glj = new Schema({
  26. ID:{type: String},
  27. GLJID:Number,
  28. repositoryId:Number,
  29. rationID:String,
  30. projectGLJID:Number,
  31. name:String,
  32. code:String,
  33. //原始的编码
  34. original_code: {type: String},
  35. rcode:String,
  36. //新结构,计录替换前的工料机信息,对于混凝土,替换,计算等问题处理,替换时保存旧数据的5大项信息
  37. mIndexObj: Schema.Types.Mixed,
  38. specs:String,
  39. unit:String,
  40. shortName:String,
  41. type:Number,
  42. // 机型
  43. model: Number,
  44. // 调整系数ID
  45. adjCoe: Number,
  46. quantity:String,
  47. customQuantity:String,
  48. rationItemQuantity:String,
  49. tenderQuantity:String,//调整后消耗量
  50. createType: {type: String,default:'normal'},//normal、add、replace 正常、添加工料机、替换工料机
  51. from:{type: String,default:'std'}//std, cpt 来自标准工料机库、补充工料机库
  52. },{versionKey:false,_id: false});
  53. let ration_schema = {
  54. ID: {type: String},
  55. projectID: Number,
  56. code: String,
  57. name: String,
  58. unit: String,
  59. quantity: String,
  60. feeType:String,
  61. caption:String,
  62. libID:Number,
  63. stdID:Number,
  64. from:String,
  65. rationAssList: [rationAssItemSchema]
  66. };
  67. let freightSchema = {
  68. ID:{type:String,index: true},
  69. unit_price_file_id: Number,
  70. connect_key: {type: String, index: true},// 关联项目工料机的key 不能关联id,因为单价文件导入别的项目后项目工料机id不同
  71. start:String,//起讫地点
  72. conveyance:String,//运输工具
  73. unitFreight:String,//单位运价
  74. kmDistance:String,//km运距
  75. unitLoadingFee:String,//装卸费单价
  76. loadingTimes:String,//装卸次数
  77. otherFee:String,//其它费用
  78. freightIncreaseRate:String,//运价增加率
  79. weightCoe:String,//加权系数
  80. rations:[ration_schema],
  81. ration_gljs:[ration_glj],
  82. calcType:String,//计算方式
  83. materialType:String//材料类型
  84. };
  85. mongoose.model("freight_calc", new Schema(freightSchema, {versionKey: false, collection: "freight_calc"}));
  86. let originalSchema = {
  87. ID:{type:String,index: true},
  88. unit_price_file_id: Number,
  89. connect_key: {type: String, index: true},// 关联项目工料机的key 不能关联id,因为单价文件导入别的项目后项目工料机id不同
  90. supplyLocation:String,//供应地点
  91. supplyPrice:String,//供应价
  92. coe:String,//加权系数
  93. rations:[ration_schema],
  94. ration_gljs:[ration_glj]
  95. };
  96. mongoose.model("original_calc", new Schema(originalSchema, {versionKey: false, collection: "original_calc"}));
  97. let userfreightSchema = mongoose.Schema({
  98. ID:String,
  99. unit_price_file_id: Number,
  100. connect_key: String,// 关联项目工料机的key 不能关联id,因为单价文件导入别的项目后项目工料机id不同
  101. start:String,//起讫地点
  102. conveyance:String,//运输工具
  103. unitFreight:String,//单位运价
  104. kmDistance:String,//km运距
  105. unitLoadingFee:String,//装卸费单价
  106. loadingTimes:String,//装卸次数
  107. otherFee:String,//其它费用
  108. freightIncreaseRate:String,//运价增加率
  109. weightCoe:String,//加权系数
  110. rations:[ration_schema],
  111. ration_gljs:[ration_glj],
  112. calcType:String,//计算方式
  113. materialType:String//材料类型
  114. }, { _id: false });
  115. let user_freights = {
  116. ID:{type:String,index: true},
  117. userID:{type:String,index: true},
  118. compilationID:{type:String,index: true},
  119. rootProjectID:Number,
  120. freight:userfreightSchema
  121. };
  122. mongoose.model("user_freights", new Schema(user_freights, {versionKey: false, collection: "user_freights"}));