service.py 93 KB

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