material_calc.js 4.2 KB

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