material_calc.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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 = new 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. },{versionKey:false,_id: false});
  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. heightFee:String,//高原增加费
  79. weightCoe:String,//加权系数
  80. rations:[ration_schema],
  81. ration_gljs:[ration_glj],
  82. calcType:String,//计算方式
  83. exp:String,//计算式
  84. materialType:String//材料类型
  85. };
  86. mongoose.model("freight_calc", new Schema(freightSchema, {versionKey: false, collection: "freight_calc"}));
  87. let originalSchema = {
  88. ID:{type:String,index: true},
  89. unit_price_file_id: Number,
  90. connect_key: {type: String, index: true},// 关联项目工料机的key 不能关联id,因为单价文件导入别的项目后项目工料机id不同
  91. supplyLocation:String,//供应地点
  92. supplyPrice:String,//供应价
  93. coe:String,//加权系数
  94. heightFee:String,//高原增加费
  95. rations:[ration_schema],
  96. ration_gljs:[ration_glj]
  97. };
  98. mongoose.model("original_calc", new Schema(originalSchema, {versionKey: false, collection: "original_calc"}));
  99. let userfreightSchema = mongoose.Schema({
  100. ID:String,
  101. unit_price_file_id: Number,
  102. connect_key: String,// 关联项目工料机的key 不能关联id,因为单价文件导入别的项目后项目工料机id不同
  103. start:String,//起讫地点
  104. conveyance:String,//运输工具
  105. unitFreight:String,//单位运价
  106. kmDistance:String,//km运距
  107. unitLoadingFee:String,//装卸费单价
  108. loadingTimes:String,//装卸次数
  109. otherFee:String,//其它费用
  110. freightIncreaseRate:String,//运价增加率
  111. weightCoe:String,//加权系数
  112. rations:[ration_schema],
  113. ration_gljs:[ration_glj],
  114. calcType:String,//计算方式
  115. materialType:String//材料类型
  116. }, { _id: false });
  117. let user_freights = {
  118. ID:{type:String,index: true},
  119. userID:{type:String,index: true},
  120. compilationID:{type:String,index: true},
  121. rootProjectID:Number,
  122. freight:userfreightSchema
  123. };
  124. mongoose.model("user_freights", new Schema(user_freights, {versionKey: false, collection: "user_freights"}));