service.py 100 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408
  1. import xml.etree.ElementTree as ET
  2. from typing import Union
  3. from fastapi import FastAPI
  4. import os
  5. import json
  6. import uuid
  7. import re
  8. from fastapi.middleware.cors import CORSMiddleware
  9. from pydantic import BaseModel
  10. import pandas as pd
  11. from numpy import float64
  12. def getDjcsDingercj(root, bh, bt, qdbm, debm):
  13. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  14. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  15. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  16. item = None
  17. for child in root:
  18. if child.tag == "Dxgcxx":
  19. for child1 in child:
  20. Dwgcbh = child1.attrib["Dwgcbh"]
  21. if Dwgcbh == bh:
  22. item = child1
  23. break
  24. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  25. Fywj = None
  26. for child in item:
  27. if child.tag == 'Csxm':
  28. Fywj= child
  29. break
  30. Rcjhz = None
  31. for child in item:
  32. if child.tag == 'Rcjhz':
  33. Rcjhz = child
  34. break
  35. kv = {}
  36. for entry in Rcjhz:
  37. kv[entry.attrib["RcjId"]]=entry
  38. container = None
  39. for child in Fywj:
  40. if child.tag == "DjCs":
  41. container = child
  42. break
  43. zimu = None
  44. for child in container:
  45. if child.attrib["Bm"] == qdbm:
  46. zimu = child
  47. break
  48. box = None
  49. if not zimu:
  50. return result
  51. for child in zimu:
  52. if child.tag == "Csxdezj":
  53. box = child
  54. break
  55. hlmx_parent = None
  56. for child in box:
  57. if child.attrib["Debm"] == debm:
  58. for grandchild in child:
  59. if grandchild.tag == "Csxdercjhl":
  60. hlmx_parent = grandchild
  61. for child in hlmx_parent:
  62. result.append([child.attrib["RcjId"],
  63. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  64. kv[child.attrib["RcjId"]].attrib["Mc"],
  65. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  66. kv[child.attrib["RcjId"]].attrib["Dw"],
  67. kv[child.attrib["RcjId"]].attrib["Dj"],
  68. kv[child.attrib["RcjId"]].attrib["Cd"],
  69. kv[child.attrib["RcjId"]].attrib["Gycs"],
  70. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  71. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  72. child.attrib["Rcjhl"], child.attrib["Rcjhj"], "",
  73. "", "", ""
  74. ])
  75. return result
  76. def getDingercj(root, bh, bt, qdbm, debm):
  77. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  78. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  79. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  80. item = None
  81. for child in root:
  82. if child.tag == "Dxgcxx":
  83. for child1 in child:
  84. Dwgcbh = child1.attrib["Dwgcbh"]
  85. if Dwgcbh == bh:
  86. item = child1
  87. break
  88. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  89. Fywj = None
  90. for child in item:
  91. if child.tag == 'Qdxm':
  92. Fywj= child
  93. break
  94. Rcjhz = None
  95. for child in item:
  96. if child.tag == 'Rcjhz':
  97. Rcjhz = child
  98. break
  99. kv = {}
  100. for entry in Rcjhz:
  101. kv[entry.attrib["RcjId"]]=entry
  102. container = None
  103. for child in Fywj:
  104. ##child is mx
  105. if child.tag == "QdBt":
  106. if child.attrib["Mc"] == bt:
  107. container = child
  108. break
  109. if not container:
  110. container = Fywj
  111. zimu = None
  112. for child in container:
  113. if child.attrib["Qdbm"] == qdbm:
  114. zimu = child
  115. break
  116. box = None
  117. if not zimu:
  118. return result
  119. for child in zimu:
  120. if child.tag == "Qdxdezj":
  121. box = child
  122. break
  123. hlmx_parent = None
  124. for child in box:
  125. if child.attrib["Debm"] == debm:
  126. for grandchild in child:
  127. if grandchild.tag == "Qdxdercjhl":
  128. hlmx_parent = grandchild
  129. for child in hlmx_parent:
  130. result.append([child.attrib["RcjId"],
  131. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  132. kv[child.attrib["RcjId"]].attrib["Mc"],
  133. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  134. kv[child.attrib["RcjId"]].attrib["Dw"],
  135. kv[child.attrib["RcjId"]].attrib["Dj"],
  136. kv[child.attrib["RcjId"]].attrib["Cd"],
  137. kv[child.attrib["RcjId"]].attrib["Gycs"],
  138. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  139. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  140. child.attrib["Rcjhl"], child.attrib["Rcjhj"], "",
  141. "", "", ""
  142. ])
  143. return result
  144. def getDjcsQingdanrcj(root, bh, bt, bm):
  145. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  146. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  147. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  148. item = None
  149. for child in root:
  150. if child.tag == "Dxgcxx":
  151. for child1 in child:
  152. Dwgcbh = child1.attrib["Dwgcbh"]
  153. if Dwgcbh == bh:
  154. item = child1
  155. break
  156. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  157. Fywj = None
  158. for child in item:
  159. if child.tag == 'Csxm':
  160. Fywj= child
  161. break
  162. hl_parent = None
  163. for child in Fywj:
  164. if child.tag == "DjCs":
  165. hl_parent = child
  166. Rcjhz = None
  167. for child in item:
  168. if child.tag == 'Rcjhz':
  169. Rcjhz = child
  170. break
  171. kv = {}
  172. for entry in Rcjhz:
  173. kv[entry.attrib["RcjId"]]=entry
  174. zimu = None
  175. for child in hl_parent:
  176. if child.attrib["Bm"] == bm:
  177. zimu = child
  178. break
  179. box = None
  180. if not zimu:
  181. return result
  182. for child in zimu:
  183. if child.tag == "Csxrcjhl":
  184. box = child
  185. break
  186. for child in box:
  187. result.append([child.attrib["RcjId"],
  188. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  189. kv[child.attrib["RcjId"]].attrib["Mc"],
  190. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  191. kv[child.attrib["RcjId"]].attrib["Dw"],
  192. kv[child.attrib["RcjId"]].attrib["Dj"],
  193. kv[child.attrib["RcjId"]].attrib["Cd"],
  194. kv[child.attrib["RcjId"]].attrib["Gycs"],
  195. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  196. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  197. child.attrib["Rcjhl"], child.attrib["Rcjhj"], child.attrib["Zgjbz"],
  198. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"]
  199. ])
  200. return result
  201. def getQingdanTuijian(bh, bt, bm):
  202. result = []
  203. try:
  204. all = pd.read_csv("QingDanAllInOne.csv")
  205. bm_ = int(bm) // 1000
  206. hit = all[all["qdbh"] == str(bm_)]
  207. for i in range(len(hit)):
  208. result.append({'ID': hit.iloc[i]["index"].item(), '定额编号': hit.iloc[i]["debh"], '工程量名称': hit.iloc[i]["gclmc"], '工作内容': hit.iloc[i]["work"]})
  209. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  210. finally:
  211. return result
  212. def getQingdanrcj(root, bh, bt, bm):
  213. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  214. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  215. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  216. item = None
  217. for child in root:
  218. if child.tag == "Dxgcxx":
  219. for child1 in child:
  220. Dwgcbh = child1.attrib["Dwgcbh"]
  221. if Dwgcbh == bh:
  222. item = child1
  223. break
  224. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  225. Fywj = None
  226. for child in item:
  227. if child.tag == 'Qdxm':
  228. Fywj= child
  229. break
  230. Rcjhz = None
  231. for child in item:
  232. if child.tag == 'Rcjhz':
  233. Rcjhz = child
  234. break
  235. kv = {}
  236. for entry in Rcjhz:
  237. kv[entry.attrib["RcjId"]]=entry
  238. container = None
  239. for child in Fywj:
  240. ##child is mx
  241. if child.tag == "QdBt":
  242. if child.attrib["Mc"] == bt:
  243. container = child
  244. break
  245. if not container:
  246. container = Fywj
  247. zimu = None
  248. for child in container:
  249. if child.attrib["Qdbm"] == bm:
  250. zimu = child
  251. break
  252. box = None
  253. if not zimu:
  254. return result
  255. for child in zimu:
  256. if child.tag == "Qdxrcjhl":
  257. box = child
  258. break
  259. for child in box:
  260. result.append([child.attrib["RcjId"],
  261. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  262. kv[child.attrib["RcjId"]].attrib["Mc"],
  263. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  264. kv[child.attrib["RcjId"]].attrib["Dw"],
  265. kv[child.attrib["RcjId"]].attrib["Dj"],
  266. kv[child.attrib["RcjId"]].attrib["Cd"],
  267. kv[child.attrib["RcjId"]].attrib["Gycs"],
  268. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  269. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  270. child.attrib["Rcjhl"], child.attrib["Rcjhj"], child.attrib["Zgjbz"],
  271. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"]
  272. ])
  273. return result
  274. def getDjcs(root, id):
  275. result = []
  276. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  277. item = None
  278. for child in root:
  279. if child.tag == "Dxgcxx":
  280. for child1 in child:
  281. Dwgcbh = child1.attrib["Dwgcbh"]
  282. if Dwgcbh == id:
  283. item = child1
  284. break
  285. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  286. Fywj = None
  287. for child in item:
  288. if child.tag == 'Csxm':
  289. Fywj= child
  290. break
  291. Djcs_parent = None
  292. for child in Fywj:
  293. if child.tag == 'DjCs':
  294. Djcs_parent = child
  295. break
  296. for child in Djcs_parent:
  297. ##child is mx {
  298. result.append({
  299. "序号": child.attrib["Xh"], "清单编码": child.attrib["Bm"], "名称" : child.attrib["Mc"],
  300. "项目特征" : child.attrib["Xmtz"],
  301. "计算规则" : child.attrib["Jsgz"], "单位" : child.attrib["Dw"], "数量" : child.attrib["Sl"],
  302. "综合单价" : child.attrib["Zhdj"], "合价" : child.attrib["Zhhj"], "人工费" : child.attrib["Rgf"],
  303. "主材费" : child.attrib["Zcf"],
  304. "设备费" : child.attrib["Sbf"], "辅材费" : child.attrib["Fcf"], "材料费" : child.attrib["Clf"],
  305. "机械费" : child.attrib["Jxf"], "管理费" : child.attrib["Glf"], "利润" : child.attrib["Lr"],
  306. "暂估价" : child.attrib["Zgj"], "综合人工工日" : child.attrib["Zgr"] })
  307. __children = []
  308. zj_parent = None
  309. for grandchild in child:
  310. if grandchild.tag == "Csxdezj":
  311. zj_parent = grandchild
  312. if zj_parent:
  313. for entry in zj_parent:
  314. __children.append({
  315. "序号": None, "清单编码": entry.attrib["Debm"], "名称" : entry.attrib["Mc"],
  316. "项目特征" : None,
  317. "计算规则" : None, "单位" : entry.attrib["Dw"], "数量" : entry.attrib["DwQdSl"],
  318. "综合单价" : entry.attrib["Dj"], "合价" : entry.attrib["Hj"], "人工费" : entry.attrib["Rgf"],
  319. "主材费" : entry.attrib["Zcf"],
  320. "设备费" : entry.attrib["Sbf"], "辅材费" : entry.attrib["Fcf"], "材料费" : entry.attrib["Clf"],
  321. "机械费" : entry.attrib["Jxf"], "管理费" : entry.attrib["Glf"], "利润" : entry.attrib["Lr"],
  322. "暂估价" : None, "综合人工工日" : None })
  323. if len(__children) > 0:
  324. result[-1]["__children"] = __children
  325. return result
  326. def getQdmx(root, bh, bt):
  327. result = []
  328. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费", "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  329. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  330. item = None
  331. for child in root:
  332. if child.tag == "Dxgcxx":
  333. for child1 in child:
  334. Dwgcbh = child1.attrib["Dwgcbh"]
  335. if Dwgcbh == bh:
  336. item = child1
  337. break
  338. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  339. Fywj = None
  340. for child in item:
  341. if child.tag == 'Qdxm':
  342. Fywj= child
  343. break
  344. container = None
  345. for child in Fywj:
  346. ##child is mx
  347. if child.tag == "QdBt":
  348. if child.attrib["Mc"] == bt:
  349. count = 0
  350. for grandchild in child:
  351. count = count + 1
  352. if count > 0:
  353. container = child
  354. break
  355. if container == None:
  356. container = Fywj
  357. for child in container:
  358. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费",
  359. # "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  360. result.append({
  361. "操作" : "",
  362. "序号": child.attrib["Xh"], "清单编码" : child.attrib["Qdbm"], "名称" : child.attrib["Mc"],"项目特征" : child.attrib["Xmtz"],
  363. "计算规则" : child.attrib["Jsgz"],
  364. "单位" : child.attrib["Dw"],
  365. "数量": child.attrib["Sl"],
  366. "综合单价" : child.attrib["Zhdj"],
  367. "合价" : child.attrib["Zhhj"],
  368. "人工费": child.attrib["Rgf"],
  369. "主材费" : child.attrib["Zcf"],
  370. "设备费": child.attrib["Sbf"],
  371. "辅材费": child.attrib["Fcf"],
  372. "材料费" : child.attrib["Clf"],
  373. "机械费" : child.attrib["Jxf"],
  374. "管理费": child.attrib["Glf"],
  375. "利润": child.attrib["Lr"],
  376. "暂估价" : child.attrib["Zgj"],
  377. "综合人工工日" : child.attrib["Zgr"],
  378. "备注" : child.attrib["Bz"]}
  379. )
  380. for child_zj in child:
  381. if child_zj.tag == "Qdxdezj":
  382. for child_mx in child_zj:
  383. if child_mx.tag == "QdxdezjMx":
  384. parent = result[-1]
  385. if "__children" in parent:
  386. parent["__children"].append({
  387. "操作" : "",
  388. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  389. "计算规则" : None,
  390. "单位" : child_mx.attrib["Dw"],
  391. "数量": child_mx.attrib["DwQdSl"],
  392. "综合单价" : child_mx.attrib["Dj"],
  393. "合价" : child_mx.attrib["Hj"],
  394. "人工费": child_mx.attrib["Rgf"],
  395. "主材费" : child_mx.attrib["Zcf"],
  396. "设备费": child_mx.attrib["Sbf"],
  397. "辅材费": child_mx.attrib["Fcf"],
  398. "材料费" : child_mx.attrib["Clf"],
  399. "机械费" : child_mx.attrib["Jxf"],
  400. "管理费": child_mx.attrib["Glf"],
  401. "利润": child_mx.attrib["Lr"],
  402. "暂估价" : None,
  403. "综合人工工日" : None,
  404. "备注" : None}
  405. )
  406. else:
  407. parent["__children"] = [{
  408. "操作" : "",
  409. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  410. "计算规则" : None,
  411. "单位" : child_mx.attrib["Dw"],
  412. "数量": child_mx.attrib["DwQdSl"],
  413. "综合单价" : child_mx.attrib["Dj"],
  414. "合价" : child_mx.attrib["Hj"],
  415. "人工费": child_mx.attrib["Rgf"],
  416. "主材费" : child_mx.attrib["Zcf"],
  417. "设备费": child_mx.attrib["Sbf"],
  418. "辅材费": child_mx.attrib["Fcf"],
  419. "材料费" : child_mx.attrib["Clf"],
  420. "机械费" : child_mx.attrib["Jxf"],
  421. "管理费": child_mx.attrib["Glf"],
  422. "利润": child_mx.attrib["Lr"],
  423. "暂估价" : None,
  424. "综合人工工日" : None,
  425. "备注" : None}]
  426. return result
  427. def getQdmx_default(root, bh, bt):
  428. result = []
  429. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费", "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  430. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  431. item = None
  432. for child in root:
  433. if child.tag == "Dxgcxx":
  434. for child1 in child:
  435. Dwgcbh = child1.attrib["Dwgcbh"]
  436. if Dwgcbh == bh:
  437. item = child1
  438. break
  439. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  440. Fywj = None
  441. for child in item:
  442. if child.tag == 'Qdxm':
  443. Fywj= child
  444. break
  445. container = None
  446. for child in Fywj:
  447. ##child is mx
  448. if child.tag == "Qdmx":
  449. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费",
  450. # "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  451. result.append({
  452. "操作" : "",
  453. "序号": child.attrib["Xh"], "清单编码" : child.attrib["Qdbm"], "名称" : child.attrib["Mc"],"项目特征" : child.attrib["Xmtz"],
  454. "计算规则" : child.attrib["Jsgz"],
  455. "单位" : child.attrib["Dw"],
  456. "数量": child.attrib["Sl"],
  457. "综合单价" : child.attrib["Zhdj"],
  458. "合价" : child.attrib["Zhhj"],
  459. "人工费": child.attrib["Rgf"],
  460. "主材费" : child.attrib["Zcf"],
  461. "设备费": child.attrib["Sbf"],
  462. "辅材费": child.attrib["Fcf"],
  463. "材料费" : child.attrib["Clf"],
  464. "机械费" : child.attrib["Jxf"],
  465. "管理费": child.attrib["Glf"],
  466. "利润": child.attrib["Lr"],
  467. "暂估价" : child.attrib["Zgj"],
  468. "综合人工工日" : child.attrib["Zgr"],
  469. "备注" : child.attrib["Bz"]}
  470. )
  471. for child_zj in child:
  472. if child_zj.tag == "Qdxdezj":
  473. for child_mx in child_zj:
  474. if child_mx.tag == "QdxdezjMx":
  475. parent = result[-1]
  476. if "__children" in parent:
  477. parent["__children"].append({
  478. "操作" : "",
  479. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  480. "计算规则" : None,
  481. "单位" : child_mx.attrib["Dw"],
  482. "数量": child_mx.attrib["DwQdSl"],
  483. "综合单价" : child_mx.attrib["Dj"],
  484. "合价" : child_mx.attrib["Hj"],
  485. "人工费": child_mx.attrib["Rgf"],
  486. "主材费" : child_mx.attrib["Zcf"],
  487. "设备费": child_mx.attrib["Sbf"],
  488. "辅材费": child_mx.attrib["Fcf"],
  489. "材料费" : child_mx.attrib["Clf"],
  490. "机械费" : child_mx.attrib["Jxf"],
  491. "管理费": child_mx.attrib["Glf"],
  492. "利润": child_mx.attrib["Lr"],
  493. "暂估价" : None,
  494. "综合人工工日" : None,
  495. "备注" : None}
  496. )
  497. else:
  498. parent["__children"] = [{
  499. "操作" : "",
  500. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  501. "计算规则" : None,
  502. "单位" : child_mx.attrib["Dw"],
  503. "数量": child_mx.attrib["DwQdSl"],
  504. "综合单价" : child_mx.attrib["Dj"],
  505. "合价" : child_mx.attrib["Hj"],
  506. "人工费": child_mx.attrib["Rgf"],
  507. "主材费" : child_mx.attrib["Zcf"],
  508. "设备费": child_mx.attrib["Sbf"],
  509. "辅材费": child_mx.attrib["Fcf"],
  510. "材料费" : child_mx.attrib["Clf"],
  511. "机械费" : child_mx.attrib["Jxf"],
  512. "管理费": child_mx.attrib["Glf"],
  513. "利润": child_mx.attrib["Lr"],
  514. "暂估价" : None,
  515. "综合人工工日" : None,
  516. "备注" : None}]
  517. return result
  518. def getQdxm_addition(root, id):
  519. result = []
  520. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  521. item = None
  522. for child in root:
  523. if child.tag == "Dxgcxx":
  524. for child1 in child:
  525. Dwgcbh = child1.attrib["Dwgcbh"]
  526. if Dwgcbh == id:
  527. item = child1
  528. break
  529. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  530. Fywj = None
  531. for child in item:
  532. if child.tag == 'Qdxm':
  533. Fywj= child
  534. break
  535. for child in Fywj:
  536. ##child is mx
  537. if child.tag == "QdBt":
  538. count = 0
  539. for grandchild in child:
  540. count = count + 1
  541. if count > 0:
  542. result.append({'Bz': child.attrib["Bz"], 'Je': child.attrib['Je'], 'Mc': child.attrib['Mc'], 'Xh': child.attrib['Xh'], 'Zgj': child.attrib['Zgj']})
  543. return result
  544. def getQdxm(root, id):###qdxm下面既有qdmx,也有qdbt,qdbt可能为空
  545. result = []
  546. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  547. item = None
  548. for child in root:
  549. if child.tag == "Dxgcxx":
  550. for child1 in child:
  551. Dwgcbh = child1.attrib["Dwgcbh"]
  552. if Dwgcbh == id:
  553. item = child1
  554. break
  555. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  556. Fywj = None
  557. for child in item:
  558. if child.tag == 'Qdxm':
  559. Fywj= child
  560. break
  561. for child in Fywj:
  562. ##child is mx
  563. if child.tag == 'Qdmx':
  564. if 'Default' in result:
  565. pass
  566. else:
  567. result.append('Default')
  568. if child.tag == "QdBt":
  569. count = 0
  570. for grandchild in child:
  571. count = count + 1
  572. if count > 0:
  573. result.append(child.attrib["Mc"])
  574. return result
  575. def getZjcs(root, id):
  576. result = []
  577. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  578. item = None
  579. for child in root:
  580. if child.tag == "Dxgcxx":
  581. for child1 in child:
  582. Dwgcbh = child1.attrib["Dwgcbh"]
  583. if Dwgcbh == id:
  584. item = child1
  585. break
  586. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  587. Fywj = None
  588. for child in item:
  589. if child.tag == 'Csxm':
  590. Fywj= child
  591. break
  592. Zjcs_parent = None
  593. for child in Fywj:
  594. if child.tag == 'ZjCs':
  595. Zjcs_parent = child
  596. break
  597. for child in Zjcs_parent:
  598. ##child is mx {
  599. result.append({
  600. "序号" : child.attrib["Xh"], "清单编码": child.attrib["Bm"], "名称" : child.attrib["Mc"],
  601. "计算基数" : child.attrib["Js"],
  602. "计算基础" : child.attrib["Jsjc"], "费率" : child.attrib["Fl"],
  603. "金额" : child.attrib["Je"], "项目类别" : child.attrib["Xmlb"]})
  604. __children = []
  605. for grandchild in child:
  606. __children.append({
  607. "序号" : None, "清单编码": None, "名称" : grandchild.attrib["Mc"],
  608. "计算基数" : grandchild.attrib["Js"],
  609. "计算基础" : grandchild.attrib["Jsjc"], "费率" : grandchild.attrib["Fl"],
  610. "金额" : grandchild.attrib["Je"], "项目类别" : grandchild.attrib["Xmlb"]})
  611. if len(__children) > 0:
  612. result[-1]["__children"] = __children
  613. return result
  614. def getZcbfwf(root, id):
  615. result = []
  616. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  617. item = None
  618. for child in root:
  619. if child.tag == "Dxgcxx":
  620. for child1 in child:
  621. Dwgcbh = child1.attrib["Dwgcbh"]
  622. if Dwgcbh == id:
  623. item = child1
  624. break
  625. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  626. Fywj = None
  627. for child in item:
  628. if child.tag == 'Zcbfwf':
  629. Fywj= child
  630. break
  631. for child in Fywj:
  632. result.append(
  633. {'序号': child.attrib["Xh"],
  634. "名称" : child.attrib["Mc"], "项目价值" : child.attrib["Xmjz"], "服务内容" :child.attrib["Fwnr"], "计算基础" :child.attrib["Jsjc"],
  635. "费率" :child.attrib["Fl"], "金额" :child.attrib["Je"]}
  636. )
  637. return result
  638. def getRcjhz(root, id):
  639. result = [[ "ID", "编码", "名称", "规格型号", "单位", "数量", "单价", "合价", "产地",
  640. "供应厂商", "人材机类别", "主要材料标志", "主材标志", "设备标志", "甲供标志", "暂估价标志"]]
  641. for child in root:
  642. if child.tag == "Dxgcxx":
  643. for child1 in child:
  644. Dwgcbh = child1.attrib["Dwgcbh"]
  645. if Dwgcbh == id:
  646. item = child1
  647. break
  648. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  649. Fywj = None
  650. for child in item:
  651. if child.tag == 'Rcjhz':
  652. Fywj= child
  653. break
  654. for child in Fywj:
  655. result.append(
  656. [
  657. child.attrib["RcjId"], child.attrib["RcjBm"], child.attrib["Mc"], child.attrib["Ggxh"],
  658. child.attrib["Dw"], child.attrib["Sl"], child.attrib["Dj"], child.attrib["Hj"],
  659. child.attrib["Cd"], child.attrib["Gycs"], child.attrib["Rcjlb"],
  660. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"], child.attrib["Jgbz"],
  661. child.attrib["Zgjbz"]]
  662. )
  663. return result
  664. def getFbrgycl(root, id):
  665. result = []
  666. for child in root:
  667. if child.tag == "Dxgcxx":
  668. for child1 in child:
  669. Dwgcbh = child1.attrib["Dwgcbh"]
  670. if Dwgcbh == id:
  671. item = child1
  672. break
  673. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  674. Fywj = None
  675. for child in item:
  676. if child.tag == 'Fbrgycl':
  677. Fywj= child
  678. break
  679. for child in Fywj:
  680. result.append(
  681. {'序号': child.attrib["Xh"],
  682. 'ID': child.attrib["RcjId"], '材料编号': child.attrib["Clbh"], '名称': child.attrib["Mc"], '规格型号': child.attrib["Ggxh"],
  683. '单位': child.attrib["Dw"], '数量': child.attrib["Sl"], '单价': child.attrib["Dj"], '合价': child.attrib["Hj"], '交货方式': child.attrib["Jhfs"],
  684. '送达地点': child.attrib["Sddd"], '备注': child.attrib["Bz"]}
  685. )
  686. return result
  687. def getJrg(root, id):
  688. result = []
  689. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  690. item = None
  691. for child in root:
  692. if child.tag == "Dxgcxx":
  693. for child1 in child:
  694. Dwgcbh = child1.attrib["Dwgcbh"]
  695. if Dwgcbh == id:
  696. item = child1
  697. break
  698. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  699. Fywj = None
  700. for child in item:
  701. if child.tag == 'Jrg':
  702. Fywj= child
  703. break
  704. for child in Fywj:
  705. result.append(
  706. {'序号': child.attrib["Xh"],
  707. '名称': child.attrib["Mc"], '金额': child.attrib["Je"], '类别': child.attrib["Lb"]}
  708. )
  709. return result
  710. def getZlje(root, id):
  711. result = []
  712. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  713. item = None
  714. for child in root:
  715. if child.tag == "Dxgcxx":
  716. for child1 in child:
  717. Dwgcbh = child1.attrib["Dwgcbh"]
  718. if Dwgcbh == id:
  719. item = child1
  720. break
  721. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  722. Fywj = None
  723. for child in item:
  724. if child.tag == 'Zlje':
  725. Fywj= child
  726. break
  727. for child in Fywj:
  728. result.append(
  729. {'序号': child.attrib["Xh"],
  730. '名称': child.attrib["Mc"], '单位': child.attrib["Dw"], '暂定金额': child.attrib["Zdje"], '备注': child.attrib["Bz"]}
  731. )
  732. return result
  733. def getZygczgj(root, id):
  734. result = []
  735. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  736. item = None
  737. for child in root:
  738. if child.tag == "Dxgcxx":
  739. for child1 in child:
  740. Dwgcbh = child1.attrib["Dwgcbh"]
  741. if Dwgcbh == id:
  742. item = child1
  743. break
  744. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  745. Fywj = None
  746. for child in item:
  747. if child.tag == 'Zygczg':
  748. Fywj= child
  749. break
  750. for child in Fywj:
  751. result.append(
  752. {'序号': child.attrib["Xh"],
  753. '名称': child.attrib["Mc"], '工程内容': child.attrib["Gcnr"], '金额': child.attrib["Je"], '备注': child.attrib["Bz"]}
  754. )
  755. return result
  756. def getQtxm(root, id):
  757. result = []
  758. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  759. item = None
  760. for child in root:
  761. if child.tag == "Dxgcxx":
  762. for child1 in child:
  763. Dwgcbh = child1.attrib["Dwgcbh"]
  764. if Dwgcbh == id:
  765. item = child1
  766. break
  767. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  768. Fywj = None
  769. for child in item:
  770. if child.tag == 'Qtxm':
  771. Fywj= child
  772. break
  773. for child in Fywj:
  774. ##child is mx
  775. xh = child.attrib["Xh"]
  776. if "." in xh:
  777. count = 0
  778. for entry in xh:
  779. if entry == ".":
  780. count = count + 1
  781. if count == 1:
  782. parent = result[-1]
  783. if "__children" in parent:
  784. children = parent["__children"]
  785. children.append(
  786. {"序号":xh, "名称": child.attrib["Mc"],
  787. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}
  788. )
  789. else:
  790. parent["__children"] = [
  791. {"序号":xh, "名称": child.attrib["Mc"],
  792. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}]
  793. else:
  794. result.append(
  795. {"序号":xh, "名称": child.attrib["Mc"],
  796. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}
  797. )
  798. return result
  799. def getGfsj(root, id):
  800. result = []
  801. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  802. item = None
  803. for child in root:
  804. if child.tag == "Dxgcxx":
  805. for child1 in child:
  806. Dwgcbh = child1.attrib["Dwgcbh"]
  807. if Dwgcbh == id:
  808. item = child1
  809. break
  810. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  811. Fywj = None
  812. for child in item:
  813. if child.tag == 'Gfsj':
  814. Fywj= child
  815. break
  816. for child in Fywj:
  817. ##child is mx
  818. xh = child.attrib["Xh"]
  819. if "." in xh:
  820. count = 0
  821. for entry in xh:
  822. if entry == ".":
  823. count = count + 1
  824. if count == 1:
  825. parent = result[-1]
  826. if "__children" in parent:
  827. children = parent["__children"]
  828. children.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  829. else:
  830. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]}]
  831. elif count == 2:
  832. parent = result[-1]
  833. if "__children" in parent:
  834. parent = parent["__children"][-1]
  835. print(parent)
  836. if "__children" in parent:
  837. children = parent["__children"]
  838. children.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  839. else:
  840. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]}]
  841. else:
  842. ###["序号", "名称", "取费基数", "计算基础", "金额", "类别"]);
  843. result.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  844. return result
  845. def getBjhz(root, id):
  846. print(root)
  847. print(id)
  848. result = []
  849. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  850. item = None
  851. for child in root:
  852. if child.tag == "Dxgcxx":
  853. for child1 in child:
  854. Dwgcbh = child1.attrib["Dwgcbh"]
  855. if Dwgcbh == id:
  856. item = child1
  857. break
  858. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  859. print(item)
  860. Fywj = None
  861. for child in item:
  862. if child.tag == 'Fywj':
  863. Fywj= child
  864. break
  865. for child in Fywj:
  866. ##child is mx
  867. xh = child.attrib["Xh"]
  868. if "." in xh:
  869. count = 0
  870. for entry in xh:
  871. if entry == ".":
  872. count = count + 1
  873. if count == 1:
  874. parent = result[-1]
  875. if "__children" in parent:
  876. children = parent["__children"]
  877. children.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  878. else:
  879. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]}]
  880. elif count == 2:
  881. parent = result[-1]
  882. if "__children" in parent:
  883. parent = parent["__children"][-1]
  884. print(parent)
  885. if "__children" in parent:
  886. children = parent["__children"]
  887. children.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  888. else:
  889. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]}]
  890. else:
  891. ###"序号", "名称", "金额", "暂估价", "类别"]
  892. result.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"],
  893. "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  894. return result
  895. def processDes(dataframe, from_, end, level):
  896. result = []
  897. for i in range(from_, end):
  898. item = dataframe.iloc[i]
  899. fbcch = str(item['fbcch'])
  900. if fbcch == str(level):
  901. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["zjbt"]), "title": str(item["zjbt"])}
  902. next = i + 1
  903. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  904. next = next + 1
  905. entry["children"] = processDes(dataframe, i + 1, next, level + 1)
  906. result.append(entry)
  907. return result
  908. def processPbs(dataframe, from_, end, level):
  909. result = []
  910. for i in range(from_, end):
  911. item = dataframe.iloc[i]
  912. fbcch = str(item['fbcch'])
  913. if fbcch == str(level):
  914. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["flmc"]),"title": str(item["flmc"]), "data": item["pblbh"]}
  915. next = i + 1
  916. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  917. next = next + 1
  918. entry["children"] = processPbs(dataframe, i + 1, next, level + 1)
  919. result.append(entry)
  920. return result
  921. def getCankao():
  922. tree = ET.parse('de/DeData_Fl.xml')
  923. root = tree.getroot()
  924. JSFF = None
  925. CsFl = None
  926. result = []
  927. for child in root:
  928. if child.tag == "JJFF":
  929. for grandchild in child:
  930. if grandchild.tag == 'JSFF':
  931. JSFF = grandchild
  932. for child in JSFF:
  933. if child.attrib['Markup'] == '1':
  934. for grandchild in child:
  935. if grandchild.tag == 'CsFl':
  936. CsFl = grandchild
  937. for child in CsFl:
  938. result.append({'工程类型': child.attrib['Gclx'], '名称': child.attrib['Mc'], '计算基础': child.attrib['Jsjc'],
  939. '参考费率': child.attrib['CkFl'], '地区': child.attrib['Dq'], '备注': child.attrib['Bz']})
  940. return result
  941. def getDes(value):
  942. if value == 10:
  943. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  944. elif value == 20:
  945. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  946. elif value == 30:
  947. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  948. elif value == 40:
  949. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  950. elif value == 50:
  951. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  952. else:
  953. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  954. length = len(shu)
  955. return processDes(shu, 1, length, 2)
  956. def getPbs(value):
  957. if value == 10:
  958. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  959. else:
  960. shu = pd.read_csv("de/sz/JD_PeiBiFLB.csv")
  961. length = len(shu)
  962. return processPbs(shu, 0, length, 1)
  963. def read_singledexilie_azfy(debh):
  964. id = "None"
  965. if "-F1" in debh:
  966. id = "2076"
  967. elif "-F2" in debh:
  968. id = "2077"
  969. elif "-F3" in debh:
  970. id = "2078"
  971. elif "-F4" in debh:
  972. id = "2079"
  973. elif "-F5" in debh:
  974. if '4-F5' in debh:
  975. id = "2081"
  976. elif '5-F5' in debh:
  977. id = '2082'
  978. elif '7-F5' in debh:
  979. id = '2083'
  980. elif '9-F5' in debh:
  981. id = '2084'
  982. elif '10-F5' in debh:
  983. id = '2085'
  984. elif '11-F5' in debh:
  985. id = '2086'
  986. elif "-F6" in debh:
  987. id = "2087"
  988. r_debh = debh.split("#")[0]
  989. if len(debh.split("#")) == 1:
  990. return json.dumps({
  991. "reverse": id,
  992. "rgde": [],
  993. "jxde": [],
  994. "clde": [],
  995. "actual_zhuanye": 30,
  996. "bz_selected": {"BZBH": {}},
  997. "bz_selected2": {"BZBH": {}}
  998. }, ensure_ascii=False)
  999. gclmc = debh.split("#")[1]
  1000. return json.dumps({
  1001. "reverse": id,
  1002. "DEBH": {"111": r_debh},
  1003. "GCLMC": {"111": gclmc},
  1004. "DW": {"111": '项'},
  1005. "rgde": [],
  1006. "jxde": [],
  1007. "clde": [],
  1008. "actual_zhuanye": 30,
  1009. "bz_selected": {"BZBH": {}},
  1010. "bz_selected2": {"BZBH": {}}
  1011. }, ensure_ascii=False)
  1012. def getDeXilie_azfy(value, id):
  1013. if int(id) == 2075 or int(id) == 2080:
  1014. return "{\"Unnamed: 0\":{},\"id\":{},\"DEBH\":{},\"GCLMC\":{},\"GCLGG\":{},\"GCLRGR\":{},\"GCLCLF\":{},\"GCLJXF\":{},\"GCLRGF\":{},\"GCLGLF\":{},\"GLFFL\":{},\"GCLLR\":{},\"LRFL\":{},\"PBSL\":{},\"GCLJJ\":{},\"GCLSJDJ\":{},\"PBBH\":{},\"GCPBHJ\":{},\"DW\":{},\"PBDJ\":{},\"PBBHM\":{},\"GCLCLF1\":{},\"THMC\":{},\"YSDELBH\":{},\"THSL\":{},\"GLDE\":{},\"BZBH\":{},\"rglxh\":{},\"zhxs\":{},\"zmsm\":{},\"is_lock\":{},\"dejb\":{},\"sptfl\":{},\"work\":{},\"zhiyin\":{},\"qfbz\":{},\"ischaogao\":{},\"zmlx\":{},\"BH1\":{},\"BH2\":{},\"mcxz\":{},\"DeId\":{}}"
  1015. if int(id) == 2076:
  1016. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项", "项", "项", "项", "项", "项"],
  1017. 'DEBH': ['2-F1', '2-F1', '3-F1', '3-F1', '4-F1',
  1018. '5-F1', '6-F1', '7-F1', '8-F1', '9-F1', '10-F1', '11-F1', '11-F1', '11-F1', '11-F1', '11-F1'],
  1019. "GCLMC": ["第二册第1-5章(定额2-1~2-390)", "第二册第6章(定额2-391~2-9999)", "第三册静置设备制作(定额3-1~3-615)",
  1020. "第三册除静置设备制作以外(定额3-616~3-9999)", "第四册",
  1021. "第五册", "第六册", "第七册", "第八册", "第九册", "第十册",
  1022. "第十一册刷油工程(定额11-51~11-329)",
  1023. "第十一册防腐蚀工程(定额11-330~11-1689)", "第十一册绝热工程(定额11-1690~11-2327)", "第十一册除锈工程(定额11-1~11-50)刷油工程", "第十一册除锈工程(定额11-1~11-50)防腐蚀工程"],
  1024. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1025. df = pd.DataFrame(data)
  1026. return df.to_json(force_ascii=False)
  1027. if int(id) == 2077:
  1028. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项','项','项',
  1029. '项','项','项','项','项','项','项','项','项','项',
  1030. '项','项','项',
  1031. '项','项', "项",'项','项','项','项', "项",'项', "项"],
  1032. 'DEBH': ['1-F2', '1-F2','1-F2','1-F2','1-F2','1-F2','1-F2','1-F2','1-F2','1-F2','1-F2','1-F2',
  1033. '4-F2', '5-F2', '5-F2', '5-F2','6-F2',
  1034. '7-F2', '9-F2','9-F2','9-F2','9-F2', '10-F2','10-F2','10-F2','10-F2',
  1035. '11-F2','11-F2','11-F2','11-F2', '11-F2','11-F2','11-F2' ],
  1036. "GCLMC": ["第一册第1-6章(定额1-1~1-571)10-15m",
  1037. "第一册第1-6章(定额1-1~1-571)15-20m",
  1038. "第一册第1-6章(定额1-1~1-571)20-25m",
  1039. "第一册第1-6章(定额1-1~1-571)25-30m",
  1040. "第一册第1-6章(定额1-1~1-571)30-40m",
  1041. "第一册第1-6章(定额1-1~1-571)40m以上",
  1042. "第一册第8-14章(定额1-672~1-9999)10-15m",
  1043. "第一册第8-14章(定额1-672~1-9999)15-20m",
  1044. "第一册第8-14章(定额1-672~1-9999)20-25m",
  1045. "第一册第8-14章(定额1-672~1-9999)25-30m",
  1046. "第一册第8-14章(定额1-672~1-9999)30-40m",
  1047. "第一册第8-14章(定额1-672~1-9999)40m以上",
  1048. "第四册",
  1049. "第五册5m以上到10m以内",
  1050. "第五册10-20m",
  1051. "第五册20m以上",
  1052. "第六册", "第七册",
  1053. "第九册5m以上到8m以内",
  1054. "第九册8-12m",
  1055. "第九册12-16m",
  1056. "第九册16-20m",
  1057. "第十册3.6-8m以内",
  1058. "第十册8-12m以内",
  1059. "第十册12-16m以内",
  1060. "第十册16-20m",
  1061. "第十一册6-20m",
  1062. "第十一册20-30m",
  1063. "第十一册30-40m",
  1064. "第十一册40-50m",
  1065. "第十一册50-60m",
  1066. "第十一册60-70m",
  1067. "第十一册80m以上",
  1068. ],
  1069. "GCLSJDJ": ["0", "0", '0', '0',"0", "0", "0", "0", "0", "0",
  1070. "0", "0", '0', '0',"0", "0", "0", "0", "0", "0",
  1071. "0","0", "0",
  1072. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1073. df = pd.DataFrame(data)
  1074. return df.to_json(force_ascii=False)
  1075. if int(id) == 2078:
  1076. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项"],
  1077. 'DEBH': ['1-F3', '1-F3', '2-F3', '3-F3', '4-F3',
  1078. '5-F3', '6-F3', '7-F3', '8-F3', '9-F3', '11-F3'],
  1079. "GCLMC": ["第一册第1-6章", "第一册第8-14章", "第二册",
  1080. "第三册", "第四册",
  1081. "第五册", "第六册", "第七册", "第八册", "第九册",
  1082. "第十一册", ],
  1083. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1084. df = pd.DataFrame(data)
  1085. return df.to_json(force_ascii=False)
  1086. if int(id) == 2079:
  1087. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项"],
  1088. 'DEBH': ['1-F4', '1-F4', '2-F4', '3-F4', '4-F4',
  1089. '5-F4', '6-F4', '7-F4', '8-F4', '9-F4', '11-F4'],
  1090. "GCLMC": ["第一册第1-6章", "第一册第8-14章", "第二册",
  1091. "第三册", "第四册",
  1092. "第五册", "第六册", "第七册", "第八册", "第九册",
  1093. "第十一册", ],
  1094. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1095. df = pd.DataFrame(data)
  1096. return df.to_json(force_ascii=False)
  1097. if int(id) == 2081:
  1098. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1099. "项", '项', '项', '项', '项', "项", "项", "项"],
  1100. 'DEBH': ['4-F5', '4-F5','4-F5', '4-F5','4-F5', '4-F5','4-F5', '4-F5',
  1101. '4-F5', '4-F5','4-F5', '4-F5','4-F5', '4-F5','4-F5', '4-F5','4-F5', '4-F5'],
  1102. "GCLMC": ["9层或30m以内",
  1103. "12层或40m以内",
  1104. "15层或50m以内",
  1105. "18层或60m以内",
  1106. "21层或70m以内",
  1107. "24层或80m以内",
  1108. "27层或90m以内",
  1109. "30层或100m以内",
  1110. "33层或110m以内",
  1111. "36层或120m以内",
  1112. "40层或130m以内",
  1113. "42层或140m以内",
  1114. "45层或150m以内",
  1115. "48层或160m以内",
  1116. "51层或170m以内",
  1117. "54层或180m以内",
  1118. "57层或190m以内",
  1119. "60层或200m以内",
  1120. ],
  1121. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1122. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1123. df = pd.DataFrame(data)
  1124. return df.to_json(force_ascii=False)
  1125. if int(id) == 2082:
  1126. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1127. "项", '项', '项', '项', '项', "项", "项", "项"],
  1128. 'DEBH': ['5-F5', '5-F5','5-F5', '5-F5','5-F5', '5-F5','5-F5', '5-F5',
  1129. '5-F5', '5-F5','5-F5', '5-F5','5-F5', '5-F5','5-F5', '5-F5','5-F5', '5-F5'],
  1130. "GCLMC": ["9层或30m以内",
  1131. "12层或40m以内",
  1132. "15层或50m以内",
  1133. "18层或60m以内",
  1134. "21层或70m以内",
  1135. "24层或80m以内",
  1136. "27层或90m以内",
  1137. "30层或100m以内",
  1138. "33层或110m以内",
  1139. "36层或120m以内",
  1140. "40层或130m以内",
  1141. "42层或140m以内",
  1142. "45层或150m以内",
  1143. "48层或160m以内",
  1144. "51层或170m以内",
  1145. "54层或180m以内",
  1146. "57层或190m以内",
  1147. "60层或200m以内",
  1148. ],
  1149. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1150. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1151. df = pd.DataFrame(data)
  1152. return df.to_json(force_ascii=False)
  1153. if int(id) == 2083:
  1154. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1155. "项", '项', '项', '项', '项', "项", "项", "项"],
  1156. 'DEBH': ['7-F5', '7-F5','7-F5', '7-F5','7-F5', '7-F5','7-F5', '7-F5',
  1157. '7-F5', '7-F5','7-F5', '7-F5','7-F5', '7-F5','7-F5', '7-F5','7-F5', '7-F5'],
  1158. "GCLMC": ["9层或30m以内",
  1159. "12层或40m以内",
  1160. "15层或50m以内",
  1161. "18层或60m以内",
  1162. "21层或70m以内",
  1163. "24层或80m以内",
  1164. "27层或90m以内",
  1165. "30层或100m以内",
  1166. "33层或110m以内",
  1167. "36层或120m以内",
  1168. "40层或130m以内",
  1169. "42层或140m以内",
  1170. "45层或150m以内",
  1171. "48层或160m以内",
  1172. "51层或170m以内",
  1173. "54层或180m以内",
  1174. "57层或190m以内",
  1175. "60层或200m以内",
  1176. ],
  1177. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1178. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1179. df = pd.DataFrame(data)
  1180. return df.to_json(force_ascii=False)
  1181. if int(id) == 2084:
  1182. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1183. "项", '项', '项', '项', '项', "项", "项", "项"],
  1184. 'DEBH': ['9-F5', '9-F5','9-F5', '9-F5','9-F5', '9-F5','9-F5', '9-F5',
  1185. '9-F5', '9-F5','9-F5', '9-F5','9-F5', '9-F5','9-F5', '9-F5','9-F5', '9-F5'],
  1186. "GCLMC": ["9层或30m以内",
  1187. "12层或40m以内",
  1188. "15层或50m以内",
  1189. "18层或60m以内",
  1190. "21层或70m以内",
  1191. "24层或80m以内",
  1192. "27层或90m以内",
  1193. "30层或100m以内",
  1194. "33层或110m以内",
  1195. "36层或120m以内",
  1196. "40层或130m以内",
  1197. "42层或140m以内",
  1198. "45层或150m以内",
  1199. "48层或160m以内",
  1200. "51层或170m以内",
  1201. "54层或180m以内",
  1202. "57层或190m以内",
  1203. "60层或200m以内",
  1204. ],
  1205. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1206. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1207. df = pd.DataFrame(data)
  1208. return df.to_json(force_ascii=False)
  1209. if int(id) == 2085:
  1210. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1211. "项", '项', '项', '项', '项', "项", "项", "项"],
  1212. 'DEBH': ['10-F5', '10-F5','10-F5', '10-F5','10-F5', '10-F5','10-F5', '10-F5',
  1213. '10-F5', '10-F5','10-F5', '10-F5','10-F5', '10-F5','10-F5', '10-F5','10-F5', '10-F5'],
  1214. "GCLMC": ["9层或30m以内",
  1215. "12层或40m以内",
  1216. "15层或50m以内",
  1217. "18层或60m以内",
  1218. "21层或70m以内",
  1219. "24层或80m以内",
  1220. "27层或90m以内",
  1221. "30层或100m以内",
  1222. "33层或110m以内",
  1223. "36层或120m以内",
  1224. "40层或130m以内",
  1225. "42层或140m以内",
  1226. "45层或150m以内",
  1227. "48层或160m以内",
  1228. "51层或170m以内",
  1229. "54层或180m以内",
  1230. "57层或190m以内",
  1231. "60层或200m以内",
  1232. ],
  1233. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1234. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1235. df = pd.DataFrame(data)
  1236. return df.to_json(force_ascii=False)
  1237. if int(id) == 2086:
  1238. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1239. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1240. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1241. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1242. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1243. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1244. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1245. "项", '项'],
  1246. 'DEBH': ['11-F5', '11-F5',
  1247. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1248. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1249. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1250. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1251. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1252. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1253. '11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5','11-F5', '11-F5',
  1254. ],
  1255. "GCLMC": [
  1256. "(按通风空调工程)9层或30m以内",
  1257. "(按通风空调工程)12层或40m以内",
  1258. "(按通风空调工程)15层或50m以内",
  1259. "(按通风空调工程)18层或60m以内",
  1260. "(按通风空调工程)21层或70m以内",
  1261. "(按通风空调工程)24层或80m以内",
  1262. "(按通风空调工程)27层或90m以内",
  1263. "(按通风空调工程)30层或100m以内",
  1264. "(按通风空调工程)33层或110m以内",
  1265. "(按通风空调工程)36层或120m以内",
  1266. "(按通风空调工程)40层或130m以内",
  1267. "(按通风空调工程)42层或140m以内",
  1268. "(按通风空调工程)45层或150m以内",
  1269. "(按通风空调工程)48层或160m以内",
  1270. "(按通风空调工程)51层或170m以内",
  1271. "(按通风空调工程)54层或180m以内",
  1272. "(按通风空调工程)57层或190m以内",
  1273. "(按通风空调工程)60层或200m以内",
  1274. ############################
  1275. "(按消防工程)9层或30m以内",
  1276. "(按消防工程)12层或40m以内",
  1277. "(按消防工程)15层或50m以内",
  1278. "(按消防工程)18层或60m以内",
  1279. "(按消防工程)21层或70m以内",
  1280. "(按消防工程)24层或80m以内",
  1281. "(按消防工程)27层或90m以内",
  1282. "(按消防工程)30层或100m以内",
  1283. "(按消防工程)33层或110m以内",
  1284. "(按消防工程)36层或120m以内",
  1285. "(按消防工程)40层或130m以内",
  1286. "(按消防工程)42层或140m以内",
  1287. "(按消防工程)45层或150m以内",
  1288. "(按消防工程)48层或160m以内",
  1289. "(按消防工程)51层或170m以内",
  1290. "(按消防工程)54层或180m以内",
  1291. "(按消防工程)57层或190m以内",
  1292. "(按消防工程)60层或200m以内",
  1293. ############################
  1294. "(按给排水、采暖工程)9层或30m以内",
  1295. "(按给排水、采暖工程)12层或40m以内",
  1296. "(按给排水、采暖工程)15层或50m以内",
  1297. "(按给排水、采暖工程)18层或60m以内",
  1298. "(按给排水、采暖工程)21层或70m以内",
  1299. "(按给排水、采暖工程)24层或80m以内",
  1300. "(按给排水、采暖工程)27层或90m以内",
  1301. "(按给排水、采暖工程)30层或100m以内",
  1302. "(按给排水、采暖工程)33层或110m以内",
  1303. "(按给排水、采暖工程)36层或120m以内",
  1304. "(按给排水、采暖工程)40层或130m以内",
  1305. "(按给排水、采暖工程)42层或140m以内",
  1306. "(按给排水、采暖工程)45层或150m以内",
  1307. "(按给排水、采暖工程)48层或160m以内",
  1308. "(按给排水、采暖工程)51层或170m以内",
  1309. "(按给排水、采暖工程)54层或180m以内",
  1310. "(按给排水、采暖工程)57层或190m以内",
  1311. "(按给排水、采暖工程)60层或200m以内",
  1312. ############################
  1313. "(按电气工程)9层或30m以内",
  1314. "(按电气工程)12层或40m以内",
  1315. "(按电气工程)15层或50m以内",
  1316. "(按电气工程)18层或60m以内",
  1317. "(按电气工程)21层或70m以内",
  1318. "(按电气工程)24层或80m以内",
  1319. "(按电气工程)27层或90m以内",
  1320. "(按电气工程)30层或100m以内",
  1321. "(按电气工程)33层或110m以内",
  1322. "(按电气工程)36层或120m以内",
  1323. "(按电气工程)40层或130m以内",
  1324. "(按电气工程)42层或140m以内",
  1325. "(按电气工程)45层或150m以内",
  1326. "(按电气工程)48层或160m以内",
  1327. "(按电气工程)51层或170m以内",
  1328. "(按电气工程)54层或180m以内",
  1329. "(按电气工程)57层或190m以内",
  1330. "(按电气工程)60层或200m以内",
  1331. ],
  1332. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1333. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1334. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1335. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1336. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1337. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1338. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1339. "0", "0" ]}
  1340. df = pd.DataFrame(data)
  1341. return df.to_json(force_ascii=False)
  1342. if int(id) == 2087:
  1343. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项"],
  1344. 'DEBH': ['1-F6', '3-F6', '4-F6', '7-F6', '8-F6',
  1345. '10-F6', '10-F6', '10-F6', '11-F6'],
  1346. "GCLMC": ["第一册 站内工艺系统",
  1347. "第三册 站内工艺系统", "第四册 站内工艺系统",
  1348. "第七册", "第八册 站内工艺系统",
  1349. "第十册供暖器具安装", "第十册空调水工程管道安装", "第十册空调水工程管道附件", "第十一册 站内工艺系统" ],
  1350. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1351. df = pd.DataFrame(data)
  1352. return df.to_json(force_ascii=False)
  1353. def getDeXilie(value, id):
  1354. print(type(id))
  1355. if value == 10:
  1356. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  1357. elif value == 20:
  1358. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  1359. elif value == 30:
  1360. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  1361. elif value == 40:
  1362. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  1363. elif value == 50:
  1364. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  1365. else:
  1366. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  1367. hit = shu[shu["ID"]==int(id)]
  1368. print(hit)
  1369. if len(hit) == 0:
  1370. return []
  1371. hit0 = hit.iloc[0]
  1372. index = str(hit0['zjh'])
  1373. print("index=" + index)
  1374. if value == 10:
  1375. gj = pd.read_csv("de/tj/JD_DanWeiGJ.csv")
  1376. filtered = gj[gj["YSDELBH"]==int(index)]
  1377. elif value == 20:
  1378. gj = pd.read_csv("de/sz/JD_DanWeiGJ.csv")
  1379. filtered = gj[gj["YSDELBH"]==(index)]
  1380. elif value == 30:
  1381. gj = pd.read_csv("de/az/JD_DanWeiGJ.csv")
  1382. filtered = gj[gj["YSDELBH"]==(index)]
  1383. elif value == 40:
  1384. gj = pd.read_csv("de/yl/JD_DanWeiGJ.csv")
  1385. filtered = gj[gj["YSDELBH"]==int(index)]
  1386. elif value == 50:
  1387. gj = pd.read_csv("de/xstj/JD_DanWeiGJ.csv")
  1388. filtered = gj[gj["YSDELBH"]==int(index)]
  1389. else:
  1390. gj = pd.read_csv("de/xsaz/JD_DanWeiGJ.csv")
  1391. filtered = gj[gj["YSDELBH"]==int(index)]
  1392. return filtered.to_json(force_ascii=False)
  1393. def getQufei(name):
  1394. if name == "0":
  1395. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1396. return gj.to_json(force_ascii=False)
  1397. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  1398. hit = shu[shu["ID"]==int(name)]
  1399. print(hit)
  1400. if len(hit) == 0:
  1401. return []
  1402. hit0 = hit.iloc[0]
  1403. index = str(hit0['pblbh'])
  1404. index_list = index.split(";")
  1405. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1406. filtered = gj[gj["PBBH"].str.startswith(tuple(index_list))]
  1407. return filtered.to_json(force_ascii=False)
  1408. def getPbxl(name):
  1409. if name == "0":
  1410. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1411. return gj.to_json(force_ascii=False)
  1412. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  1413. hit = shu[shu["ID"]==int(name)]
  1414. print(hit)
  1415. if len(hit) == 0:
  1416. return []
  1417. hit0 = hit.iloc[0]
  1418. index = str(hit0['pblbh'])
  1419. index_list = index.split(";")
  1420. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1421. filtered = gj[gj["PBBH"].str.startswith(tuple(index_list))]
  1422. return filtered.to_json(force_ascii=False)
  1423. def getSingleDeXilie(zhuanye, debh):
  1424. if zhuanye == 10:
  1425. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1426. if A1:
  1427. return A1, A2, A3, A4, A5, A6, A7, 10
  1428. else:
  1429. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_sz(debh)
  1430. return A1, A2, A3, A4,A5, A6, A7, 20
  1431. elif zhuanye == 20:##shizheng
  1432. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_sz(debh)
  1433. if A1:
  1434. return A1, A2, A3, A4, A5, A6, A7, 20
  1435. else:
  1436. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1437. if A1:
  1438. return A1, A2, A3, A4, A5, A6, A7, 10
  1439. else:
  1440. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1441. return A1, A2, A3, A4, A5, A6, A7, 30
  1442. elif zhuanye == 30:##anzhuang
  1443. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1444. return A1, A2, A3, A4, A5, A6, A7, 30
  1445. elif zhuanye == 40:##yuanlin
  1446. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_yl(debh)
  1447. return A1, A2, A3, A4, A5, A6, A7, 40
  1448. elif zhuanye == 50: ## xiushan tujian
  1449. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_xstj(debh)
  1450. if A1:
  1451. return A1, A2, A3, A4, A5, A6, A7, 50
  1452. else:
  1453. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1454. return A1, A2, A3, A4,A5, A6, A7, 10
  1455. else:
  1456. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_xsaz(debh)
  1457. if A1:
  1458. return A1, A2, A3, A4, A5, A6, A7, 60
  1459. else:
  1460. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1461. return A1, A2, A3, A4,A5, A6, A7, 30
  1462. def getSingleDeXilie_xsaz(debh):
  1463. id = None
  1464. bz_selected = []
  1465. bz_selected2 = []
  1466. if "附注" in debh:
  1467. position = debh.find("附注")
  1468. debh = debh[:position]
  1469. if "*" in debh:
  1470. position = debh.find("*")
  1471. debh = debh[:position]
  1472. if debh.endswith("换"):
  1473. debh = debh[:-1]
  1474. if "[" in debh:
  1475. position = debh.find("[")
  1476. debh = debh[:position-1]
  1477. gj = pd.read_csv("de/xsaz/JD_DanWeiGJ.csv")
  1478. filtered = gj[gj["DEBH"]==debh]
  1479. print(filtered)
  1480. if len(filtered) > 0:
  1481. index = (filtered.iloc[0]["YSDELBH"])
  1482. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  1483. hit = shu[shu["zjh"]==index]
  1484. if len(hit) > 0:
  1485. id = hit.iloc[0]["ID"]
  1486. beizhu = str(filtered.iloc[0]["BZBH"])
  1487. if 'nan' in beizhu:
  1488. pass
  1489. else:
  1490. beizhus = beizhu.split(";")
  1491. print(beizhus)
  1492. bzfile = pd.read_csv("de/xsaz/JD_BeiZhuZK.csv")
  1493. bzfile2 = pd.read_csv("de/xsaz/JD_BeiZhuFK.csv", dtype=str)
  1494. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1495. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1496. else:
  1497. return None, None, None, None, None, None, None
  1498. ####rengong
  1499. rgde = []
  1500. rg = pd.read_csv("de/xsaz/JD_GuJiaRG.csv")
  1501. filtered1 = rg[rg["DEBH"]==debh]
  1502. for i in range(len(filtered1)):
  1503. rgde_ = {}
  1504. gr = filtered1.iloc[i]["RGR"]##gongri
  1505. gf = filtered1.iloc[i]["RGF"]##gongfei
  1506. rcjID = filtered1.iloc[i]["RcjID"]
  1507. detail = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1508. filtered2 = detail[detail["RcjID"]==rcjID]
  1509. if len(filtered2) > 0:
  1510. CLBH = filtered2.iloc[0]["CLBH"]
  1511. CLMC = filtered2.iloc[0]["CLMC"]
  1512. JLDW = filtered2.iloc[0]["JLDW"]
  1513. YSJG = filtered2.iloc[0]["YSJG"]
  1514. rgde_["CLBH"] = CLBH
  1515. rgde_["CLMC"] = CLMC
  1516. rgde_["JLDW"] = JLDW
  1517. rgde_["YSJG"] = YSJG.item()
  1518. rgde_["gr"] = gr.item()
  1519. rgde_["gf"] = gf.item()
  1520. rgde.append(rgde_)
  1521. ##print(rgde)
  1522. ####jixie
  1523. jxde = []
  1524. jx = pd.read_csv("de/xsaz/JD_GuJiaJX.csv")
  1525. filtered1 = jx[jx["DEBH"]==debh]
  1526. for i in range(len(filtered1)):
  1527. jxde_ = {}
  1528. sl = filtered1.iloc[i]["SL"]##shuliang
  1529. hj = filtered1.iloc[i]["HJ"]##hejia
  1530. rcjID = filtered1.iloc[i]["RcjID"]
  1531. detail = pd.read_csv("de/xsaz/JD_JiXieK.csv")
  1532. filtered2 = detail[detail["RcjID"]==rcjID]
  1533. if len(filtered2) > 0:
  1534. jxbh = filtered2.iloc[0]["jxbh"]
  1535. jxmc = filtered2.iloc[0]["jxmc"]
  1536. DW = filtered2.iloc[0]["DW"]
  1537. tbdj = filtered2.iloc[0]["tbdj"]
  1538. jxde_["jxbh"] = jxbh
  1539. jxde_["jxmc"] = jxmc
  1540. jxde_["DW"] = DW
  1541. jxde_["tbdj"] = tbdj.item()
  1542. jxde_["sl"] = sl.item()
  1543. jxde_["hj"] = hj.item()
  1544. jxde.append(jxde_)
  1545. ####cailiao
  1546. clde = []
  1547. cl = pd.read_csv("de/xsaz/JD_GuJiaCL.csv")
  1548. filtered1 = cl[cl["DEBH"]==debh]
  1549. for i in range(len(filtered1)):
  1550. clde_ = {}
  1551. SL = filtered1.iloc[i]["SL"]##shuliang
  1552. HJ = filtered1.iloc[i]["HJ"]##hejia
  1553. rcjID = filtered1.iloc[i]["RcjID"]
  1554. detail = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1555. filtered2 = detail[detail["RcjID"]==rcjID]
  1556. if len(filtered2) > 0:
  1557. CLBH = filtered2.iloc[0]["CLBH"]
  1558. CLMC = filtered2.iloc[0]["CLMC"]
  1559. JLDW = filtered2.iloc[0]["JLDW"]
  1560. YSJG = filtered2.iloc[0]["YSJG"]
  1561. clde_["CLBH"] = CLBH
  1562. clde_["CLMC"] = CLMC
  1563. clde_["JLDW"] = JLDW
  1564. clde_["YSJG"] = YSJG.item()
  1565. clde_["SL"] = SL.item()
  1566. clde_["HJ"] = HJ.item()
  1567. clde.append(clde_)
  1568. else:
  1569. detail = pd.read_csv("de/xsaz/JD_PeiBi.csv")
  1570. filtered2 = detail[detail["RcjID"]==rcjID]
  1571. if len(filtered2) > 0:
  1572. CLBH = filtered2.iloc[0]["PBBH"]
  1573. CLMC = filtered2.iloc[0]["PBMC"]
  1574. JLDW = filtered2.iloc[0]["DW"]
  1575. YSJG = filtered2.iloc[0]["PBDJ"]
  1576. clde_["CLBH"] = CLBH.item()
  1577. clde_["CLMC"] = CLMC
  1578. clde_["JLDW"] = JLDW
  1579. clde_["YSJG"] = YSJG.item()
  1580. clde_["SL"] = SL.item()
  1581. clde_["HJ"] = HJ.item()
  1582. clde.append(clde_)
  1583. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  1584. def getSingleDeXilie_xstj(debh):
  1585. id = None
  1586. bz_selected = []
  1587. bz_selected2 = []
  1588. if "附注" in debh:
  1589. position = debh.find("附注")
  1590. debh = debh[:position]
  1591. if "*" in debh:
  1592. position = debh.find("*")
  1593. debh = debh[:position]
  1594. if debh.endswith("换"):
  1595. debh = debh[:-1]
  1596. if "[" in debh:
  1597. position = debh.find("[")
  1598. debh = debh[:position-1]
  1599. gj = pd.read_csv("de/xstj/JD_DanWeiGJ.csv")
  1600. filtered = gj[gj["DEBH"]==debh]
  1601. print(filtered)
  1602. if len(filtered) > 0:
  1603. index = (filtered.iloc[0]["YSDELBH"])
  1604. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  1605. hit = shu[shu["zjh"]==index]
  1606. if len(hit) > 0:
  1607. id = hit.iloc[0]["ID"]
  1608. beizhu = str(filtered.iloc[0]["BZBH"])
  1609. if 'nan' in beizhu:
  1610. pass
  1611. else:
  1612. beizhus = beizhu.split(";")
  1613. print(beizhus)
  1614. bzfile = pd.read_csv("de/xstj/JD_BeiZhuZK.csv")
  1615. bzfile2 = pd.read_csv("de/xstj/JD_BeiZhuFK.csv", dtype=str)
  1616. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1617. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1618. else:
  1619. return None, None, None, None, None, None, None
  1620. ####rengong
  1621. rgde = []
  1622. rg = pd.read_csv("de/xstj/JD_GuJiaRG.csv")
  1623. filtered1 = rg[rg["DEBH"]==debh]
  1624. for i in range(len(filtered1)):
  1625. rgde_ = {}
  1626. gr = filtered1.iloc[i]["RGR"]##gongri
  1627. gf = filtered1.iloc[i]["RGF"]##gongfei
  1628. rcjID = filtered1.iloc[i]["RcjID"]
  1629. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1630. filtered2 = detail[detail["RcjID"]==rcjID]
  1631. if len(filtered2) > 0:
  1632. CLBH = filtered2.iloc[0]["CLBH"]
  1633. CLMC = filtered2.iloc[0]["CLMC"]
  1634. JLDW = filtered2.iloc[0]["JLDW"]
  1635. YSJG = filtered2.iloc[0]["YSJG"]
  1636. rgde_["CLBH"] = CLBH
  1637. rgde_["CLMC"] = CLMC
  1638. rgde_["JLDW"] = JLDW
  1639. rgde_["YSJG"] = YSJG.item()
  1640. rgde_["gr"] = gr.item()
  1641. rgde_["gf"] = gf.item()
  1642. rgde.append(rgde_)
  1643. ##print(rgde)
  1644. ####jixie
  1645. jxde = []
  1646. jx = pd.read_csv("de/xstj/JD_GuJiaJX.csv")
  1647. filtered1 = jx[jx["DEBH"]==debh]
  1648. for i in range(len(filtered1)):
  1649. jxde_ = {}
  1650. sl = filtered1.iloc[i]["SL"]##shuliang
  1651. hj = filtered1.iloc[i]["HJ"]##hejia
  1652. rcjID = filtered1.iloc[i]["RcjID"]
  1653. detail = pd.read_csv("de/xstj/JD_JiXieK.csv")
  1654. filtered2 = detail[detail["RcjID"]==rcjID]
  1655. if len(filtered2) > 0:
  1656. jxbh = filtered2.iloc[0]["jxbh"]
  1657. jxmc = filtered2.iloc[0]["jxmc"]
  1658. DW = filtered2.iloc[0]["DW"]
  1659. tbdj = filtered2.iloc[0]["tbdj"]
  1660. jxde_["jxbh"] = jxbh
  1661. jxde_["jxmc"] = jxmc
  1662. jxde_["DW"] = DW
  1663. jxde_["tbdj"] = tbdj.item()
  1664. jxde_["sl"] = sl.item()
  1665. jxde_["hj"] = hj.item()
  1666. jxde.append(jxde_)
  1667. ####cailiao
  1668. clde = []
  1669. cl = pd.read_csv("de/xstj/JD_GuJiaCL.csv")
  1670. filtered1 = cl[cl["DEBH"]==debh]
  1671. for i in range(len(filtered1)):
  1672. clde_ = {}
  1673. SL = filtered1.iloc[i]["SL"]##shuliang
  1674. HJ = filtered1.iloc[i]["HJ"]##hejia
  1675. rcjID = filtered1.iloc[i]["RcjID"]
  1676. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1677. filtered2 = detail[detail["RcjID"]==rcjID]
  1678. if len(filtered2) > 0:
  1679. CLBH = filtered2.iloc[0]["CLBH"]
  1680. CLMC = filtered2.iloc[0]["CLMC"]
  1681. JLDW = filtered2.iloc[0]["JLDW"]
  1682. YSJG = filtered2.iloc[0]["YSJG"]
  1683. clde_["CLBH"] = CLBH
  1684. clde_["CLMC"] = CLMC
  1685. clde_["JLDW"] = JLDW
  1686. clde_["YSJG"] = YSJG.item()
  1687. clde_["SL"] = SL.item()
  1688. clde_["HJ"] = HJ.item()
  1689. clde.append(clde_)
  1690. else:
  1691. detail = pd.read_csv("de/xstj/JD_PeiBi.csv")
  1692. filtered2 = detail[detail["RcjID"]==rcjID]
  1693. if len(filtered2) > 0:
  1694. CLBH = filtered2.iloc[0]["PBBH"]
  1695. CLMC = filtered2.iloc[0]["PBMC"]
  1696. JLDW = filtered2.iloc[0]["DW"]
  1697. YSJG = filtered2.iloc[0]["PBDJ"]
  1698. clde_["CLBH"] = CLBH.item()
  1699. clde_["CLMC"] = CLMC
  1700. clde_["JLDW"] = JLDW
  1701. clde_["YSJG"] = YSJG.item()
  1702. clde_["SL"] = SL.item()
  1703. clde_["HJ"] = HJ.item()
  1704. clde.append(clde_)
  1705. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  1706. def getSingleDeXilie_yl(debh):
  1707. id = None
  1708. bz_selected = []
  1709. bz_selected2 = []
  1710. if "附注" in debh:
  1711. position = debh.find("附注")
  1712. debh = debh[:position]
  1713. if "*" in debh:
  1714. position = debh.find("*")
  1715. debh = debh[:position]
  1716. if debh.endswith("换"):
  1717. debh = debh[:-1]
  1718. if "[" in debh:
  1719. position = debh.find("[")
  1720. debh = debh[:position-1]
  1721. gj = pd.read_csv("de/yl/JD_DanWeiGJ.csv")
  1722. filtered = gj[gj["DEBH"]==debh]
  1723. print(filtered)
  1724. if len(filtered) > 0:
  1725. index = (filtered.iloc[0]["YSDELBH"])
  1726. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  1727. hit = shu[shu["zjh"]==index]
  1728. if len(hit) > 0:
  1729. id = hit.iloc[0]["ID"]
  1730. beizhu = str(filtered.iloc[0]["BZBH"])
  1731. if 'nan' in beizhu:
  1732. pass
  1733. else:
  1734. beizhus = beizhu.split(";")
  1735. print(beizhus)
  1736. bzfile = pd.read_csv("de/yl/JD_BeiZhuZK.csv")
  1737. bzfile2 = pd.read_csv("de/yl/JD_BeiZhuFK.csv", dtype=str)
  1738. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1739. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1740. else:
  1741. return None, None, None, None, None, None, None
  1742. ####rengong
  1743. rgde = []
  1744. rg = pd.read_csv("de/yl/JD_GuJiaRG.csv")
  1745. filtered1 = rg[rg["DEBH"]==debh]
  1746. for i in range(len(filtered1)):
  1747. rgde_ = {}
  1748. gr = filtered1.iloc[i]["RGR"]##gongri
  1749. gf = filtered1.iloc[i]["RGF"]##gongfei
  1750. rcjID = filtered1.iloc[i]["RcjID"]
  1751. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  1752. filtered2 = detail[detail["RcjID"]==rcjID]
  1753. if len(filtered2) > 0:
  1754. CLBH = filtered2.iloc[0]["CLBH"]
  1755. CLMC = filtered2.iloc[0]["CLMC"]
  1756. JLDW = filtered2.iloc[0]["JLDW"]
  1757. YSJG = filtered2.iloc[0]["YSJG"]
  1758. rgde_["CLBH"] = CLBH
  1759. rgde_["CLMC"] = CLMC
  1760. rgde_["JLDW"] = JLDW
  1761. rgde_["YSJG"] = YSJG.item()
  1762. rgde_["gr"] = gr.item()
  1763. rgde_["gf"] = gf.item()
  1764. rgde.append(rgde_)
  1765. ##print(rgde)
  1766. ####jixie
  1767. jxde = []
  1768. jx = pd.read_csv("de/yl/JD_GuJiaJX.csv")
  1769. filtered1 = jx[jx["DEBH"]==debh]
  1770. for i in range(len(filtered1)):
  1771. jxde_ = {}
  1772. sl = filtered1.iloc[i]["SL"]##shuliang
  1773. hj = filtered1.iloc[i]["HJ"]##hejia
  1774. rcjID = filtered1.iloc[i]["RcjID"]
  1775. detail = pd.read_csv("de/yl/JD_JiXieK.csv")
  1776. filtered2 = detail[detail["RcjID"]==rcjID]
  1777. if len(filtered2) > 0:
  1778. jxbh = filtered2.iloc[0]["jxbh"]
  1779. jxmc = filtered2.iloc[0]["jxmc"]
  1780. DW = filtered2.iloc[0]["DW"]
  1781. tbdj = filtered2.iloc[0]["tbdj"]
  1782. jxde_["jxbh"] = jxbh
  1783. jxde_["jxmc"] = jxmc
  1784. jxde_["DW"] = DW
  1785. jxde_["tbdj"] = tbdj.item()
  1786. jxde_["sl"] = sl.item()
  1787. jxde_["hj"] = hj.item()
  1788. jxde.append(jxde_)
  1789. ####cailiao
  1790. clde = []
  1791. cl = pd.read_csv("de/yl/JD_GuJiaCL.csv")
  1792. filtered1 = cl[cl["DEBH"]==debh]
  1793. for i in range(len(filtered1)):
  1794. clde_ = {}
  1795. SL = filtered1.iloc[i]["SL"]##shuliang
  1796. HJ = filtered1.iloc[i]["HJ"]##hejia
  1797. rcjID = filtered1.iloc[i]["RcjID"]
  1798. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  1799. filtered2 = detail[detail["RcjID"]==rcjID]
  1800. if len(filtered2) > 0:
  1801. CLBH = filtered2.iloc[0]["CLBH"]
  1802. CLMC = filtered2.iloc[0]["CLMC"]
  1803. JLDW = filtered2.iloc[0]["JLDW"]
  1804. YSJG = filtered2.iloc[0]["YSJG"]
  1805. clde_["CLBH"] = CLBH
  1806. clde_["CLMC"] = CLMC
  1807. clde_["JLDW"] = JLDW
  1808. clde_["YSJG"] = YSJG.item()
  1809. clde_["SL"] = SL.item()
  1810. clde_["HJ"] = HJ.item()
  1811. clde.append(clde_)
  1812. else:
  1813. detail = pd.read_csv("de/yl/JD_PeiBi.csv")
  1814. filtered2 = detail[detail["RcjID"]==rcjID]
  1815. if len(filtered2) > 0:
  1816. CLBH = filtered2.iloc[0]["PBBH"]
  1817. CLMC = filtered2.iloc[0]["PBMC"]
  1818. JLDW = filtered2.iloc[0]["DW"]
  1819. YSJG = filtered2.iloc[0]["PBDJ"]
  1820. clde_["CLBH"] = CLBH.item()
  1821. clde_["CLMC"] = CLMC
  1822. clde_["JLDW"] = JLDW
  1823. clde_["YSJG"] = YSJG.item()
  1824. clde_["SL"] = SL.item()
  1825. clde_["HJ"] = HJ.item()
  1826. clde.append(clde_)
  1827. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  1828. def getSingleDeXilie_az(debh):
  1829. id = None
  1830. bz_selected = []
  1831. bz_selected2 = []
  1832. if "附注" in debh:
  1833. position = debh.find("附注")
  1834. debh = debh[:position]
  1835. if "*" in debh:
  1836. position = debh.find("*")
  1837. debh = debh[:position]
  1838. if debh.endswith("换"):
  1839. debh = debh[:-1]
  1840. if "[" in debh:
  1841. position = debh.find("[")
  1842. debh = debh[:position-1]
  1843. gj = pd.read_csv("de/az/JD_DanWeiGJ.csv")
  1844. filtered = gj[gj["DEBH"]==debh]
  1845. print(filtered)
  1846. if len(filtered) > 0:
  1847. index = (filtered.iloc[0]["YSDELBH"])
  1848. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  1849. hit = shu[shu["zjh"]==index]
  1850. if len(hit) > 0:
  1851. id = hit.iloc[0]["ID"]
  1852. beizhu = str(filtered.iloc[0]["BZBH"])
  1853. if 'nan' in beizhu:
  1854. pass
  1855. else:
  1856. beizhus = beizhu.split(";")
  1857. print(beizhus)
  1858. bzfile = pd.read_csv("de/az/JD_BeiZhuZK.csv")
  1859. bzfile2 = pd.read_csv("de/az/JD_BeiZhuFK.csv", dtype=str)
  1860. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1861. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1862. else:
  1863. return None, None, None, None, None, None, None
  1864. ####rengong
  1865. rgde = []
  1866. rg = pd.read_csv("de/az/JD_GuJiaRG.csv")
  1867. filtered1 = rg[rg["DEBH"]==debh]
  1868. for i in range(len(filtered1)):
  1869. rgde_ = {}
  1870. gr = filtered1.iloc[i]["RGR"]##gongri
  1871. gf = filtered1.iloc[i]["RGF"]##gongfei
  1872. rcjID = filtered1.iloc[i]["RcjID"]
  1873. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  1874. filtered2 = detail[detail["RcjID"]==rcjID]
  1875. if len(filtered2) > 0:
  1876. CLBH = filtered2.iloc[0]["CLBH"]
  1877. CLMC = filtered2.iloc[0]["CLMC"]
  1878. JLDW = filtered2.iloc[0]["JLDW"]
  1879. YSJG = filtered2.iloc[0]["YSJG"]
  1880. rgde_["CLBH"] = CLBH
  1881. rgde_["CLMC"] = CLMC
  1882. rgde_["JLDW"] = JLDW
  1883. rgde_["YSJG"] = YSJG
  1884. rgde_["gr"] = gr
  1885. rgde_["gf"] = gf
  1886. rgde.append(rgde_)
  1887. ##print(rgde)
  1888. ####jixie
  1889. jxde = []
  1890. jx = pd.read_csv("de/az/JD_GuJiaJX.csv")
  1891. filtered1 = jx[jx["DEBH"]==debh]
  1892. for i in range(len(filtered1)):
  1893. jxde_ = {}
  1894. sl = filtered1.iloc[i]["SL"]##shuliang
  1895. hj = filtered1.iloc[i]["HJ"]##hejia
  1896. rcjID = filtered1.iloc[i]["RcjID"]
  1897. detail = pd.read_csv("de/az/JD_JiXieK.csv")
  1898. filtered2 = detail[detail["RcjID"]==rcjID]
  1899. if len(filtered2) > 0:
  1900. jxbh = filtered2.iloc[0]["jxbh"]
  1901. jxmc = filtered2.iloc[0]["jxmc"]
  1902. DW = filtered2.iloc[0]["DW"]
  1903. tbdj = filtered2.iloc[0]["tbdj"]
  1904. jxde_["jxbh"] = jxbh
  1905. jxde_["jxmc"] = jxmc
  1906. jxde_["DW"] = DW
  1907. jxde_["tbdj"] = tbdj
  1908. jxde_["sl"] = sl
  1909. jxde_["hj"] = hj
  1910. jxde.append(jxde_)
  1911. ####cailiao
  1912. clde = []
  1913. cl = pd.read_csv("de/az/JD_GuJiaCL.csv")
  1914. filtered1 = cl[cl["DEBH"]==debh]
  1915. for i in range(len(filtered1)):
  1916. clde_ = {}
  1917. SL = filtered1.iloc[i]["SL"]##shuliang
  1918. HJ = filtered1.iloc[i]["HJ"]##hejia
  1919. rcjID = filtered1.iloc[i]["RcjID"]
  1920. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  1921. filtered2 = detail[detail["RcjID"]==rcjID]
  1922. if len(filtered2) > 0:
  1923. CLBH = filtered2.iloc[0]["CLBH"]
  1924. CLMC = filtered2.iloc[0]["CLMC"]
  1925. JLDW = filtered2.iloc[0]["JLDW"]
  1926. YSJG = filtered2.iloc[0]["YSJG"]
  1927. clde_["CLBH"] = CLBH
  1928. clde_["CLMC"] = CLMC
  1929. clde_["JLDW"] = JLDW
  1930. clde_["YSJG"] = YSJG
  1931. clde_["SL"] = SL
  1932. clde_["HJ"] = HJ
  1933. clde.append(clde_)
  1934. else:
  1935. detail = pd.read_csv("de/az/JD_PeiBi.csv")
  1936. filtered2 = detail[detail["RcjID"]==rcjID]
  1937. if len(filtered2) > 0:
  1938. CLBH = filtered2.iloc[0]["PBBH"]
  1939. CLMC = filtered2.iloc[0]["PBMC"]
  1940. JLDW = filtered2.iloc[0]["DW"]
  1941. YSJG = filtered2.iloc[0]["PBDJ"]
  1942. clde_["CLBH"] = CLBH
  1943. clde_["CLMC"] = CLMC
  1944. clde_["JLDW"] = JLDW
  1945. clde_["YSJG"] = YSJG
  1946. clde_["SL"] = SL
  1947. clde_["HJ"] = HJ
  1948. clde.append(clde_)
  1949. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  1950. def getSingleDeXilie_sz(debh):
  1951. id = None
  1952. bz_selected = []
  1953. bz_selected2 = []
  1954. if "附注" in debh:
  1955. position = debh.find("附注")
  1956. debh = debh[:position]
  1957. if "*" in debh:
  1958. position = debh.find("*")
  1959. debh = debh[:position]
  1960. if debh.endswith("换"):
  1961. debh = debh[:-1]
  1962. if "[" in debh:
  1963. position = debh.find("[")
  1964. debh = debh[:position-1]
  1965. gj = pd.read_csv("de/sz/JD_DanWeiGJ.csv")
  1966. filtered = gj[gj["DEBH"]==debh]
  1967. print(filtered)
  1968. if len(filtered) > 0:
  1969. index = (filtered.iloc[0]["YSDELBH"])
  1970. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  1971. hit = shu[shu["zjh"]==index]
  1972. if len(hit) > 0:
  1973. id = hit.iloc[0]["ID"]
  1974. beizhu = str(filtered.iloc[0]["BZBH"])
  1975. if 'nan' in beizhu:
  1976. pass
  1977. else:
  1978. beizhus = beizhu.split(";")
  1979. print(beizhus)
  1980. bzfile = pd.read_csv("de/sz/JD_BeiZhuZK.csv")
  1981. bzfile2 = pd.read_csv("de/sz/JD_BeiZhuFK.csv", dtype=str)
  1982. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1983. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1984. else:
  1985. return None, None, None, None, None, None, None
  1986. ####rengong
  1987. rgde = []
  1988. rg = pd.read_csv("de/sz/JD_GuJiaRG.csv")
  1989. filtered1 = rg[rg["DEBH"]==debh]
  1990. for i in range(len(filtered1)):
  1991. rgde_ = {}
  1992. gr = filtered1.iloc[i]["RGR"]##gongri
  1993. gf = filtered1.iloc[i]["RGF"]##gongfei
  1994. rcjID = filtered1.iloc[i]["RcjID"]
  1995. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  1996. filtered2 = detail[detail["RcjID"]==rcjID]
  1997. if len(filtered2) > 0:
  1998. CLBH = filtered2.iloc[0]["CLBH"]
  1999. CLMC = filtered2.iloc[0]["CLMC"]
  2000. JLDW = filtered2.iloc[0]["JLDW"]
  2001. YSJG = filtered2.iloc[0]["YSJG"]
  2002. rgde_["CLBH"] = CLBH
  2003. rgde_["CLMC"] = CLMC
  2004. rgde_["JLDW"] = JLDW
  2005. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2006. rgde_["gr"] = gr.item() if type(gr) == float64 else gr
  2007. rgde_["gf"] = gf.item() if type(gf) == float64 else gf
  2008. rgde.append(rgde_)
  2009. ##print(rgde)
  2010. ####jixie
  2011. jxde = []
  2012. jx = pd.read_csv("de/sz/JD_GuJiaJX.csv")
  2013. filtered1 = jx[jx["DEBH"]==debh]
  2014. for i in range(len(filtered1)):
  2015. jxde_ = {}
  2016. sl = filtered1.iloc[i]["SL"]##shuliang
  2017. hj = filtered1.iloc[i]["HJ"]##hejia
  2018. rcjID = filtered1.iloc[i]["RcjID"]
  2019. detail = pd.read_csv("de/sz/JD_JiXieK.csv")
  2020. filtered2 = detail[detail["RcjID"]==rcjID]
  2021. if len(filtered2) > 0:
  2022. jxbh = filtered2.iloc[0]["jxbh"]
  2023. jxmc = filtered2.iloc[0]["jxmc"]
  2024. DW = filtered2.iloc[0]["DW"]
  2025. tbdj = filtered2.iloc[0]["tbdj"]
  2026. jxde_["jxbh"] = jxbh
  2027. jxde_["jxmc"] = jxmc
  2028. jxde_["DW"] = DW
  2029. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2030. jxde_["sl"] = sl.item() if type(sl) == float64 else sl
  2031. jxde_["hj"] = hj.item() if type(hj) == float64 else hj
  2032. jxde.append(jxde_)
  2033. ####cailiao
  2034. clde = []
  2035. cl = pd.read_csv("de/sz/JD_GuJiaCL.csv")
  2036. filtered1 = cl[cl["DEBH"]==debh]
  2037. for i in range(len(filtered1)):
  2038. clde_ = {}
  2039. SL = filtered1.iloc[i]["SL"]##shuliang
  2040. HJ = filtered1.iloc[i]["HJ"]##hejia
  2041. rcjID = filtered1.iloc[i]["RcjID"]
  2042. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  2043. filtered2 = detail[detail["RcjID"]==rcjID]
  2044. if len(filtered2) > 0:
  2045. CLBH = filtered2.iloc[0]["CLBH"]
  2046. CLMC = filtered2.iloc[0]["CLMC"]
  2047. JLDW = filtered2.iloc[0]["JLDW"]
  2048. YSJG = filtered2.iloc[0]["YSJG"]
  2049. clde_["CLBH"] = CLBH
  2050. clde_["CLMC"] = CLMC
  2051. clde_["JLDW"] = JLDW
  2052. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2053. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2054. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2055. clde.append(clde_)
  2056. else:
  2057. detail = pd.read_csv("de/sz/JD_PeiBi.csv")
  2058. filtered2 = detail[detail["RcjID"]==rcjID]
  2059. if len(filtered2) > 0:
  2060. CLBH = filtered2.iloc[0]["PBBH"]
  2061. CLMC = filtered2.iloc[0]["PBMC"]
  2062. JLDW = filtered2.iloc[0]["DW"]
  2063. YSJG = filtered2.iloc[0]["PBDJ"]
  2064. clde_["CLBH"] = CLBH
  2065. clde_["CLMC"] = CLMC
  2066. clde_["JLDW"] = JLDW
  2067. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2068. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2069. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2070. clde.append(clde_)
  2071. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  2072. def getSingleDeXilie_tj(debh):
  2073. id = None
  2074. bz_selected = []
  2075. bz_selected2 = []
  2076. if "附注" in debh:
  2077. position = debh.find("附注")
  2078. debh = debh[:position]
  2079. if "*" in debh:
  2080. position = debh.find("*")
  2081. debh = debh[:position]
  2082. if debh.endswith("换"):
  2083. debh = debh[:-1]
  2084. if "[" in debh:
  2085. position = debh.find("[")
  2086. debh = debh[:position-1]
  2087. gj = pd.read_csv("de/tj/JD_DanWeiGJ.csv")
  2088. filtered = gj[gj["DEBH"]==debh]
  2089. print(filtered)
  2090. if len(filtered) > 0:
  2091. index = int(filtered.iloc[0]["YSDELBH"])
  2092. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  2093. hit = shu[shu["zjh"]==index]
  2094. if len(hit) > 0:
  2095. id = hit.iloc[0]["ID"]
  2096. beizhu = str(filtered.iloc[0]["BZBH"])
  2097. if 'nan' in beizhu:
  2098. pass
  2099. else:
  2100. beizhus = beizhu.split(";")
  2101. print(beizhus)
  2102. bzfile = pd.read_csv("de/tj/JD_BeiZhuZK.csv")
  2103. bzfile2 = pd.read_csv("de/tj/JD_BeiZhuFK.csv", dtype=str)
  2104. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  2105. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  2106. else:
  2107. return None, None, None, None, None, None, None
  2108. ####rengong
  2109. rgde = []
  2110. rg = pd.read_csv("de/tj/JD_GuJiaRG.csv")
  2111. filtered1 = rg[rg["DEBH"]==debh]
  2112. for i in range(len(filtered1)):
  2113. rgde_ = {}
  2114. gr = filtered1.iloc[i]["RGR"]##gongri
  2115. gf = filtered1.iloc[i]["RGF"]##gongfei
  2116. rcjID = filtered1.iloc[i]["RcjID"]
  2117. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2118. filtered2 = detail[detail["RcjID"]==rcjID]
  2119. if len(filtered2) > 0:
  2120. CLBH = filtered2.iloc[0]["CLBH"]
  2121. CLMC = filtered2.iloc[0]["CLMC"]
  2122. JLDW = filtered2.iloc[0]["JLDW"]
  2123. YSJG = filtered2.iloc[0]["YSJG"]
  2124. rgde_["CLBH"] = CLBH
  2125. rgde_["CLMC"] = CLMC
  2126. rgde_["JLDW"] = JLDW
  2127. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2128. rgde_["gr"] = gr.item() if type(gr) == float64 else gr
  2129. rgde_["gf"] = gf.item() if type(gf) == float64 else gf
  2130. rgde.append(rgde_)
  2131. ##print(rgde)
  2132. ####jixie
  2133. jxde = []
  2134. jx = pd.read_csv("de/tj/JD_GuJiaJX.csv")
  2135. filtered1 = jx[jx["DEBH"]==debh]
  2136. for i in range(len(filtered1)):
  2137. jxde_ = {}
  2138. sl = filtered1.iloc[i]["SL"]##shuliang
  2139. hj = filtered1.iloc[i]["HJ"]##hejia
  2140. rcjID = filtered1.iloc[i]["RcjID"]
  2141. detail = pd.read_csv("de/tj/JD_JiXieK.csv")
  2142. filtered2 = detail[detail["RcjID"]==rcjID]
  2143. if len(filtered2) > 0:
  2144. jxbh = filtered2.iloc[0]["jxbh"]
  2145. jxmc = filtered2.iloc[0]["jxmc"]
  2146. DW = filtered2.iloc[0]["DW"]
  2147. tbdj = filtered2.iloc[0]["tbdj"]
  2148. jxde_["jxbh"] = jxbh
  2149. jxde_["jxmc"] = jxmc
  2150. jxde_["DW"] = DW
  2151. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2152. jxde_["sl"] = sl.item() if type(sl) == float64 else sl
  2153. jxde_["hj"] = hj.item() if type(hj) == float64 else hj
  2154. jxde.append(jxde_)
  2155. ####cailiao
  2156. clde = []
  2157. cl = pd.read_csv("de/tj/JD_GuJiaCL.csv")
  2158. filtered1 = cl[cl["DEBH"]==debh]
  2159. for i in range(len(filtered1)):
  2160. clde_ = {}
  2161. SL = filtered1.iloc[i]["SL"]##shuliang
  2162. HJ = filtered1.iloc[i]["HJ"]##hejia
  2163. rcjID = filtered1.iloc[i]["RcjID"]
  2164. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2165. filtered2 = detail[detail["RcjID"]==rcjID]
  2166. if len(filtered2) > 0:
  2167. CLBH = filtered2.iloc[0]["CLBH"]
  2168. CLMC = filtered2.iloc[0]["CLMC"]
  2169. JLDW = filtered2.iloc[0]["JLDW"]
  2170. YSJG = filtered2.iloc[0]["YSJG"]
  2171. clde_["CLBH"] = CLBH
  2172. clde_["CLMC"] = CLMC
  2173. clde_["JLDW"] = JLDW
  2174. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2175. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2176. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2177. clde.append(clde_)
  2178. else:
  2179. detail = pd.read_csv("de/tj/JD_PeiBi.csv")
  2180. filtered2 = detail[detail["RcjID"]==rcjID]
  2181. if len(filtered2) > 0:
  2182. CLBH = filtered2.iloc[0]["PBBH"]
  2183. CLMC = filtered2.iloc[0]["PBMC"]
  2184. JLDW = filtered2.iloc[0]["DW"]
  2185. YSJG = filtered2.iloc[0]["PBDJ"]
  2186. clde_["CLBH"] = CLBH
  2187. clde_["CLMC"] = CLMC
  2188. clde_["JLDW"] = JLDW
  2189. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2190. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2191. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2192. clde.append(clde_)
  2193. return filtered.to_json(force_ascii=False), id, rgde, jxde, clde, bz_selected.to_json(force_ascii=False) if len(bz_selected) > 0 else None, bz_selected2.to_json(force_ascii=False) if len(bz_selected2) > 0 else None
  2194. def getDwgc(root, id, Zylb):
  2195. result = []
  2196. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  2197. item = None
  2198. for child in root:
  2199. if child.tag == "Dxgcxx":
  2200. for child1 in child:
  2201. Dwgcbh = child1.attrib["Dwgcbh"]
  2202. if Dwgcbh == id:
  2203. item = child1
  2204. break
  2205. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  2206. id = id + "Zylb" + Zylb
  2207. for child in item:
  2208. if child.tag == "Fywj":
  2209. result.append({"id": id + "bao jia hui zong", "label": "报价汇总表"})
  2210. elif child.tag == "Gfsj":
  2211. result.append({"id": id + "gui fei shui jin", "label": "规费税金"})
  2212. elif child.tag == "Qdxm":
  2213. result.append({"id": id + "qing dan xiang mu", "label": "清单项目"})
  2214. elif child.tag == "Csxm":
  2215. result.append({"id": id + "cuo shi xiang mu", "label": "措施项目"})
  2216. elif child.tag == "Qtxm":
  2217. result.append({"id": id +"qi ta xiang mu", "label": "其他项目"})
  2218. elif child.tag == "Zlje":
  2219. result.append({"id": id +"zan lie jin e", "label": "暂列金额"})
  2220. elif child.tag == "Clzg":
  2221. result.append({"id": id +"cai liao zan gu jia", "label": "材料暂估价"})
  2222. elif child.tag == "Zygczg":
  2223. result.append({"id": id + "zhuan ye gong cheng zan gu jia", "label": "专业工程暂估价"})
  2224. elif child.tag == "Jrg":
  2225. result.append({"id": id + "ji ri gong", "label": "计日工"})
  2226. elif child.tag == "Zcbfwf":
  2227. result.append({"id": id + "zong cheng bao fu wu fei", "label": "总承包服务费"})
  2228. elif child.tag == "Zjxmjdkzffj":
  2229. result.append({"id": id + "zong jia xiang mu jin du kuan zhi fu fen jie", "label": "总价项目进度款支付分解"})
  2230. elif child.tag == "Fbrgycl":
  2231. result.append({"id": id + "fa bao ren gong ying cai liao", "label": "发包人供应材料"})
  2232. elif child.tag == "Cbrgycl":
  2233. result.append({"id": id + "cheng bao ren gong ying cai liao", "label": "承包人供应材料"})
  2234. elif child.tag == "Rcjhz":
  2235. result.append({"id": id + "ren cai ji hui zong", "label": "人材机汇总"})
  2236. else:
  2237. print(child.tag)
  2238. print("WARNING####################################################################")
  2239. return result