ration_program.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. /**
  2. * Created by CSL on 2017-07-19.
  3. */
  4. // dispExpr: F8*(L-1); expression: "@('8') * (L-1)";
  5. // 说明:F后跟行号,L替换人工系数值,@后跟ID。用到L的规则必须有labourCoeID属性(反过来不要求),
  6. // 用到费率的规则必须有feeRateID属性,当有该属性时,会自动显示费率值。
  7. let calcTemplates = [
  8. {
  9. ID: 1,
  10. name: "重庆2015",
  11. compiledSeq: [],
  12. calcItems: [
  13. {
  14. ID: "1",
  15. code: "1",
  16. name: "基价直接工程费",
  17. fieldName: "baseDirect",
  18. dispExpr: "F2+F5+F6+F10",
  19. expression: "@('2') + @('5') + @('6') + @('10')",
  20. compiledExpr: "",
  21. statement: "基价人工费+基价材料费+基价机械费+未计价材料费"
  22. },
  23. {
  24. ID: "2",
  25. code: "1.1",
  26. name: "基价人工费",
  27. fieldName: "baseLabour",
  28. dispExpr: "F3+F4",
  29. expression: "@('3') + @('4')",
  30. compiledExpr: "",
  31. statement: "定额基价人工费+定额人工单价(基价)调整"
  32. },
  33. {
  34. ID: "3",
  35. code: "1.1.1",
  36. name: "定额基价人工费",
  37. fieldName: "rationBaseLabour",
  38. dispExpr: "[定额基价人工费]",
  39. expression: "base('定额基价人工费').toFixed(2)",
  40. compiledExpr: "",
  41. statement: "定额基价人工费"
  42. },
  43. {
  44. ID: "4",
  45. code: "1.1.2",
  46. name: "定额人工单价(基价)调整",
  47. fieldName: "rationLabourFixed",
  48. dispExpr: "F3*(L-1)",
  49. expression: "@('3') * (L-1)",
  50. labourCoeID: 2,
  51. compiledExpr: "",
  52. statement: "定额基价人工费*[定额人工单价(基价)调整系数-1]",
  53. memo: "渝建发(2013)51"
  54. },
  55. {
  56. ID: "5",
  57. code: "1.2",
  58. name: "基价材料费",
  59. fieldName: "baseMaterial",
  60. dispExpr: "[定额基价材料费]",
  61. expression: "base('定额基价材料费')",
  62. compiledExpr: "",
  63. statement: "定额基价材料费"
  64. },
  65. {
  66. ID: "6",
  67. code: "1.3",
  68. name: "基价机械费",
  69. fieldName: "baseMachine",
  70. dispExpr: "F7+F9",
  71. expression: "@('7') + @('9')",
  72. compiledExpr: "",
  73. statement: "定额基价机械费+定额机上人工单价(基价)调整"
  74. },
  75. {
  76. ID: "7",
  77. code: "1.3.1",
  78. name: "定额基价机械费",
  79. fieldName: "rationBaseMachine",
  80. dispExpr: "[定额基价机械费]",
  81. expression: "base('定额基价机械费')",
  82. compiledExpr: "",
  83. statement: "定额基价机械费"
  84. },
  85. {
  86. ID: "8",
  87. code: "1.3.1.1",
  88. name: "其中:定额基价机上人工费",
  89. fieldName: "rationBaseMachineLabour",
  90. dispExpr: "[定额基价机上人工费]",
  91. expression: "base('定额基价机上人工费')",
  92. compiledExpr: "",
  93. statement: "定额基价机上人工费"
  94. },
  95. {
  96. ID: "9",
  97. code: "1.3.2",
  98. name: "定额机上人工单价(基价)调整",
  99. fieldName: "rationBaseMachineLabourFixed",
  100. dispExpr: "F8*(L-1)",
  101. expression: "@('8') * (L-1)",
  102. labourCoeID: 11,
  103. compiledExpr: "",
  104. statement: "定额基价机上人工费*[定额机上人工单价(基价)调整系数-1]"
  105. },
  106. {
  107. ID: "10",
  108. code: "1.4",
  109. name: "未计价材料费",
  110. fieldName: "unPriceMaterial",
  111. dispExpr: "[主材费]+[设备费]",
  112. expression: "base('主材费') + base('设备费')",
  113. compiledExpr: "",
  114. statement: "主材费+设备费"
  115. },
  116. {
  117. ID: "11",
  118. code: "2",
  119. name: "企业管理费",
  120. fieldName: "manageFee",
  121. dispExpr: "F3",
  122. feeRateID: 3,
  123. expression: "@('3')",
  124. compiledExpr: "",
  125. statement: "定额基价人工费",
  126. memo: "渝建发[2014]27号"
  127. },
  128. {
  129. ID: "12",
  130. code: "3",
  131. name: "利润",
  132. fieldName: "profit",
  133. dispExpr: "F3",
  134. feeRateID: 4,
  135. expression: "@('3')",
  136. compiledExpr: "",
  137. statement: "定额基价人工费"
  138. },
  139. {
  140. ID: "13",
  141. code: "4",
  142. name: "风险因素",
  143. fieldName: "risk",
  144. dispExpr: "F3",
  145. feeRateID: 5,
  146. expression: "@('3')",
  147. compiledExpr: "",
  148. statement: "定额基价人工费",
  149. memo: "同定额包干费"
  150. },
  151. {
  152. ID: "14",
  153. code: "5",
  154. name: "人材机价差",
  155. fieldName: "lmmDiff",
  156. dispExpr: "F15+F16+F17",
  157. expression: "@('15') + @('16') + @('17')",
  158. compiledExpr: "",
  159. statement: "人工费价差+材料费价差+机械费价差"
  160. },
  161. {
  162. ID: "15",
  163. code: "5.1",
  164. name: "人工费价差",
  165. fieldName: "labourDiff",
  166. dispExpr: "[人工费价差]",
  167. expression: "base('市场价格人工费') - base('定额基价人工费(调整后)')",
  168. compiledExpr: "",
  169. statement: "市场价格人工费-调整后的定额人工费(基价)"
  170. },
  171. {
  172. ID: "16",
  173. code: "5.2",
  174. name: "材料费价差",
  175. fieldName: "materialDiff",
  176. dispExpr: "[材料费价差]",
  177. expression: "base('市场价格材料费') - base('定额基价材料费(调整后)')",
  178. compiledExpr: "",
  179. statement: "市场价格材料费-定额基价材料费"
  180. },
  181. {
  182. ID: "17",
  183. code: "5.3",
  184. name: "机械费价差",
  185. fieldName: "machineDiff",
  186. dispExpr: "[机械费价差]",
  187. expression: "base('市场价格机械费') - base('定额基价机械费(调整后)')",
  188. compiledExpr: "",
  189. statement: "市场价格机械费-调整后的定额基价机械费(基价)"
  190. },
  191. {
  192. ID: "18",
  193. code: "6",
  194. name: "综合单价",
  195. fieldName: "common",
  196. dispExpr: "F1+F11+F12+F13+F14",
  197. expression: "@('1') + @('11') + @('12') + @('13') + @('14')",
  198. compiledExpr: "",
  199. statement: "基价直接工程费+企业管理费+利润+风险因素+人材机价差"
  200. }
  201. ]
  202. }
  203. ];
  204. let calcFeeRates = [
  205. {
  206. "ID" : 1,
  207. "ParentID" : null,
  208. "name" : "企业管理费",
  209. "rate" : null,
  210. "memo" : null
  211. },
  212. {
  213. "ID" : 2,
  214. "ParentID" : 1,
  215. "name" : "建筑工程",
  216. "rate" : null,
  217. "memo" : null
  218. },
  219. {
  220. "ID" : 3,
  221. "ParentID" : 2,
  222. "name" : "一类工程",
  223. "rate" : 16.03,
  224. "memo" : null
  225. },
  226. {
  227. "ID" : 4,
  228. "ParentID" : 2,
  229. "name" : "二类工程",
  230. "rate" : 14.95,
  231. "memo" : null
  232. },
  233. {
  234. "ID" : 5,
  235. "ParentID" : 2,
  236. "name" : "三类工程",
  237. "rate" : 12.47,
  238. "memo" : null
  239. },
  240. {
  241. "ID" : 6,
  242. "ParentID" : 2,
  243. "name" : "四类工程",
  244. "rate" : 9.3,
  245. "memo" : null
  246. },
  247. {
  248. "ID" : 7,
  249. "ParentID" : 1,
  250. "name" : "市政工程",
  251. "rate" : null,
  252. "memo" : null
  253. },
  254. {
  255. "ID" : 8,
  256. "ParentID" : 7,
  257. "name" : "一类工程",
  258. "rate" : 16.33,
  259. "memo" : null
  260. },
  261. {
  262. "ID" : 9,
  263. "ParentID" : 7,
  264. "name" : "二类工程",
  265. "rate" : 15,
  266. "memo" : null
  267. },
  268. {
  269. "ID" : 10,
  270. "ParentID" : 7,
  271. "name" : "三类工程",
  272. "rate" : 12.5,
  273. "memo" : null
  274. },
  275. {
  276. "ID" : 11,
  277. "ParentID" : 7,
  278. "name" : "四类工程",
  279. "rate" : 9.5,
  280. "memo" : null
  281. },
  282. {
  283. "ID" : 12,
  284. "ParentID" : 1,
  285. "name" : "机械土石方",
  286. "rate" : 15.5,
  287. "memo" : null
  288. },
  289. {
  290. "ID" : 13,
  291. "ParentID" : 1,
  292. "name" : "仿古建筑工程",
  293. "rate" : 12,
  294. "memo" : null
  295. },
  296. {
  297. "ID" : 14,
  298. "ParentID" : 1,
  299. "name" : "建筑修缮工程",
  300. "rate" : 12.47,
  301. "memo" : null
  302. },
  303. {
  304. "ID" : 15,
  305. "ParentID" : 1,
  306. "name" : "炉窑砌筑工程",
  307. "rate" : null,
  308. "memo" : null
  309. },
  310. {
  311. "ID" : 16,
  312. "ParentID" : 15,
  313. "name" : "一类工程",
  314. "rate" : 14.25,
  315. "memo" : null
  316. },
  317. {
  318. "ID" : 17,
  319. "ParentID" : 15,
  320. "name" : "二类工程",
  321. "rate" : 12.47,
  322. "memo" : null
  323. },
  324. {
  325. "ID" : 18,
  326. "ParentID" : 15,
  327. "name" : "三类工程",
  328. "rate" : 10.8,
  329. "memo" : null
  330. },
  331. {
  332. "ID" : 19,
  333. "ParentID" : 15,
  334. "name" : "四类工程",
  335. "rate" : null,
  336. "memo" : null
  337. },
  338. {
  339. "ID" : 20,
  340. "ParentID" : null,
  341. "name" : "规费",
  342. "rate" : null,
  343. "memo" : null
  344. },
  345. {
  346. "ID" : 21,
  347. "ParentID" : 20,
  348. "name" : "建筑工程",
  349. "rate" : 4.87,
  350. "memo" : null
  351. },
  352. {
  353. "ID" : 22,
  354. "ParentID" : 20,
  355. "name" : "市政工程",
  356. "rate" : 3.61,
  357. "memo" : null
  358. },
  359. {
  360. "ID" : 23,
  361. "ParentID" : 20,
  362. "name" : "机械土石方",
  363. "rate" : 2.15,
  364. "memo" : null
  365. },
  366. {
  367. "ID" : 24,
  368. "ParentID" : 20,
  369. "name" : "仿古建筑工程",
  370. "rate" : 2.84,
  371. "memo" : null
  372. },
  373. {
  374. "ID" : 25,
  375. "ParentID" : 20,
  376. "name" : "建筑修缮工程",
  377. "rate" : 2.84,
  378. "memo" : null
  379. },
  380. {
  381. "ID" : 26,
  382. "ParentID" : 20,
  383. "name" : "炉窑砌筑工程",
  384. "rate" : 3.61,
  385. "memo" : null
  386. },
  387. {
  388. "ID" : 27,
  389. "ParentID" : null,
  390. "name" : "利润",
  391. "rate" : null,
  392. "memo" : null
  393. },
  394. {
  395. "ID" : 28,
  396. "ParentID" : 27,
  397. "name" : "建筑工程",
  398. "rate" : null,
  399. "memo" : null
  400. },
  401. {
  402. "ID" : 29,
  403. "ParentID" : 28,
  404. "name" : "一类工程",
  405. "rate" : 8.73,
  406. "memo" : null
  407. },
  408. {
  409. "ID" : 30,
  410. "ParentID" : 28,
  411. "name" : "二类工程",
  412. "rate" : 6.94,
  413. "memo" : null
  414. }
  415. ];
  416. let calcLabourCoes = [
  417. {
  418. "ID" : 1,
  419. "ParentID" : null,
  420. "name" : "2006概算定额",
  421. "coe" : null
  422. },
  423. {
  424. "ID" : 2,
  425. "ParentID" : 1,
  426. "name" : "土石方人工",
  427. "coe" : 2.94
  428. },
  429. {
  430. "ID" : 3,
  431. "ParentID" : 1,
  432. "name" : "建筑、市政、维修人工",
  433. "coe" : 2.84
  434. },
  435. {
  436. "ID" : 4,
  437. "ParentID" : 1,
  438. "name" : "装饰人工",
  439. "coe" : 1
  440. },
  441. {
  442. "ID" : 5,
  443. "ParentID" : 1,
  444. "name" : "安装、机械人工",
  445. "coe" :2.58
  446. },
  447. {
  448. "ID" : 6,
  449. "ParentID" : 1,
  450. "name" : "仿古、园林绿化人工",
  451. "coe" :1
  452. },
  453. {
  454. "ID" : 7,
  455. "ParentID" : 1,
  456. "name" : "盾构用工",
  457. "coe" :1
  458. },
  459. {
  460. "ID" : 8,
  461. "ParentID" : null,
  462. "name" : "2008计价定额",
  463. "coe" :null
  464. },
  465. {
  466. "ID" : 9,
  467. "ParentID" : 8,
  468. "name" : "土石方人工",
  469. "coe" : 2.41
  470. },
  471. {
  472. "ID" : 10,
  473. "ParentID" : 8,
  474. "name" : "建筑、市政、维修人工",
  475. "coe" : 2.48
  476. },
  477. {
  478. "ID" : 11,
  479. "ParentID" : 8,
  480. "name" : "装饰人工",
  481. "coe" : 3.04
  482. },
  483. {
  484. "ID" : 12,
  485. "ParentID" : 8,
  486. "name" : "安装、机械人工",
  487. "coe" :2.39
  488. },
  489. {
  490. "ID" : 13,
  491. "ParentID" : 8,
  492. "name" : "仿古、园林绿化人工",
  493. "coe" :2.39
  494. },
  495. {
  496. "ID" : 14,
  497. "ParentID" : 8,
  498. "name" : "盾构用工",
  499. "coe" :1
  500. },
  501. {
  502. "ID" : 15,
  503. "ParentID" : null,
  504. "name" : "2011轨道定额",
  505. "coe" :null
  506. },
  507. {
  508. "ID" : 16,
  509. "ParentID" : 15,
  510. "name" : "土石方人工",
  511. "coe" : 1.51
  512. },
  513. {
  514. "ID" : 17,
  515. "ParentID" : 15,
  516. "name" : "建筑、市政、维修人工",
  517. "coe" : 1.55
  518. },
  519. {
  520. "ID" : 18,
  521. "ParentID" : 15,
  522. "name" : "装饰人工",
  523. "coe" : 1
  524. },
  525. {
  526. "ID" : 19,
  527. "ParentID" : 15,
  528. "name" : "安装、机械人工",
  529. "coe" :1.49
  530. },
  531. {
  532. "ID" : 20,
  533. "ParentID" : 15,
  534. "name" : "仿古、园林绿化人工",
  535. "coe" :1
  536. },
  537. {
  538. "ID" : 21,
  539. "ParentID" : 15,
  540. "name" : "盾构用工",
  541. "coe" :1.49
  542. }
  543. ];
  544. class RationProgram {
  545. constructor(project){
  546. this.project = project;
  547. this.calc = new Calculation();
  548. };
  549. compileAllTemps(){
  550. for (let calcTemplate of calcTemplates){
  551. this.calc.compile(calcTemplate, calcFeeRates, calcLabourCoes);
  552. };
  553. };
  554. compile(calcTemplate){
  555. this.calc.compile(calcTemplate, calcFeeRates, calcLabourCoes);
  556. };
  557. calculate(ration){
  558. ration.data.gljList = this.project.ration_glj.getGljArrByRation(ration.data.ID);
  559. this.calc.calculate(ration);
  560. };
  561. }