service.py 94 KB

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