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