ration_calc.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /**
  2. * Created by Mai on 2017/7/13.
  3. */
  4. let rationCalcFields = [
  5. {
  6. type: 'baseDirect', code: "1", name: "基价直接工程费",
  7. dispExpr: "1.1+1.2+1.3+1.4", expression: "@('1.1') + @('1.2') + @('1.3') + @('1.4')", compiledExpr: "",
  8. statement: "基价人工费+基价材料费+基价机械费+未计价材料费"
  9. },{
  10. type: 'baseLabour', code: "1.1", name: "基价人工费",
  11. dispExpr: "1.1.1+1.1.2", expression: "@('1.1.1') + @('1.1.2')", compiledExpr: "",
  12. statement: "定额基价人工费+定额人工单价(基价)调整"
  13. },{
  14. type: 'rationBaseLabour', code: "1.1.1", name: "定额基价人工费",
  15. dispExpr: "定额基价人工费", expression: "base('定额基价人工费').toFixed(2)", compiledExpr: "",
  16. statement: "定额基价人工费"
  17. },{
  18. type: 'rationAdjustLabour', code: "1.1.2", name: "定额人工单价(基价)调整",
  19. dispExpr: "1.1.1*[1.89-1]", expression: "@('1.1.1') * fee('3')", compiledExpr: "",
  20. statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]"
  21. },{
  22. type: 'baseMaterial', code: "1.2", name: "基价材料费",
  23. dispExpr: "定额基价材料费", expression: "base('定额基价材料费')", compiledExpr: "",
  24. statement: "定额基价材料费"
  25. },{
  26. type: 'baseMachine', code: "1.3", name: "基价机械费",
  27. dispExpr: "1.3.1+1.3.2", expression: "@('1.3.1') + @('1.3.2')", compiledExpr: "",
  28. statement: "定额基价机械费+定额机上人工单价(基价)调整"
  29. },{
  30. type: 'rationBaseMachine', code: "1.3.1", name: "定额基价机械费",
  31. dispExpr: "定额基价机械费", expression: "base('定额基价机械费')", compiledExpr: "",
  32. statement: "定额基价机械费"
  33. },{
  34. type: 'rationBaseMachineLabour', code: "1.3.1.1", name: "其中:定额基价机上人工费",
  35. dispExpr: "定额基价机上人工费", expression: "base('定额基价机上人工费')", compiledExpr: "",
  36. statement: "定额基价机上人工费"
  37. },{
  38. type: 'rationBaseMachineLabourFixed', code: "1.3.2", name: "定额机上人工单价(基价)调整",
  39. dispExpr: "1.3.1.1*[1.89-1]", expression: "@('1.3.1.1') * fee('30')", compiledExpr: "",
  40. statement: "定额基价机上人工费*[定额人工单价(基价)调整系数-1]"
  41. },{
  42. type: 'unPriceMaterial', code: "1.4", name: "未计价材料费",
  43. dispExpr: "主材费+设备费", expression: "base('主材费') + base('设备费')", compiledExpr: "",
  44. statement: "主材费+设备费"
  45. },{
  46. type: 'management', code: "2", name: "企业管理费",
  47. dispExpr: "1.1.1", expression: "@('1.1.1')", compiledExpr: "",
  48. statement: "定额基价人工费"
  49. },{
  50. type: 'profit', code: "3", name: "利润",
  51. dispExpr: "1.1.1", expression: "@('1.1.1')", compiledExpr: "",
  52. statement: "定额基价人工费"
  53. },{
  54. type: 'risk', code: "4", name: "风险因素",
  55. dispExpr: "", expression: "0", compiledExpr: "",
  56. statement: ""
  57. },{
  58. type: 'gljDiff', code: "5", name: "人材机价差",
  59. dispExpr: "5.1+5.2+5.3", expression: "@('5.1') + @('5.2') + @('5.3')", compiledExpr: "",
  60. statement: "人工费价差+材料费价差+机械费价差"
  61. },{
  62. type: 'labourDiff', code: "5.1", name: "人工费价差",
  63. dispExpr: "信息价或市场价格-调整后的定额人工费(基价)", expression: "base('市场价格人工费') - base('定额基价人工费(调整后)')", compiledExpr: "",
  64. statement: "市场价格人工费-调整后的定额人工费(基价)"
  65. },{
  66. type: 'materialDiff', code: "5.2", name: "材料费价差",
  67. dispExpr: "信息价或市场价格-定额基价材料费", expression: "base('市场价格材料费') - base('定额基价材料费(调整后)')", compiledExpr: "",
  68. statement: "市场价格材料费-定额基价材料费"
  69. },{
  70. type: 'machineDiff', code: "5.3", name: "机械费价差",
  71. dispExpr: "信息价或市场价格-调整后的定额基价机械费(基价)", expression: "base('市场价格机械费') - base('定额基价机械费(调整后)')", compiledExpr: "",
  72. statement: "市场价格机械费-调整后的定额基价机械费(基价)"
  73. },{
  74. type: 'common', code: "6", name: "综合单价",
  75. dispExpr: "1+2+3+4+5", expression: "@('1') + @('2') + @('3') + @('4') + @('5')", compiledExpr: "",
  76. statement: "基价直接工程费+企业管理费+利润+风险因素+人材机价差"
  77. }
  78. ];
  79. let rationCalcObj = {
  80. calcGljs: [],
  81. calcFields: null,
  82. base: function () {
  83. },
  84. adjust: function () {
  85. },
  86. budget: function () {
  87. },
  88. calculate () {
  89. let result = {};
  90. }
  91. };
  92. class RationCalc {
  93. constructor (project) {
  94. this.project = project;
  95. };
  96. calculate (ration) {
  97. rationCalcObj.calcGljs = this.project.ration_glj.getGljArrByRation(ration.ID);
  98. rationCalcObj.calcFields = rationCalcFields;
  99. let virData = rationCalcObj.calculate();
  100. calcFees.checkFields(ration, rationCalcFields);
  101. for (let field of rationCalcFields) {
  102. ration.feesIndex[field.type].unitFee = virData[field.type].unitFee;
  103. ration.feesIndex[field.type].totalFee = virData[field.type].totalFee;
  104. }
  105. }
  106. calculateAll () {
  107. for (let rationData of project.ration.data) {
  108. this.calculate(rationData);
  109. }
  110. };
  111. }