server.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import express from 'express'
  2. const app = express();
  3. // 使用中间件解析JSON格式的请求体
  4. app.use(express.json());
  5. import Service from './Service.js';
  6. import {copy} from './utils.js';
  7. import {handleBeizhu} from './editor.js';
  8. app.post('/api/transform', (req, res) => {
  9. let data = copy(req.body);
  10. Service.setQufei([{ "children": [{"children":[{
  11. "key": "1",
  12. "利润(%)": "",
  13. "名称": "",
  14. "备注": "",
  15. "工程类型": "",
  16. "工程类别": "",
  17. "管理费(%)": ""
  18. }]}]}])
  19. Service.setQufeiEntry("1")
  20. Service.processQingdanmingxi([{
  21. "主材费": "",
  22. "人工费": "",
  23. "利润": "",
  24. "单位": data['dw'],
  25. "合价": "",
  26. "名称": data['mc'],
  27. "备注": "",
  28. "序号": "1",
  29. "数量": data['sl'],
  30. "暂估价": "",
  31. "机械费": "",
  32. "清单编码": data['bianma'],
  33. "管理费": "",
  34. "综合人工工日": "",
  35. "综合单价": "",
  36. "计算规则": "",
  37. "设备费": "",
  38. "辅材费": "",
  39. "项目特征": data['tz'],
  40. "操作": "",
  41. "材料费": ""
  42. }])
  43. let result = copy(data['result'])
  44. delete data.result
  45. for (let i = 0; i < result.length; i++) {
  46. console.log(result[i][0])
  47. console.log(result[i][1])
  48. //console.log(JSON.parse(result[i][2]))
  49. let selected = data['fuzhu'][i][0]
  50. let selected2=[]
  51. for(let j = 0; j < selected.length; j++){
  52. selected2.push(selected[j].charCodeAt(0) - 64)
  53. }
  54. let fk = data['fuzhu'][i][1]
  55. let zk = data['fuzhu'][i][2]
  56. let zk2 = []
  57. for(let j = 0;j<zk.length;j++){
  58. zk2.push({
  59. 'id': j+1,
  60. 'key': j+1,
  61. '序号':j+1,
  62. '数量':1,
  63. '编号':zk[j][1],
  64. '说明':zk[j][2]
  65. })
  66. }
  67. let r = Service.changguidinge(JSON.parse(result[i][2]), "1")
  68. if (selected2.length>0){
  69. let detail = handleBeizhu(fk,r[2],selected2,zk2)
  70. Service.updateBeizhu(r[2],detail,selected2.map(x=>x.toString().concat('*1')))
  71. }
  72. let current = Service.current()[0]
  73. current = current['_children'].filter(x=>x['key']==r[2])[0]
  74. current = current['dercj']
  75. let shajiang = false
  76. for(let j=1;j<current.length;j++){
  77. if(current[j][2].includes('灰浆搅拌机'))shajiang=true;
  78. }
  79. if (shajiang){
  80. Service.handleYuban(r[2], ['2']);
  81. }
  82. let r_ = Service.updateShuliang(result[i][1], r[2])
  83. let hit = r_[1][0]['_children'].filter(x=>x['key']==r[2])[0]
  84. let dercj = copy(hit['dercj'])
  85. for(let j = 1; j < dercj.length; j++){
  86. let bianma = dercj[j][1]
  87. if (data['replace'].hasOwnProperty(bianma)){
  88. dercj[j][2] = data['replace'][bianma]
  89. }
  90. for(let k = 0; k < result[i][3].length;k++){
  91. let old_bianma = result[i][3][k]['bianma']
  92. let new_bianma = result[i][3][k]['new_bianma']
  93. let new_mc = result[i][3][k]['mc']
  94. let new_jg = result[i][3][k]['jg']
  95. if (old_bianma == bianma){
  96. dercj[j][1] = new_bianma
  97. dercj[j][2] = new_mc
  98. dercj[j][5] = new_jg
  99. }
  100. }
  101. }
  102. Service.updateDercj(r[2], dercj)
  103. }
  104. console.log(data['extra']);
  105. if (data['extra'].length >= 4) {
  106. Service.danxiangdinge("1", data['n'], data['extra'])
  107. }
  108. //console.log(Service.cache)
  109. res.status(200).send(Service.cache);
  110. });
  111. app.listen(3000, () => {
  112. console.log('Server is running on port 3000');
  113. });