service.py 132 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161
  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 random
  7. import uuid
  8. import re
  9. from fastapi.middleware.cors import CORSMiddleware
  10. from pydantic import BaseModel
  11. import pandas as pd
  12. from numpy import float64, int64
  13. import numpy as np
  14. def jgfb(bianma, mingcheng, danwei):
  15. df = pd.read_csv("lsj/cailiao.csv", dtype='str')
  16. result=df[df['danwei']==danwei]
  17. df=result[result['bianma']==bianma]
  18. npa = []
  19. for i in range(len(df)):
  20. npa.append(float(df.iloc[i]['jiage']))
  21. a,b = np.histogram(npa)
  22. y = []
  23. result={'x': [x.item() for x in a]}
  24. for i in range(len(a)):
  25. y.append((b[i].item() + b[i+1].item()) / 2)
  26. result['y'] = y
  27. return result
  28. def lsj(bianma, mingcheng, danwei):
  29. df = pd.read_csv("lsj/cailiao.csv", dtype='str')
  30. result=df[df['danwei']==danwei]
  31. df=result[result['bianma']==bianma]
  32. result=[]
  33. for i in range(len(df)):
  34. result.append({'id': i, '名称': df.iloc[i]['mingcheng'], '规格': '', '单位': df.iloc[i]['danwei'], '除税单价': df.iloc[i]['jiage']})
  35. if len(result) > 100:
  36. result = random.sample(result, 100)
  37. return result
  38. def xxj(city, month):
  39. df = pd.read_csv("xxj/202511nt.csv", dtype='str')
  40. df = df.fillna('')
  41. result=[]
  42. for i in range(len(df)):
  43. result.append({'id': i, '名称': df.iloc[i]['材料名称'], '规格': df.iloc[i]['规格'], '单位': df.iloc[i]['计量 单位'], '除税单价': df.iloc[i]['除税价格 (元)'], '含税单价': df.iloc[i]['含税价格 (元)'], '税率': df.iloc[i]['税率']})
  44. return result
  45. def jxtiaozheng(origin, jxbh, gong, chaiyou, qiyou, dian):
  46. with open("de/tj/jxchaifen", "r") as f:
  47. content = f.read()
  48. mapping = json.loads(content)
  49. if jxbh in mapping:
  50. li = mapping[jxbh]
  51. sum = 0
  52. for entry in li:
  53. if entry['mc']=='电':
  54. sum = sum + float(entry['sl'])*float(dian)
  55. elif entry['mc']=='柴油':
  56. sum = sum + float(entry['sl'])*float(chaiyou)
  57. elif entry['mc']=='汽油':
  58. sum = sum + float(entry['sl'])*float(qiyou)
  59. elif entry['dw']=='工日':
  60. sum = sum + float(entry['sl'])*float(gong)
  61. else:
  62. sum = sum + float(entry['sl'])*float(entry['jg'])
  63. return sum
  64. else:
  65. return float(origin)
  66. def chaifen(result, zhuanye):
  67. clde = result['clde']
  68. if clde == None:
  69. return result
  70. if zhuanye == 10:
  71. pbf = pd.read_csv("de/tj/JD_PeiBiF.csv")
  72. clk = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  73. elif zhuanye == 20:
  74. pbf = pd.read_csv("de/sz/JD_PeiBiF.csv")
  75. clk = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  76. elif zhuanye == 30:
  77. pbf = pd.read_csv("de/az/JD_PeiBiF.csv")
  78. clk = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  79. elif zhuanye == 40:
  80. pbf = pd.read_csv("de/yl/JD_PeiBiF.csv")
  81. clk = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  82. elif zhuanye == 50:
  83. pbf = pd.read_csv("de/xstj/JD_PeiBiF.csv")
  84. clk = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  85. else:
  86. pbf = pd.read_csv("de/xsaz/JD_PeiBiF.csv")
  87. clk = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  88. for entry in clde:
  89. filtered = pbf[pbf["PBBH"]==entry['CLBH']]
  90. if len(filtered) > 0:
  91. entry["children"] = []
  92. ids = filtered['RcjID'].tolist()
  93. cls = clk[clk['RcjID'].isin(ids)]
  94. joined = pd.merge(filtered, cls, on='RcjID')
  95. for row in joined.itertuples():
  96. CLBH = row.CLBH
  97. CLMC = row.CLMC
  98. JLDW = row.JLDW
  99. YSJG = row.Csdj
  100. SL = float(row.SL) * float(entry['SL'])
  101. HJ = float(row.HJ) * float(entry['SL'])
  102. entry['children'].append({'CLBH': CLBH,
  103. 'CLMC': CLMC,
  104. 'JLDW': JLDW,
  105. 'YSJG': YSJG,
  106. 'SL': SL,
  107. 'HJ': HJ
  108. })
  109. ##print(result)
  110. return result
  111. def getQingdanTuijian(bh, bt, bm):
  112. result = []
  113. try:
  114. all = pd.read_csv("QingDanAllInOne.csv")
  115. bm_ = int(bm) // 1000
  116. hit = all[all["qdbh"] == str(bm_)]
  117. for i in range(len(hit)):
  118. result.append({'ID': hit.iloc[i]["index"].item(), '定额编号': hit.iloc[i]["debh"], '工程量名称': hit.iloc[i]["gclmc"], '工作内容': hit.iloc[i]["work"]})
  119. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  120. finally:
  121. return result
  122. def getQdmx(root, bh, bt):
  123. result = []
  124. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费", "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  125. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  126. item = None
  127. for child in root:
  128. if child.tag == "Dxgcxx":
  129. for child1 in child:
  130. Dwgcbh = child1.attrib["Dwgcbh"]
  131. if Dwgcbh == bh:
  132. item = child1
  133. break
  134. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  135. Fywj = None
  136. for child in item:
  137. if child.tag == 'Qdxm':
  138. Fywj= child
  139. break
  140. container = None
  141. for child in Fywj:
  142. ##child is mx
  143. if child.tag == "QdBt":
  144. if child.attrib["Mc"] == bt:
  145. count = 0
  146. for grandchild in child:
  147. count = count + 1
  148. if count > 0:
  149. container = child
  150. break
  151. if container == None:
  152. container = Fywj
  153. for child in container:
  154. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费",
  155. # "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  156. result.append({
  157. "操作" : "",
  158. "序号": child.attrib["Xh"], "清单编码" : child.attrib["Qdbm"], "名称" : child.attrib["Mc"],"项目特征" : child.attrib["Xmtz"],
  159. "计算规则" : child.attrib["Jsgz"],
  160. "单位" : child.attrib["Dw"],
  161. "数量": child.attrib["Sl"],
  162. "综合单价" : child.attrib["Zhdj"],
  163. "合价" : child.attrib["Zhhj"],
  164. "人工费": child.attrib["Rgf"],
  165. "主材费" : child.attrib["Zcf"],
  166. "设备费": child.attrib["Sbf"],
  167. "辅材费": child.attrib["Fcf"],
  168. "材料费" : child.attrib["Clf"],
  169. "机械费" : child.attrib["Jxf"],
  170. "管理费": child.attrib["Glf"],
  171. "利润": child.attrib["Lr"],
  172. "暂估价" : child.attrib["Zgj"],
  173. "综合人工工日" : child.attrib["Zgr"],
  174. "备注" : child.attrib["Bz"]}
  175. )
  176. for child_zj in child:
  177. if child_zj.tag == "Qdxdezj":
  178. for child_mx in child_zj:
  179. if child_mx.tag == "QdxdezjMx":
  180. key = str(uuid.uuid4())
  181. child_mx.set("key", key)
  182. ##print("set key")
  183. ##print(key)
  184. ##print(child_mx)
  185. parent = result[-1]
  186. if "__children" in parent:
  187. parent["__children"].append({
  188. "key": key,
  189. "操作" : "",
  190. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  191. "计算规则" : None,
  192. "单位" : child_mx.attrib["Dw"],
  193. "数量": child_mx.attrib["DwQdSl"],
  194. "综合单价" : child_mx.attrib["Dj"],
  195. "合价" : child_mx.attrib["Hj"],
  196. "人工费": child_mx.attrib["Rgf"],
  197. "主材费" : child_mx.attrib["Zcf"],
  198. "设备费": child_mx.attrib["Sbf"],
  199. "辅材费": child_mx.attrib["Fcf"],
  200. "材料费" : child_mx.attrib["Clf"],
  201. "机械费" : child_mx.attrib["Jxf"],
  202. "管理费": child_mx.attrib["Glf"],
  203. "利润": child_mx.attrib["Lr"],
  204. "暂估价" : None,
  205. "综合人工工日" : None,
  206. "备注" : None}
  207. )
  208. else:
  209. parent["__children"] = [{
  210. "key": key,
  211. "操作" : "",
  212. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  213. "计算规则" : None,
  214. "单位" : child_mx.attrib["Dw"],
  215. "数量": child_mx.attrib["DwQdSl"],
  216. "综合单价" : child_mx.attrib["Dj"],
  217. "合价" : child_mx.attrib["Hj"],
  218. "人工费": child_mx.attrib["Rgf"],
  219. "主材费" : child_mx.attrib["Zcf"],
  220. "设备费": child_mx.attrib["Sbf"],
  221. "辅材费": child_mx.attrib["Fcf"],
  222. "材料费" : child_mx.attrib["Clf"],
  223. "机械费" : child_mx.attrib["Jxf"],
  224. "管理费": child_mx.attrib["Glf"],
  225. "利润": child_mx.attrib["Lr"],
  226. "暂估价" : None,
  227. "综合人工工日" : None,
  228. "备注" : None}]
  229. return result
  230. def getQdmx_default(root, bh, bt):
  231. result = []
  232. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费", "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  233. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  234. item = None
  235. for child in root:
  236. if child.tag == "Dxgcxx":
  237. for child1 in child:
  238. Dwgcbh = child1.attrib["Dwgcbh"]
  239. if Dwgcbh == bh:
  240. item = child1
  241. break
  242. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  243. Fywj = None
  244. for child in item:
  245. if child.tag == 'Qdxm':
  246. Fywj= child
  247. break
  248. container = None
  249. for child in Fywj:
  250. ##child is mx
  251. if child.tag == "Qdmx":
  252. #result = [["序号", "清单编码", "名称", "项目特征", "计算规则", "单位", "数量", "综合单价", "合价", "人工费", "主材费",
  253. # "设备费", "辅材费", "材料费", "机械费", "管理费", "利润" , "暂估价", "综合人工工日", "备注" ]]
  254. result.append({
  255. "操作" : "",
  256. "序号": child.attrib["Xh"], "清单编码" : child.attrib["Qdbm"], "名称" : child.attrib["Mc"],"项目特征" : child.attrib["Xmtz"],
  257. "计算规则" : child.attrib["Jsgz"],
  258. "单位" : child.attrib["Dw"],
  259. "数量": child.attrib["Sl"],
  260. "综合单价" : child.attrib["Zhdj"],
  261. "合价" : child.attrib["Zhhj"],
  262. "人工费": child.attrib["Rgf"],
  263. "主材费" : child.attrib["Zcf"],
  264. "设备费": child.attrib["Sbf"],
  265. "辅材费": child.attrib["Fcf"],
  266. "材料费" : child.attrib["Clf"],
  267. "机械费" : child.attrib["Jxf"],
  268. "管理费": child.attrib["Glf"],
  269. "利润": child.attrib["Lr"],
  270. "暂估价" : child.attrib["Zgj"],
  271. "综合人工工日" : child.attrib["Zgr"],
  272. "备注" : child.attrib["Bz"]}
  273. )
  274. for child_zj in child:
  275. if child_zj.tag == "Qdxdezj":
  276. for child_mx in child_zj:
  277. if child_mx.tag == "QdxdezjMx":
  278. key = str(uuid.uuid4())
  279. child_mx.set("key", key)
  280. ##print("set key")
  281. ##print(key)
  282. ##print(child_mx)
  283. parent = result[-1]
  284. if "__children" in parent:
  285. parent["__children"].append({
  286. "key": key,
  287. "操作" : "",
  288. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  289. "计算规则" : None,
  290. "单位" : child_mx.attrib["Dw"],
  291. "数量": child_mx.attrib["DwQdSl"],
  292. "综合单价" : child_mx.attrib["Dj"],
  293. "合价" : child_mx.attrib["Hj"],
  294. "人工费": child_mx.attrib["Rgf"],
  295. "主材费" : child_mx.attrib["Zcf"],
  296. "设备费": child_mx.attrib["Sbf"],
  297. "辅材费": child_mx.attrib["Fcf"],
  298. "材料费" : child_mx.attrib["Clf"],
  299. "机械费" : child_mx.attrib["Jxf"],
  300. "管理费": child_mx.attrib["Glf"],
  301. "利润": child_mx.attrib["Lr"],
  302. "暂估价" : None,
  303. "综合人工工日" : None,
  304. "备注" : None}
  305. )
  306. else:
  307. parent["__children"] = [{
  308. "key": key,
  309. "操作" : "",
  310. "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
  311. "计算规则" : None,
  312. "单位" : child_mx.attrib["Dw"],
  313. "数量": child_mx.attrib["DwQdSl"],
  314. "综合单价" : child_mx.attrib["Dj"],
  315. "合价" : child_mx.attrib["Hj"],
  316. "人工费": child_mx.attrib["Rgf"],
  317. "主材费" : child_mx.attrib["Zcf"],
  318. "设备费": child_mx.attrib["Sbf"],
  319. "辅材费": child_mx.attrib["Fcf"],
  320. "材料费" : child_mx.attrib["Clf"],
  321. "机械费" : child_mx.attrib["Jxf"],
  322. "管理费": child_mx.attrib["Glf"],
  323. "利润": child_mx.attrib["Lr"],
  324. "暂估价" : None,
  325. "综合人工工日" : None,
  326. "备注" : None}]
  327. return result
  328. def getQdxm_addition(root, id):
  329. result = []
  330. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  331. item = None
  332. for child in root:
  333. if child.tag == "Dxgcxx":
  334. for child1 in child:
  335. Dwgcbh = child1.attrib["Dwgcbh"]
  336. if Dwgcbh == id:
  337. item = child1
  338. break
  339. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  340. Fywj = None
  341. for child in item:
  342. if child.tag == 'Qdxm':
  343. Fywj= child
  344. break
  345. for child in Fywj:
  346. ##child is mx
  347. if child.tag == "QdBt":
  348. count = 0
  349. for grandchild in child:
  350. count = count + 1
  351. if count > 0:
  352. result.append({'Bz': child.attrib["Bz"], 'Je': child.attrib['Je'], 'Mc': child.attrib['Mc'], 'Xh': child.attrib['Xh'], 'Zgj': child.attrib['Zgj']})
  353. return result
  354. def getQdxm(root, id):###qdxm下面既有qdmx,也有qdbt,qdbt可能为空
  355. result = []
  356. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  357. item = None
  358. for child in root:
  359. if child.tag == "Dxgcxx":
  360. for child1 in child:
  361. Dwgcbh = child1.attrib["Dwgcbh"]
  362. if Dwgcbh == id:
  363. item = child1
  364. break
  365. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  366. Fywj = None
  367. for child in item:
  368. if child.tag == 'Qdxm':
  369. Fywj= child
  370. break
  371. for child in Fywj:
  372. ##child is mx
  373. if child.tag == 'Qdmx':
  374. if 'Default' in result:
  375. pass
  376. else:
  377. result.append('Default')
  378. if child.tag == "QdBt":
  379. count = 0
  380. for grandchild in child:
  381. count = count + 1
  382. if count > 0:
  383. result.append(child.attrib["Mc"])
  384. return result
  385. def getZjcs(root, id):
  386. result = []
  387. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  388. item = None
  389. for child in root:
  390. if child.tag == "Dxgcxx":
  391. for child1 in child:
  392. Dwgcbh = child1.attrib["Dwgcbh"]
  393. if Dwgcbh == id:
  394. item = child1
  395. break
  396. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  397. Fywj = None
  398. for child in item:
  399. if child.tag == 'Csxm':
  400. Fywj= child
  401. break
  402. Zjcs_parent = None
  403. for child in Fywj:
  404. if child.tag == 'ZjCs':
  405. Zjcs_parent = child
  406. break
  407. for child in Zjcs_parent:
  408. ##child is mx {
  409. result.append({
  410. "序号" : child.attrib["Xh"], "清单编码": child.attrib["Bm"], "名称" : child.attrib["Mc"],
  411. "计算基数" : child.attrib["Js"],
  412. "计算基础" : child.attrib["Jsjc"], "费率" : child.attrib["Fl"],
  413. "金额" : child.attrib["Je"], "项目类别" : child.attrib["Xmlb"]})
  414. __children = []
  415. for grandchild in child:
  416. __children.append({
  417. "序号" : None, "清单编码": None, "名称" : grandchild.attrib["Mc"],
  418. "计算基数" : grandchild.attrib["Js"],
  419. "计算基础" : grandchild.attrib["Jsjc"], "费率" : grandchild.attrib["Fl"],
  420. "金额" : grandchild.attrib["Je"], "项目类别" : grandchild.attrib["Xmlb"]})
  421. if len(__children) > 0:
  422. result[-1]["__children"] = __children
  423. return result
  424. def getZcbfwf(root, id):
  425. result = []
  426. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  427. item = None
  428. for child in root:
  429. if child.tag == "Dxgcxx":
  430. for child1 in child:
  431. Dwgcbh = child1.attrib["Dwgcbh"]
  432. if Dwgcbh == id:
  433. item = child1
  434. break
  435. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  436. Fywj = None
  437. for child in item:
  438. if child.tag == 'Zcbfwf':
  439. Fywj= child
  440. break
  441. for child in Fywj:
  442. result.append(
  443. {'序号': child.attrib["Xh"],
  444. "名称" : child.attrib["Mc"], "项目价值" : child.attrib["Xmjz"], "服务内容" :child.attrib["Fwnr"], "计算基础" :child.attrib["Jsjc"],
  445. "费率" :child.attrib["Fl"], "金额" :child.attrib["Je"]}
  446. )
  447. return result
  448. def getRcjhz(root, id):
  449. result = [[ "ID", "编码", "名称", "规格型号", "单位", "数量", "单价", "合价", "产地",
  450. "供应厂商", "人材机类别", "主要材料标志", "主材标志", "设备标志", "甲供标志", "暂估价标志"]]
  451. for child in root:
  452. if child.tag == "Dxgcxx":
  453. for child1 in child:
  454. Dwgcbh = child1.attrib["Dwgcbh"]
  455. if Dwgcbh == id:
  456. item = child1
  457. break
  458. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  459. Fywj = None
  460. for child in item:
  461. if child.tag == 'Rcjhz':
  462. Fywj= child
  463. break
  464. for child in Fywj:
  465. result.append(
  466. [
  467. child.attrib["RcjId"], child.attrib["RcjBm"], child.attrib["Mc"], child.attrib["Ggxh"],
  468. child.attrib["Dw"], child.attrib["Sl"], child.attrib["Dj"], child.attrib["Hj"],
  469. child.attrib["Cd"], child.attrib["Gycs"], child.attrib["Rcjlb"],
  470. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"], child.attrib["Jgbz"],
  471. child.attrib["Zgjbz"]]
  472. )
  473. return result
  474. def getFbrgycl(root, id):
  475. result = []
  476. for child in root:
  477. if child.tag == "Dxgcxx":
  478. for child1 in child:
  479. Dwgcbh = child1.attrib["Dwgcbh"]
  480. if Dwgcbh == id:
  481. item = child1
  482. break
  483. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  484. Fywj = None
  485. for child in item:
  486. if child.tag == 'Fbrgycl':
  487. Fywj= child
  488. break
  489. for child in Fywj:
  490. result.append(
  491. {'序号': child.attrib["Xh"],
  492. 'ID': child.attrib["RcjId"], '材料编号': child.attrib["Clbh"], '名称': child.attrib["Mc"], '规格型号': child.attrib["Ggxh"],
  493. '单位': child.attrib["Dw"], '数量': child.attrib["Sl"], '单价': child.attrib["Dj"], '合价': child.attrib["Hj"], '交货方式': child.attrib["Jhfs"],
  494. '送达地点': child.attrib["Sddd"], '备注': child.attrib["Bz"]}
  495. )
  496. return result
  497. def getJrg(root, id):
  498. result = []
  499. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  500. item = None
  501. for child in root:
  502. if child.tag == "Dxgcxx":
  503. for child1 in child:
  504. Dwgcbh = child1.attrib["Dwgcbh"]
  505. if Dwgcbh == id:
  506. item = child1
  507. break
  508. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  509. Fywj = None
  510. for child in item:
  511. if child.tag == 'Jrg':
  512. Fywj= child
  513. break
  514. for child in Fywj:
  515. result.append(
  516. {'序号': child.attrib["Xh"],
  517. '名称': child.attrib["Mc"], '金额': child.attrib["Je"], '类别': child.attrib["Lb"]}
  518. )
  519. return result
  520. def getZlje(root, id):
  521. result = []
  522. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  523. item = None
  524. for child in root:
  525. if child.tag == "Dxgcxx":
  526. for child1 in child:
  527. Dwgcbh = child1.attrib["Dwgcbh"]
  528. if Dwgcbh == id:
  529. item = child1
  530. break
  531. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  532. Fywj = None
  533. for child in item:
  534. if child.tag == 'Zlje':
  535. Fywj= child
  536. break
  537. for child in Fywj:
  538. result.append(
  539. {'序号': child.attrib["Xh"],
  540. '名称': child.attrib["Mc"], '单位': child.attrib["Dw"], '暂定金额': child.attrib["Zdje"], '备注': child.attrib["Bz"]}
  541. )
  542. return result
  543. def getZygczgj(root, id):
  544. result = []
  545. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  546. item = None
  547. for child in root:
  548. if child.tag == "Dxgcxx":
  549. for child1 in child:
  550. Dwgcbh = child1.attrib["Dwgcbh"]
  551. if Dwgcbh == id:
  552. item = child1
  553. break
  554. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  555. Fywj = None
  556. for child in item:
  557. if child.tag == 'Zygczg':
  558. Fywj= child
  559. break
  560. for child in Fywj:
  561. result.append(
  562. {'序号': child.attrib["Xh"],
  563. '名称': child.attrib["Mc"], '工程内容': child.attrib["Gcnr"], '金额': child.attrib["Je"], '备注': child.attrib["Bz"]}
  564. )
  565. return result
  566. def getQtxm(root, id):
  567. result = []
  568. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  569. item = None
  570. for child in root:
  571. if child.tag == "Dxgcxx":
  572. for child1 in child:
  573. Dwgcbh = child1.attrib["Dwgcbh"]
  574. if Dwgcbh == id:
  575. item = child1
  576. break
  577. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  578. Fywj = None
  579. for child in item:
  580. if child.tag == 'Qtxm':
  581. Fywj= child
  582. break
  583. for child in Fywj:
  584. ##child is mx
  585. xh = child.attrib["Xh"]
  586. if "." in xh:
  587. count = 0
  588. for entry in xh:
  589. if entry == ".":
  590. count = count + 1
  591. if count == 1:
  592. parent = result[-1]
  593. if "__children" in parent:
  594. children = parent["__children"]
  595. children.append(
  596. {"序号":xh, "名称": child.attrib["Mc"],
  597. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}
  598. )
  599. else:
  600. parent["__children"] = [
  601. {"序号":xh, "名称": child.attrib["Mc"],
  602. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}]
  603. else:
  604. result.append(
  605. {"序号":xh, "名称": child.attrib["Mc"],
  606. "金额": child.attrib["Je"], "项目类别" : child.attrib["Xmlb"], "备注" : child.attrib["Bz"]}
  607. )
  608. return result
  609. def getGfsj(root, id):
  610. result = []
  611. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  612. item = None
  613. for child in root:
  614. if child.tag == "Dxgcxx":
  615. for child1 in child:
  616. Dwgcbh = child1.attrib["Dwgcbh"]
  617. if Dwgcbh == id:
  618. item = child1
  619. break
  620. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  621. Fywj = None
  622. for child in item:
  623. if child.tag == 'Gfsj':
  624. Fywj= child
  625. break
  626. for child in Fywj:
  627. ##child is mx
  628. xh = child.attrib["Xh"]
  629. if "." in xh:
  630. count = 0
  631. for entry in xh:
  632. if entry == ".":
  633. count = count + 1
  634. if count == 1:
  635. parent = result[-1]
  636. if "__children" in parent:
  637. children = parent["__children"]
  638. children.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  639. else:
  640. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]}]
  641. elif count == 2:
  642. parent = result[-1]
  643. if "__children" in parent:
  644. parent = parent["__children"][-1]
  645. ##print(parent)
  646. if "__children" in parent:
  647. children = parent["__children"]
  648. children.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  649. else:
  650. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]}]
  651. else:
  652. ###["序号", "名称", "取费基数", "计算基础", "金额", "类别"]);
  653. result.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"], "类别" : child.attrib["Fyxlb"]})
  654. return result
  655. def getBjhz(root, id):
  656. ##print(root)
  657. ##print(id)
  658. result = []
  659. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  660. item = None
  661. for child in root:
  662. if child.tag == "Dxgcxx":
  663. for child1 in child:
  664. Dwgcbh = child1.attrib["Dwgcbh"]
  665. if Dwgcbh == id:
  666. item = child1
  667. break
  668. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  669. ##print(item)
  670. Fywj = None
  671. for child in item:
  672. if child.tag == 'Fywj':
  673. Fywj= child
  674. break
  675. for child in Fywj:
  676. ##child is mx
  677. xh = child.attrib["Xh"]
  678. if "." in xh:
  679. count = 0
  680. for entry in xh:
  681. if entry == ".":
  682. count = count + 1
  683. if count == 1:
  684. parent = result[-1]
  685. if "__children" in parent:
  686. children = parent["__children"]
  687. children.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  688. else:
  689. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]}]
  690. elif count == 2:
  691. parent = result[-1]
  692. if "__children" in parent:
  693. parent = parent["__children"][-1]
  694. ##print(parent)
  695. if "__children" in parent:
  696. children = parent["__children"]
  697. children.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  698. else:
  699. parent["__children"] = [{"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"], "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]}]
  700. else:
  701. ###"序号", "名称", "金额", "暂估价", "类别"]
  702. result.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"],
  703. "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
  704. return result
  705. def processQds(dataframe, from_, end, level):
  706. result = []
  707. for i in range(from_, end):
  708. item = dataframe.iloc[i]
  709. fbcch = str(item['fbcch'])
  710. if fbcch == str(level):
  711. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "name": str(item['qdbh']) + " " + str(item["xmmc"]), "title": str(item['qdbh'])}
  712. next = i + 1
  713. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  714. next = next + 1
  715. entry["children"] = processQds(dataframe, i + 1, next, level + 1)
  716. result.append(entry)
  717. return result
  718. def processDes(dataframe, from_, end, level):
  719. result = []
  720. for i in range(from_, end):
  721. item = dataframe.iloc[i]
  722. fbcch = str(item['fbcch'])
  723. if fbcch == str(level):
  724. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["zjbt"]), "title": str(item["zjbt"])}
  725. next = i + 1
  726. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  727. next = next + 1
  728. entry["children"] = processDes(dataframe, i + 1, next, level + 1)
  729. result.append(entry)
  730. return result
  731. def processPbs(dataframe, from_, end, level):
  732. result = []
  733. for i in range(from_, end):
  734. item = dataframe.iloc[i]
  735. fbcch = str(item['fbcch'])
  736. if fbcch == str(level):
  737. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["flmc"]),"title": str(item["flmc"]), "data": item["pblbh"]}
  738. next = i + 1
  739. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  740. next = next + 1
  741. entry["children"] = processPbs(dataframe, i + 1, next, level + 1)
  742. result.append(entry)
  743. return result
  744. def processJxs(dataframe, from_, end, level):
  745. result = []
  746. for i in range(from_, end):
  747. item = dataframe.iloc[i]
  748. fbcch = str(item['fbcch'])
  749. if fbcch == str(level):
  750. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["flmc"]),"title": str(item["flmc"]), "data": item["jxlbh"]}
  751. next = i + 1
  752. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  753. next = next + 1
  754. entry["children"] = processJxs(dataframe, i + 1, next, level + 1)
  755. result.append(entry)
  756. return result
  757. def processCls(dataframe, from_, end, level):
  758. result = []
  759. for i in range(from_, end):
  760. item = dataframe.iloc[i]
  761. fbcch = str(item['fbcch'])
  762. if fbcch == str(level):
  763. entry = {"id": str(item["ID"]),"key": str(item["ID"]), "value": str(item["ID"]), "label": str(item["flmc"]),"title": str(item["flmc"]), "data": item["cllbh"].item() if type(item["cllbh"]) == int64 else item["cllbh"]}
  764. ##print(entry)
  765. next = i + 1
  766. while next < end and str(dataframe.iloc[next]["fbcch"]) != str(level):
  767. next = next + 1
  768. entry["children"] = processCls(dataframe, i + 1, next, level + 1)
  769. result.append(entry)
  770. return result
  771. def getCankao():
  772. tree = ET.parse('de/DeData_Fl.xml')
  773. root = tree.getroot()
  774. JSFF = None
  775. CsFl = None
  776. result = []
  777. for child in root:
  778. if child.tag == "JJFF":
  779. for grandchild in child:
  780. if grandchild.tag == 'JSFF':
  781. JSFF = grandchild
  782. for child in JSFF:
  783. if child.attrib['Markup'] == '1':
  784. for grandchild in child:
  785. if grandchild.tag == 'CsFl':
  786. CsFl = grandchild
  787. for child in CsFl:
  788. result.append({'工程类型': child.attrib['Gclx'], '名称': child.attrib['Mc'], '计算基础': child.attrib['Jsjc'],
  789. '参考费率': child.attrib['CkFl'], '地区': child.attrib['Dq'], '备注': child.attrib['Bz']})
  790. return result
  791. def getQds():
  792. shu = pd.read_csv("JD_QingDanXM.csv")
  793. length = len(shu)
  794. return processQds(shu, 0, length, 1)
  795. def getQingdan(bm):
  796. shu = pd.read_csv("JD_QingDanXM.csv")
  797. filtered = shu[shu['qdbh']==(bm)]
  798. filtered = filtered.fillna("")
  799. print(filtered)
  800. if len(filtered) == 0:
  801. return []
  802. data = filtered.iloc[0]
  803. tz = pd.read_csv("JD_QingDanTZ.csv")
  804. tz_ = tz[tz['Qdbm'] == data['qdbh']]['Qdtz']
  805. tz_list = tz_.to_list()
  806. nr = pd.read_csv("JD_QingDanGZNR.csv")
  807. nr_ = nr[nr['Qdbm'] == data['qdbh']]['Gznr']
  808. nr_list = nr_.to_list()
  809. return [{
  810. "id" : data['ID'].item(),
  811. "清单编码" : data['qdbh'],
  812. "项目名称" : data["xmmc"],
  813. "项目特征" : "\n".join(tz_list),
  814. "计量单位" : data["dw"],
  815. "工程量计算规则" : data["qdjsgz"],
  816. "工作内容" : "\n".join(nr_list)
  817. }]
  818. def getDes(value):
  819. if value == 10:
  820. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  821. elif value == 20:
  822. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  823. elif value == 30:
  824. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  825. elif value == 40:
  826. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  827. elif value == 50:
  828. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  829. else:
  830. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  831. length = len(shu)
  832. return processDes(shu, 1, length, 2)
  833. def getPbs(value):
  834. if value == 10:
  835. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  836. elif value == 20:
  837. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  838. elif value == 30:
  839. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  840. else:
  841. return []
  842. length = len(shu)
  843. return processPbs(shu, 0, length, 1)
  844. def getJxs(value):
  845. if value == 10:
  846. shu = pd.read_csv("de/tj/JD_JiXieFLB.csv")
  847. elif value == 20:
  848. shu = pd.read_csv("de/tj/JD_JiXieFLB.csv")
  849. elif value == 30:
  850. shu = pd.read_csv("de/tj/JD_JiXieFLB.csv")
  851. else:
  852. return []
  853. length = len(shu)
  854. return processJxs(shu, 0, length, 1)
  855. def getCls(value):
  856. if value == 10:
  857. shu = pd.read_csv("de/tj/JD_CaiLiaoFLB.csv")
  858. elif value == 20:
  859. shu = pd.read_csv("de/sz/JD_CaiLiaoFLB.csv")
  860. elif value == 30:
  861. shu = pd.read_csv("de/az/JD_CaiLiaoFLB.csv")
  862. elif value == 40:
  863. shu = pd.read_csv("de/yl/JD_CaiLiaoFLB.csv")
  864. elif value == 50:
  865. shu = pd.read_csv("de/xstj/JD_CaiLiaoFLB.csv")
  866. elif value == 60:
  867. shu = pd.read_csv("de/xsaz/JD_CaiLiaoFLB.csv")
  868. else:
  869. return []
  870. length = len(shu)
  871. return processCls(shu, 0, length, 1)
  872. def read_singledexilie_tjazfy(debh):
  873. id = "412"
  874. r_debh = debh.split("!")[0]
  875. if len(debh.split("!")) == 1:
  876. return json.dumps({
  877. "reverse": id,
  878. "rgde": [],
  879. "jxde": [],
  880. "clde": [],
  881. "actual_zhuanye": 10,
  882. "bz_selected": {"BZBH": {}},
  883. "bz_selected2": {"BZBH": {}}
  884. }, ensure_ascii=False)
  885. gclmc = debh.split("!")[1]
  886. return json.dumps({
  887. "reverse": id,
  888. "DEBH": {"111": r_debh},
  889. "GCLMC": {"111": gclmc},
  890. "DW": {"111": '项'},
  891. "rgde": [],
  892. "jxde": [],
  893. "clde": [],
  894. "actual_zhuanye": 10,
  895. "bz_selected": {"BZBH": {}},
  896. "bz_selected2": {"BZBH": {}}
  897. }, ensure_ascii=False)
  898. def read_singledexilie_xsazfy(debh):
  899. id = "None"
  900. if "-F1" in debh:
  901. id = "185"
  902. elif "-F2" in debh:
  903. id = "186"
  904. elif "-F3" in debh:
  905. id = "187"
  906. r_debh = debh.split("!")[0]
  907. if len(debh.split("!")) == 1:
  908. return json.dumps({
  909. "reverse": id,
  910. "rgde": [],
  911. "jxde": [],
  912. "clde": [],
  913. "actual_zhuanye": 60,
  914. "bz_selected": {"BZBH": {}},
  915. "bz_selected2": {"BZBH": {}}
  916. }, ensure_ascii=False)
  917. gclmc = debh.split("!")[1]
  918. return json.dumps({
  919. "reverse": id,
  920. "DEBH": {"111": r_debh},
  921. "GCLMC": {"111": gclmc},
  922. "DW": {"111": '项'},
  923. "rgde": [],
  924. "jxde": [],
  925. "clde": [],
  926. "actual_zhuanye": 60,
  927. "bz_selected": {"BZBH": {}},
  928. "bz_selected2": {"BZBH": {}}
  929. }, ensure_ascii=False)
  930. def read_singledexilie_azfy(debh):
  931. id = "None"
  932. if "-F1" in debh:
  933. id = "2076"
  934. elif "-F2" in debh:
  935. id = "2077"
  936. elif "-F3" in debh:
  937. id = "2078"
  938. elif "-F4" in debh:
  939. id = "2079"
  940. elif "-F5" in debh:
  941. if '4-F5' in debh:
  942. id = "2081"
  943. elif '5-F5' in debh:
  944. id = '2082'
  945. elif '7-F5' in debh:
  946. id = '2083'
  947. elif '9-F5' in debh:
  948. id = '2084'
  949. elif '10-F5' in debh:
  950. id = '2085'
  951. elif '11-F5' in debh:
  952. id = '2086'
  953. elif "-F6" in debh:
  954. id = "2087"
  955. r_debh = debh.split("!")[0]
  956. if len(debh.split("!")) == 1:
  957. return json.dumps({
  958. "reverse": id,
  959. "rgde": [],
  960. "jxde": [],
  961. "clde": [],
  962. "actual_zhuanye": 30,
  963. "bz_selected": {"BZBH": {}},
  964. "bz_selected2": {"BZBH": {}}
  965. }, ensure_ascii=False)
  966. gclmc = debh.split("!")[1]
  967. return json.dumps({
  968. "reverse": id,
  969. "DEBH": {"111": r_debh},
  970. "GCLMC": {"111": gclmc},
  971. "DW": {"111": '项'},
  972. "rgde": [],
  973. "jxde": [],
  974. "clde": [],
  975. "actual_zhuanye": 30,
  976. "bz_selected": {"BZBH": {}},
  977. "bz_selected2": {"BZBH": {}}
  978. }, ensure_ascii=False)
  979. def getDeXilie_xsazfy(value, id):
  980. if int(id) == 184:
  981. return "{\"Unnamed: 0\":{},\"id\":{},\"DEBH\":{},\"GCLMC\":{},\"GCLSJDJ\":{},\"DW\":{},\"DeId\":{}}"
  982. if int(id) == 185:
  983. data = {'DW': ['项', '项', '项'],
  984. 'DEBH': ['1-F1', '2-F1', '3-F1'],
  985. "GCLMC": [ "第一章" , "第二章", "第三章"],
  986. "GCLSJDJ": ["0", "0", "0"]}
  987. df = pd.DataFrame(data)
  988. return df.to_json(force_ascii=False)
  989. if int(id) == 186:
  990. data = {'DW': ['项', '项', '项'],
  991. 'DEBH': ['1-F2', '2-F2', '3-F2'],
  992. "GCLMC": [ "第一章" , "第二章", "第三章"],
  993. "GCLSJDJ": ["0", "0", "0"]}
  994. df = pd.DataFrame(data)
  995. return df.to_json(force_ascii=False)
  996. if int(id) == 187:
  997. data = {'DW': ['项', '项', '项'],
  998. 'DEBH': ['1-F3', '2-F3', '3-F3'],
  999. "GCLMC": [ "第一章" , "第二章", "第三章"],
  1000. "GCLSJDJ": ["0", "0", "0"]}
  1001. df = pd.DataFrame(data)
  1002. return df.to_json(force_ascii=False)
  1003. def getDeXilie_azfy(value, id):
  1004. if int(id) == 2075 or int(id) == 2080:
  1005. return "{\"Unnamed: 0\":{},\"id\":{},\"DEBH\":{},\"GCLMC\":{},\"GCLSJDJ\":{},\"DW\":{},\"DeId\":{}}"
  1006. if int(id) == 2076:
  1007. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项", "项", "项", "项", "项", "项"],
  1008. 'DEBH': ['2-F1', '2-F1', '3-F1', '3-F1', '4-F1',
  1009. '5-F1', '6-F1', '7-F1', '8-F1', '9-F1', '10-F1', '11-F1', '11-F1', '11-F1', '11-F1', '11-F1'],
  1010. "GCLMC": ["第二册第1-5章(定额2-1~2-390)", "第二册第6章(定额2-391~2-9999)", "第三册静置设备制作(定额3-1~3-615)",
  1011. "第三册除静置设备制作以外(定额3-616~3-9999)", "第四册",
  1012. "第五册", "第六册", "第七册", "第八册", "第九册", "第十册",
  1013. "第十一册刷油工程(定额11-51~11-329)",
  1014. "第十一册防腐蚀工程(定额11-330~11-1689)", "第十一册绝热工程(定额11-1690~11-2327)", "第十一册除锈工程(定额11-1~11-50)刷油工程", "第十一册除锈工程(定额11-1~11-50)防腐蚀工程"],
  1015. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1016. df = pd.DataFrame(data)
  1017. return df.to_json(force_ascii=False)
  1018. if int(id) == 2077:
  1019. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项','项','项',
  1020. '项','项','项','项','项','项','项','项','项','项',
  1021. '项','项','项',
  1022. '项','项', "项",'项','项','项','项', "项",'项', "项", '项'],
  1023. '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',
  1024. '4-F2', '5-F2', '5-F2', '5-F2','6-F2',
  1025. '7-F2', '9-F2','9-F2','9-F2','9-F2', '10-F2','10-F2','10-F2','10-F2',
  1026. '11-F2','11-F2','11-F2','11-F2', '11-F2','11-F2','11-F2','11-F2' ],
  1027. "GCLMC": ["第一册第1-6章(定额1-1~1-571)10-15m",
  1028. "第一册第1-6章(定额1-1~1-571)15-20m",
  1029. "第一册第1-6章(定额1-1~1-571)20-25m",
  1030. "第一册第1-6章(定额1-1~1-571)25-30m",
  1031. "第一册第1-6章(定额1-1~1-571)30-40m",
  1032. "第一册第1-6章(定额1-1~1-571)40m以上",
  1033. "第一册第8-14章(定额1-672~1-9999)10-15m",
  1034. "第一册第8-14章(定额1-672~1-9999)15-20m",
  1035. "第一册第8-14章(定额1-672~1-9999)20-25m",
  1036. "第一册第8-14章(定额1-672~1-9999)25-30m",
  1037. "第一册第8-14章(定额1-672~1-9999)30-40m",
  1038. "第一册第8-14章(定额1-672~1-9999)40m以上",
  1039. "第四册",
  1040. "第五册5m以上到10m以内",
  1041. "第五册10-20m",
  1042. "第五册20m以上",
  1043. "第六册", "第七册",
  1044. "第九册5m以上到8m以内",
  1045. "第九册8-12m",
  1046. "第九册12-16m",
  1047. "第九册16-20m",
  1048. "第十册3.6-8m以内",
  1049. "第十册8-12m以内",
  1050. "第十册12-16m以内",
  1051. "第十册16-20m",
  1052. "第十一册6-20m",
  1053. "第十一册20-30m",
  1054. "第十一册30-40m",
  1055. "第十一册40-50m",
  1056. "第十一册50-60m",
  1057. "第十一册60-70m",
  1058. "第十一册70-80m",
  1059. "第十一册80m以上",
  1060. ],
  1061. "GCLSJDJ": ["0", "0", '0', '0',"0", "0", "0", "0", "0", "0",
  1062. "0", "0", '0', '0',"0", "0", "0", "0", "0", "0",
  1063. "0","0", "0",
  1064. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1065. df = pd.DataFrame(data)
  1066. return df.to_json(force_ascii=False)
  1067. if int(id) == 2078:
  1068. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项"],
  1069. 'DEBH': ['1-F4', '1-F4', '2-F4', '3-F4', '4-F4',
  1070. '5-F4', '6-F4', '7-F4', '8-F4', '9-F4', '11-F4'],
  1071. "GCLMC": ["第一册第1-6章", "第一册第8-14章", "第二册",
  1072. "第三册", "第四册",
  1073. "第五册", "第六册", "第七册", "第八册", "第九册",
  1074. "第十一册", ],
  1075. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1076. df = pd.DataFrame(data)
  1077. return df.to_json(force_ascii=False)
  1078. if int(id) == 2079:
  1079. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项", "项"],
  1080. 'DEBH': ['1-F5', '1-F5', '2-F5', '3-F5', '4-F5',
  1081. '5-F5', '6-F5', '7-F5', '8-F5', '9-F5', '11-F5'],
  1082. "GCLMC": ["第一册第1-6章", "第一册第8-14章", "第二册",
  1083. "第三册", "第四册",
  1084. "第五册", "第六册", "第七册", "第八册", "第九册",
  1085. "第十一册", ],
  1086. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1087. df = pd.DataFrame(data)
  1088. return df.to_json(force_ascii=False)
  1089. if int(id) == 2081:
  1090. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1091. "项", '项', '项', '项', '项', "项", "项", "项"],
  1092. 'DEBH': ['4-F3', '4-F3','4-F3', '4-F3','4-F3', '4-F3','4-F3', '4-F3',
  1093. '4-F3', '4-F3','4-F3', '4-F3','4-F3', '4-F3','4-F3', '4-F3','4-F3', '4-F3'],
  1094. "GCLMC": ["9层或30m以内",
  1095. "12层或40m以内",
  1096. "15层或50m以内",
  1097. "18层或60m以内",
  1098. "21层或70m以内",
  1099. "24层或80m以内",
  1100. "27层或90m以内",
  1101. "30层或100m以内",
  1102. "33层或110m以内",
  1103. "36层或120m以内",
  1104. "40层或130m以内",
  1105. "42层或140m以内",
  1106. "45层或150m以内",
  1107. "48层或160m以内",
  1108. "51层或170m以内",
  1109. "54层或180m以内",
  1110. "57层或190m以内",
  1111. "60层或200m以内",
  1112. ],
  1113. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1114. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1115. df = pd.DataFrame(data)
  1116. return df.to_json(force_ascii=False)
  1117. if int(id) == 2082:
  1118. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1119. "项", '项', '项', '项', '项', "项", "项", "项"],
  1120. 'DEBH': ['5-F3', '5-F3','5-F3', '5-F3','5-F3', '5-F3','5-F3', '5-F3',
  1121. '5-F3', '5-F3','5-F3', '5-F3','5-F3', '5-F3','5-F3', '5-F3','5-F3', '5-F3'],
  1122. "GCLMC": ["9层或30m以内",
  1123. "12层或40m以内",
  1124. "15层或50m以内",
  1125. "18层或60m以内",
  1126. "21层或70m以内",
  1127. "24层或80m以内",
  1128. "27层或90m以内",
  1129. "30层或100m以内",
  1130. "33层或110m以内",
  1131. "36层或120m以内",
  1132. "40层或130m以内",
  1133. "42层或140m以内",
  1134. "45层或150m以内",
  1135. "48层或160m以内",
  1136. "51层或170m以内",
  1137. "54层或180m以内",
  1138. "57层或190m以内",
  1139. "60层或200m以内",
  1140. ],
  1141. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1142. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1143. df = pd.DataFrame(data)
  1144. return df.to_json(force_ascii=False)
  1145. if int(id) == 2083:
  1146. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1147. "项", '项', '项', '项', '项', "项", "项", "项"],
  1148. 'DEBH': ['7-F3', '7-F3','7-F3', '7-F3','7-F3', '7-F3','7-F3', '7-F3',
  1149. '7-F3', '7-F3','7-F3', '7-F3','7-F3', '7-F3','7-F3', '7-F3','7-F3', '7-F3'],
  1150. "GCLMC": ["9层或30m以内",
  1151. "12层或40m以内",
  1152. "15层或50m以内",
  1153. "18层或60m以内",
  1154. "21层或70m以内",
  1155. "24层或80m以内",
  1156. "27层或90m以内",
  1157. "30层或100m以内",
  1158. "33层或110m以内",
  1159. "36层或120m以内",
  1160. "40层或130m以内",
  1161. "42层或140m以内",
  1162. "45层或150m以内",
  1163. "48层或160m以内",
  1164. "51层或170m以内",
  1165. "54层或180m以内",
  1166. "57层或190m以内",
  1167. "60层或200m以内",
  1168. ],
  1169. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1170. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1171. df = pd.DataFrame(data)
  1172. return df.to_json(force_ascii=False)
  1173. if int(id) == 2084:
  1174. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1175. "项", '项', '项', '项', '项', "项", "项", "项"],
  1176. 'DEBH': ['9-F3', '9-F3','9-F3', '9-F3','9-F3', '9-F3','9-F3', '9-F3',
  1177. '9-F3', '9-F3','9-F3', '9-F3','9-F3', '9-F3','9-F3', '9-F3','9-F3', '9-F3'],
  1178. "GCLMC": ["9层或30m以内",
  1179. "12层或40m以内",
  1180. "15层或50m以内",
  1181. "18层或60m以内",
  1182. "21层或70m以内",
  1183. "24层或80m以内",
  1184. "27层或90m以内",
  1185. "30层或100m以内",
  1186. "33层或110m以内",
  1187. "36层或120m以内",
  1188. "40层或130m以内",
  1189. "42层或140m以内",
  1190. "45层或150m以内",
  1191. "48层或160m以内",
  1192. "51层或170m以内",
  1193. "54层或180m以内",
  1194. "57层或190m以内",
  1195. "60层或200m以内",
  1196. ],
  1197. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1198. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1199. df = pd.DataFrame(data)
  1200. return df.to_json(force_ascii=False)
  1201. if int(id) == 2085:
  1202. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1203. "项", '项', '项', '项', '项', "项", "项", "项"],
  1204. 'DEBH': ['10-F3', '10-F3','10-F3', '10-F3','10-F3', '10-F3','10-F3', '10-F3',
  1205. '10-F3', '10-F3','10-F3', '10-F3','10-F3', '10-F3','10-F3', '10-F3','10-F3', '10-F3'],
  1206. "GCLMC": ["9层或30m以内",
  1207. "12层或40m以内",
  1208. "15层或50m以内",
  1209. "18层或60m以内",
  1210. "21层或70m以内",
  1211. "24层或80m以内",
  1212. "27层或90m以内",
  1213. "30层或100m以内",
  1214. "33层或110m以内",
  1215. "36层或120m以内",
  1216. "40层或130m以内",
  1217. "42层或140m以内",
  1218. "45层或150m以内",
  1219. "48层或160m以内",
  1220. "51层或170m以内",
  1221. "54层或180m以内",
  1222. "57层或190m以内",
  1223. "60层或200m以内",
  1224. ],
  1225. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1226. "0", "0", "0", "0", "0", "0", "0", "0"]}
  1227. df = pd.DataFrame(data)
  1228. return df.to_json(force_ascii=False)
  1229. if int(id) == 2086:
  1230. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1231. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1232. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1233. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1234. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1235. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1236. '项', '项', '项', '项', '项', '项', '项', '项', "项", "项",
  1237. "项", '项'],
  1238. 'DEBH': ['11-F3', '11-F3',
  1239. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1240. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1241. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1242. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1243. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1244. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1245. '11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3','11-F3', '11-F3',
  1246. ],
  1247. "GCLMC": [
  1248. "(按通风空调工程)9层或30m以内",
  1249. "(按通风空调工程)12层或40m以内",
  1250. "(按通风空调工程)15层或50m以内",
  1251. "(按通风空调工程)18层或60m以内",
  1252. "(按通风空调工程)21层或70m以内",
  1253. "(按通风空调工程)24层或80m以内",
  1254. "(按通风空调工程)27层或90m以内",
  1255. "(按通风空调工程)30层或100m以内",
  1256. "(按通风空调工程)33层或110m以内",
  1257. "(按通风空调工程)36层或120m以内",
  1258. "(按通风空调工程)40层或130m以内",
  1259. "(按通风空调工程)42层或140m以内",
  1260. "(按通风空调工程)45层或150m以内",
  1261. "(按通风空调工程)48层或160m以内",
  1262. "(按通风空调工程)51层或170m以内",
  1263. "(按通风空调工程)54层或180m以内",
  1264. "(按通风空调工程)57层或190m以内",
  1265. "(按通风空调工程)60层或200m以内",
  1266. ############################
  1267. "(按消防工程)9层或30m以内",
  1268. "(按消防工程)12层或40m以内",
  1269. "(按消防工程)15层或50m以内",
  1270. "(按消防工程)18层或60m以内",
  1271. "(按消防工程)21层或70m以内",
  1272. "(按消防工程)24层或80m以内",
  1273. "(按消防工程)27层或90m以内",
  1274. "(按消防工程)30层或100m以内",
  1275. "(按消防工程)33层或110m以内",
  1276. "(按消防工程)36层或120m以内",
  1277. "(按消防工程)40层或130m以内",
  1278. "(按消防工程)42层或140m以内",
  1279. "(按消防工程)45层或150m以内",
  1280. "(按消防工程)48层或160m以内",
  1281. "(按消防工程)51层或170m以内",
  1282. "(按消防工程)54层或180m以内",
  1283. "(按消防工程)57层或190m以内",
  1284. "(按消防工程)60层或200m以内",
  1285. ############################
  1286. "(按给排水、采暖工程)9层或30m以内",
  1287. "(按给排水、采暖工程)12层或40m以内",
  1288. "(按给排水、采暖工程)15层或50m以内",
  1289. "(按给排水、采暖工程)18层或60m以内",
  1290. "(按给排水、采暖工程)21层或70m以内",
  1291. "(按给排水、采暖工程)24层或80m以内",
  1292. "(按给排水、采暖工程)27层或90m以内",
  1293. "(按给排水、采暖工程)30层或100m以内",
  1294. "(按给排水、采暖工程)33层或110m以内",
  1295. "(按给排水、采暖工程)36层或120m以内",
  1296. "(按给排水、采暖工程)40层或130m以内",
  1297. "(按给排水、采暖工程)42层或140m以内",
  1298. "(按给排水、采暖工程)45层或150m以内",
  1299. "(按给排水、采暖工程)48层或160m以内",
  1300. "(按给排水、采暖工程)51层或170m以内",
  1301. "(按给排水、采暖工程)54层或180m以内",
  1302. "(按给排水、采暖工程)57层或190m以内",
  1303. "(按给排水、采暖工程)60层或200m以内",
  1304. ############################
  1305. "(按电气工程)9层或30m以内",
  1306. "(按电气工程)12层或40m以内",
  1307. "(按电气工程)15层或50m以内",
  1308. "(按电气工程)18层或60m以内",
  1309. "(按电气工程)21层或70m以内",
  1310. "(按电气工程)24层或80m以内",
  1311. "(按电气工程)27层或90m以内",
  1312. "(按电气工程)30层或100m以内",
  1313. "(按电气工程)33层或110m以内",
  1314. "(按电气工程)36层或120m以内",
  1315. "(按电气工程)40层或130m以内",
  1316. "(按电气工程)42层或140m以内",
  1317. "(按电气工程)45层或150m以内",
  1318. "(按电气工程)48层或160m以内",
  1319. "(按电气工程)51层或170m以内",
  1320. "(按电气工程)54层或180m以内",
  1321. "(按电气工程)57层或190m以内",
  1322. "(按电气工程)60层或200m以内",
  1323. ],
  1324. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1325. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1326. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1327. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1328. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1329. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1330. "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
  1331. "0", "0" ]}
  1332. df = pd.DataFrame(data)
  1333. return df.to_json(force_ascii=False)
  1334. if int(id) == 2087:
  1335. data = {'DW': ['项', '项', '项', '项', '项', '项', '项', '项', "项"],
  1336. 'DEBH': ['1-F6', '3-F6', '4-F6', '7-F6', '8-F6',
  1337. '10-F6', '10-F6', '10-F6', '11-F6'],
  1338. "GCLMC": ["第一册 站内工艺系统",
  1339. "第三册 站内工艺系统", "第四册 站内工艺系统",
  1340. "第七册", "第八册 站内工艺系统",
  1341. "第十册供暖器具安装", "第十册空调水工程管道安装", "第十册空调水工程管道附件", "第十一册 站内工艺系统" ],
  1342. "GCLSJDJ": ["0", "0", "0", "0", "0", "0", "0", "0", "0"]}
  1343. df = pd.DataFrame(data)
  1344. return df.to_json(force_ascii=False)
  1345. def getDeXilie(value, id):
  1346. ##print(type(id))
  1347. if value == 10:
  1348. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  1349. elif value == 20:
  1350. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  1351. elif value == 30:
  1352. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  1353. elif value == 40:
  1354. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  1355. elif value == 50:
  1356. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  1357. else:
  1358. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  1359. hit = shu[shu["ID"]==int(id)]
  1360. ##print(hit)
  1361. if len(hit) == 0:
  1362. return []
  1363. hit0 = hit.iloc[0]
  1364. index = str(hit0['zjh'])
  1365. ##print("index=" + index)
  1366. if value == 10:
  1367. gj = pd.read_csv("de/tj/JD_DanWeiGJ.csv")
  1368. filtered = gj[gj["YSDELBH"]==int(index)]
  1369. elif value == 20:
  1370. gj = pd.read_csv("de/sz/JD_DanWeiGJ.csv")
  1371. filtered = gj[gj["YSDELBH"]==(index)]
  1372. elif value == 30:
  1373. gj = pd.read_csv("de/az/JD_DanWeiGJ.csv")
  1374. filtered = gj[gj["YSDELBH"]==(index)]
  1375. elif value == 40:
  1376. gj = pd.read_csv("de/yl/JD_DanWeiGJ.csv")
  1377. filtered = gj[gj["YSDELBH"]==int(index)]
  1378. elif value == 50:
  1379. gj = pd.read_csv("de/xstj/JD_DanWeiGJ.csv")
  1380. filtered = gj[gj["YSDELBH"]==int(index)]
  1381. else:
  1382. gj = pd.read_csv("de/xsaz/JD_DanWeiGJ.csv")
  1383. filtered = gj[gj["YSDELBH"]==int(index)]
  1384. 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)
  1385. return filtered.to_json(force_ascii=False)
  1386. def getPbxl(name, zhuanye):
  1387. if name == "0":
  1388. if zhuanye == 10:
  1389. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1390. elif zhuanye == 20:
  1391. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1392. elif zhuanye == 30:
  1393. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1394. elif zhuanye == 40:
  1395. gj = pd.read_csv("de/yl/JD_PeiBi.csv")
  1396. elif zhuanye == 50:
  1397. gj = pd.read_csv("de/xstj/JD_PeiBi.csv")
  1398. elif zhuanye == 60:
  1399. gj = pd.read_csv("de/xsaz/JD_PeiBi.csv")
  1400. return gj.to_json(force_ascii=False)
  1401. shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
  1402. hit = shu[shu["ID"]==int(name)]
  1403. ##print(hit)
  1404. if len(hit) == 0:
  1405. return []
  1406. hit0 = hit.iloc[0]
  1407. index = str(hit0['pblbh'])
  1408. index_list = index.split(";")
  1409. gj = pd.read_csv("de/tj/JD_PeiBi.csv")
  1410. filtered = gj[gj["PBBH"].str.startswith(tuple(index_list))]
  1411. return filtered.to_json(force_ascii=False)
  1412. def getJxxl(name, zhuanye):
  1413. if name == "0":
  1414. if zhuanye == 10:
  1415. gj = pd.read_csv("de/tj/JD_JiXieK.csv")
  1416. elif zhuanye == 20:
  1417. gj = pd.read_csv("de/tj/JD_JiXieK.csv")
  1418. elif zhuanye == 30:
  1419. gj = pd.read_csv("de/tj/JD_JiXieK.csv")
  1420. elif zhuanye == 40:
  1421. gj = pd.read_csv("de/yl/JD_JiXieK.csv")
  1422. elif zhuanye == 50:
  1423. gj = pd.read_csv("de/xstj/JD_JiXieK.csv")
  1424. elif zhuanye == 60:
  1425. gj = pd.read_csv("de/xsaz/JD_JiXieK.csv")
  1426. return gj.to_json(force_ascii=False)
  1427. shu = pd.read_csv("de/tj/JD_JiXieFLB.csv")
  1428. hit = shu[shu["ID"]==int(name)]
  1429. ##print(hit)
  1430. if len(hit) == 0:
  1431. return []
  1432. hit0 = hit.iloc[0]
  1433. index = str(hit0['jxlbh'])
  1434. index_list = index.split(";")
  1435. gj = pd.read_csv("de/tj/JD_JiXieK.csv")
  1436. filtered = gj[gj["jxbh"].str.startswith(tuple(index_list))]
  1437. return filtered.to_json(force_ascii=False)
  1438. def getClxl(name, zhuanye):
  1439. if name == "0":
  1440. if zhuanye == 10:
  1441. gj = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  1442. elif zhuanye == 20:
  1443. gj = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  1444. elif zhuanye == 30:
  1445. gj = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  1446. elif zhuanye == 40:
  1447. gj = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  1448. elif zhuanye == 50:
  1449. gj = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1450. elif zhuanye == 60:
  1451. gj = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1452. return gj.to_json(force_ascii=False)
  1453. if zhuanye == 10:
  1454. shu = pd.read_csv("de/tj/JD_CaiLiaoFLB.csv")
  1455. if zhuanye == 20:
  1456. shu = pd.read_csv("de/sz/JD_CaiLiaoFLB.csv")
  1457. if zhuanye == 30:
  1458. shu = pd.read_csv("de/az/JD_CaiLiaoFLB.csv")
  1459. if zhuanye == 40:
  1460. shu = pd.read_csv("de/yl/JD_CaiLiaoFLB.csv", dtype={'cllbh': str})
  1461. if zhuanye == 50:
  1462. shu = pd.read_csv("de/xstj/JD_CaiLiaoFLB.csv", dtype={'cllbh': str})
  1463. if zhuanye == 60:
  1464. shu = pd.read_csv("de/xsaz/JD_CaiLiaoFLB.csv", dtype={'cllbh': str})
  1465. hit = shu[shu["ID"]==int(name)]
  1466. ##print(hit)
  1467. if len(hit) == 0:
  1468. return []
  1469. hit0 = hit.iloc[0]
  1470. index = str(hit0['cllbh'])
  1471. index_list = index.split(";")
  1472. if zhuanye == 10:
  1473. gj = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  1474. if zhuanye == 20:
  1475. gj = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  1476. if zhuanye == 30:
  1477. gj = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  1478. if zhuanye == 40:
  1479. gj = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  1480. if zhuanye == 50:
  1481. gj = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1482. if zhuanye == 60:
  1483. gj = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1484. ##print(index_list)
  1485. ##print(gj)
  1486. filtered = gj[gj["CLBH"].str.startswith(tuple(index_list))]
  1487. return filtered.to_json(force_ascii=False)
  1488. def getSingleDeXilie(zhuanye, debh):
  1489. if zhuanye == 10:
  1490. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1491. if A1:
  1492. return A1, A2, A3, A4, A5, A6, A7, 10
  1493. else:
  1494. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_sz(debh)
  1495. return A1, A2, A3, A4,A5, A6, A7, 20
  1496. elif zhuanye == 20:##shizheng
  1497. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_sz(debh)
  1498. if A1:
  1499. return A1, A2, A3, A4, A5, A6, A7, 20
  1500. else:
  1501. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1502. if A1:
  1503. return A1, A2, A3, A4, A5, A6, A7, 10
  1504. else:
  1505. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1506. return A1, A2, A3, A4, A5, A6, A7, 30
  1507. elif zhuanye == 30:##anzhuang
  1508. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1509. return A1, A2, A3, A4, A5, A6, A7, 30
  1510. elif zhuanye == 40:##yuanlin
  1511. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_yl(debh)
  1512. return A1, A2, A3, A4, A5, A6, A7, 40
  1513. elif zhuanye == 50: ## xiushan tujian
  1514. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_xstj(debh)
  1515. if A1:
  1516. return A1, A2, A3, A4, A5, A6, A7, 50
  1517. else:
  1518. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_tj(debh)
  1519. return A1, A2, A3, A4,A5, A6, A7, 10
  1520. else:
  1521. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_xsaz(debh)
  1522. if A1:
  1523. return A1, A2, A3, A4, A5, A6, A7, 60
  1524. else:
  1525. A1, A2, A3, A4, A5, A6, A7 = getSingleDeXilie_az(debh)
  1526. return A1, A2, A3, A4,A5, A6, A7, 30
  1527. def getSingleDeXilie_xsaz(debh):
  1528. id = None
  1529. bz_selected = []
  1530. bz_selected2 = []
  1531. if "附注" in debh:
  1532. position = debh.find("附注")
  1533. debh = debh[:position]
  1534. if "*" in debh:
  1535. position = debh.find("*")
  1536. debh = debh[:position]
  1537. if debh.endswith("换"):
  1538. debh = debh[:-1]
  1539. if "[" in debh:
  1540. position = debh.find("[")
  1541. debh = debh[:position-1]
  1542. gj = pd.read_csv("de/xsaz/JD_DanWeiGJ.csv")
  1543. filtered = gj[gj["DEBH"]==debh]
  1544. ##print(filtered)
  1545. if len(filtered) > 0:
  1546. index = (filtered.iloc[0]["YSDELBH"])
  1547. shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
  1548. hit = shu[shu["zjh"]==index]
  1549. if len(hit) > 0:
  1550. id = hit.iloc[0]["ID"]
  1551. beizhu = str(filtered.iloc[0]["BZBH"])
  1552. if 'nan' in beizhu:
  1553. pass
  1554. else:
  1555. beizhus = beizhu.split(";")
  1556. ##print(beizhus)
  1557. bzfile = pd.read_csv("de/xsaz/JD_BeiZhuZK.csv")
  1558. bzfile2 = pd.read_csv("de/xsaz/JD_BeiZhuFK.csv", dtype=str)
  1559. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1560. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1561. else:
  1562. return None, None, None, None, None, None, None
  1563. ####rengong
  1564. rgde = []
  1565. rg = pd.read_csv("de/xsaz/JD_GuJiaRG.csv")
  1566. filtered1 = rg[rg["DEBH"]==debh]
  1567. for i in range(len(filtered1)):
  1568. rgde_ = {}
  1569. gr = filtered1.iloc[i]["RGR"]##gongri
  1570. gf = filtered1.iloc[i]["RGF"]##gongfei
  1571. rcjID = filtered1.iloc[i]["RcjID"]
  1572. detail = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1573. filtered2 = detail[detail["RcjID"]==rcjID]
  1574. if len(filtered2) > 0:
  1575. CLBH = filtered2.iloc[0]["CLBH"]
  1576. CLMC = filtered2.iloc[0]["CLMC"]
  1577. JLDW = filtered2.iloc[0]["JLDW"]
  1578. YSJG = filtered2.iloc[0]["Csdj"]
  1579. rgde_["CLBH"] = CLBH
  1580. rgde_["CLMC"] = CLMC
  1581. rgde_["JLDW"] = JLDW
  1582. rgde_["YSJG"] = YSJG.item()
  1583. rgde_["gr"] = gr.item()
  1584. rgde_["gf"] = gf.item()
  1585. rgde.append(rgde_)
  1586. ##print(rgde)
  1587. ####jixie
  1588. jxde = []
  1589. jx = pd.read_csv("de/xsaz/JD_GuJiaJX.csv")
  1590. filtered1 = jx[jx["DEBH"]==debh]
  1591. for i in range(len(filtered1)):
  1592. jxde_ = {}
  1593. sl = filtered1.iloc[i]["SL"]##shuliang
  1594. hj = filtered1.iloc[i]["HJ"]##hejia
  1595. rcjID = filtered1.iloc[i]["RcjID"]
  1596. detail = pd.read_csv("de/xsaz/JD_JiXieK.csv")
  1597. filtered2 = detail[detail["RcjID"]==rcjID]
  1598. if len(filtered2) > 0:
  1599. jxbh = filtered2.iloc[0]["jxbh"]
  1600. jxmc = filtered2.iloc[0]["jxmc"]
  1601. DW = filtered2.iloc[0]["DW"]
  1602. tbdj = filtered2.iloc[0]["Csdj"]
  1603. jxde_["jxbh"] = jxbh
  1604. jxde_["jxmc"] = jxmc
  1605. jxde_["DW"] = DW
  1606. jxde_["tbdj"] = tbdj.item()
  1607. jxde_["sl"] = sl.item()
  1608. jxde_["hj"] = hj.item()
  1609. jxde.append(jxde_)
  1610. ####cailiao
  1611. clde = []
  1612. cl = pd.read_csv("de/xsaz/JD_GuJiaCL.csv")
  1613. filtered1 = cl[cl["DEBH"]==debh]
  1614. for i in range(len(filtered1)):
  1615. clde_ = {}
  1616. SL = filtered1.iloc[i]["SL"]##shuliang
  1617. HJ = filtered1.iloc[i]["HJ"]##hejia
  1618. rcjID = filtered1.iloc[i]["RcjID"]
  1619. detail = pd.read_csv("de/xsaz/JD_CaiLiaoK.csv")
  1620. filtered2 = detail[detail["RcjID"]==rcjID]
  1621. detail_ = pd.read_csv("de/xsaz/JD_PeiBi.csv")
  1622. filtered2_ = detail_[detail_["RcjID"]==rcjID]
  1623. if len(filtered2) > 0 and 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]["Csdj"]
  1628. clde_["CLBH"] = CLBH
  1629. clde_["CLMC"] = CLMC
  1630. clde_["JLDW"] = JLDW
  1631. clde_["YSJG"] = YSJG.item()
  1632. clde_["SL"] = SL.item()
  1633. clde_["HJ"] = HJ.item()
  1634. clde.append(clde_)
  1635. elif len(filtered2) == 0 and len(filtered2_) > 0:
  1636. CLBH = filtered2_.iloc[0]["PBBH"]
  1637. CLMC = filtered2_.iloc[0]["PBMC"]
  1638. JLDW = filtered2_.iloc[0]["DW"]
  1639. YSJG = filtered2_.iloc[0]["Csdj"]
  1640. clde_["CLBH"] = CLBH.item()
  1641. clde_["CLMC"] = CLMC
  1642. clde_["JLDW"] = JLDW
  1643. clde_["YSJG"] = YSJG.item()
  1644. clde_["SL"] = SL.item()
  1645. clde_["HJ"] = HJ.item()
  1646. clde.append(clde_)
  1647. elif len(filtered2) > 0 and len(filtered2_) > 0:
  1648. YSJG = filtered2.iloc[0]["Csdj"]
  1649. YSJG_ = filtered2_.iloc[0]["Csdj"]
  1650. if float(HJ) < 0.00001:
  1651. if float(YSJG) < 0.00001:
  1652. CLBH = filtered2.iloc[0]["CLBH"]
  1653. CLMC = filtered2.iloc[0]["CLMC"]
  1654. JLDW = filtered2.iloc[0]["JLDW"]
  1655. YSJG = filtered2.iloc[0]["Csdj"]
  1656. clde_["CLBH"] = CLBH
  1657. clde_["CLMC"] = CLMC
  1658. clde_["JLDW"] = JLDW
  1659. clde_["YSJG"] = YSJG.item()
  1660. clde_["SL"] = SL.item()
  1661. clde_["HJ"] = HJ.item()
  1662. clde.append(clde_)
  1663. elif float(YSJG_) < 0.00001:
  1664. CLBH = filtered2_.iloc[0]["PBBH"]
  1665. CLMC = filtered2_.iloc[0]["PBMC"]
  1666. JLDW = filtered2_.iloc[0]["DW"]
  1667. YSJG = filtered2_.iloc[0]["Csdj"]
  1668. clde_["CLBH"] = CLBH.item()
  1669. clde_["CLMC"] = CLMC
  1670. clde_["JLDW"] = JLDW
  1671. clde_["YSJG"] = YSJG.item()
  1672. clde_["SL"] = SL.item()
  1673. clde_["HJ"] = HJ.item()
  1674. clde.append(clde_)
  1675. else:
  1676. ratio = float(YSJG) / (float(HJ) / float(SL))
  1677. ratio_ = float(YSJG_) / (float(HJ) / float(SL))
  1678. if abs(ratio - 1) < abs(ratio_ -1):
  1679. CLBH = filtered2.iloc[0]["CLBH"]
  1680. CLMC = filtered2.iloc[0]["CLMC"]
  1681. JLDW = filtered2.iloc[0]["JLDW"]
  1682. YSJG = filtered2.iloc[0]["Csdj"]
  1683. clde_["CLBH"] = CLBH
  1684. clde_["CLMC"] = CLMC
  1685. clde_["JLDW"] = JLDW
  1686. clde_["YSJG"] = YSJG.item()
  1687. clde_["SL"] = SL.item()
  1688. clde_["HJ"] = HJ.item()
  1689. clde.append(clde_)
  1690. else:
  1691. CLBH = filtered2_.iloc[0]["PBBH"]
  1692. CLMC = filtered2_.iloc[0]["PBMC"]
  1693. JLDW = filtered2_.iloc[0]["DW"]
  1694. YSJG = filtered2_.iloc[0]["Csdj"]
  1695. clde_["CLBH"] = CLBH.item()
  1696. clde_["CLMC"] = CLMC
  1697. clde_["JLDW"] = JLDW
  1698. clde_["YSJG"] = YSJG.item()
  1699. clde_["SL"] = SL.item()
  1700. clde_["HJ"] = HJ.item()
  1701. clde.append(clde_)
  1702. 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)
  1703. 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
  1704. def getSingleDeXilie_xstj(debh):
  1705. id = None
  1706. bz_selected = []
  1707. bz_selected2 = []
  1708. additional = []
  1709. if "附注" in debh:
  1710. position = debh.find("附注")
  1711. debh = debh[:position]
  1712. if "*" in debh:
  1713. position = debh.find("*")
  1714. debh = debh[:position]
  1715. if debh.endswith("换"):
  1716. debh = debh[:-1]
  1717. if "[" in debh:
  1718. position = debh.find("[")
  1719. debh = debh[:position-1]
  1720. gj = pd.read_csv("de/xstj/JD_DanWeiGJ.csv")
  1721. filtered = gj[gj["DEBH"]==debh]
  1722. ##print(filtered)
  1723. if len(filtered) > 0:
  1724. index = (filtered.iloc[0]["YSDELBH"])
  1725. shu = pd.read_csv("de/xstj/JD_DingEShu.csv")
  1726. hit = shu[shu["zjh"]==index]
  1727. if len(hit) > 0:
  1728. id = hit.iloc[0]["ID"]
  1729. beizhu = str(filtered.iloc[0]["BZBH"])
  1730. if 'nan' in beizhu:
  1731. pass
  1732. else:
  1733. beizhus = beizhu.split(";")
  1734. ##print(beizhus)
  1735. bzfile = pd.read_csv("de/xstj/JD_BeiZhuZK.csv")
  1736. bzfile2 = pd.read_csv("de/xstj/JD_BeiZhuFK.csv", dtype=str)
  1737. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1738. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1739. bz_selected2 = bz_selected2.astype({'BH': str})
  1740. additional = bz_selected2['BH'].tolist()
  1741. additional = [entry for entry in additional if not entry in ['000000', '000001', 'J00000', '100000', '800101', '015103', '066121', '066501', '066503', '070101', '070303', '070902', '071121', '241503', '8021', '80210']]
  1742. else:
  1743. return None, None, None, None, None, None, None
  1744. ####rengong
  1745. rgde = []
  1746. rg = pd.read_csv("de/xstj/JD_GuJiaRG.csv")
  1747. filtered1 = rg[rg["DEBH"]==debh]
  1748. for i in range(len(filtered1)):
  1749. rgde_ = {}
  1750. gr = filtered1.iloc[i]["RGR"]##gongri
  1751. gf = filtered1.iloc[i]["RGF"]##gongfei
  1752. rcjID = filtered1.iloc[i]["RcjID"]
  1753. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1754. filtered2 = detail[detail["RcjID"]==rcjID]
  1755. if len(filtered2) > 0:
  1756. CLBH = filtered2.iloc[0]["CLBH"]
  1757. CLMC = filtered2.iloc[0]["CLMC"]
  1758. JLDW = filtered2.iloc[0]["JLDW"]
  1759. YSJG = filtered2.iloc[0]["Csdj"]
  1760. rgde_["CLBH"] = CLBH
  1761. rgde_["CLMC"] = CLMC
  1762. rgde_["JLDW"] = JLDW
  1763. rgde_["YSJG"] = YSJG.item()
  1764. rgde_["gr"] = gr.item()
  1765. rgde_["gf"] = gf.item()
  1766. if CLBH in additional:
  1767. additional.remove(CLBH)
  1768. rgde.append(rgde_)
  1769. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1770. detail = detail[detail['RcjLb'].isin([1, '1'])]
  1771. added = detail[detail['CLBH'].isin(additional)]
  1772. for _, entry in added.iterrows():
  1773. rgde_ = {}
  1774. CLBH = entry["CLBH"]
  1775. CLMC = entry["CLMC"]
  1776. JLDW = entry["JLDW"]
  1777. YSJG = entry["Csdj"]
  1778. rgde_["CLBH"] = CLBH
  1779. rgde_["CLMC"] = CLMC
  1780. rgde_["JLDW"] = JLDW
  1781. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  1782. rgde_["gr"] = 0
  1783. rgde_["gf"] = 0
  1784. rgde.append(rgde_)
  1785. ####jixie
  1786. jxde = []
  1787. jx = pd.read_csv("de/xstj/JD_GuJiaJX.csv")
  1788. filtered1 = jx[jx["DEBH"]==debh]
  1789. for i in range(len(filtered1)):
  1790. jxde_ = {}
  1791. sl = filtered1.iloc[i]["SL"]##shuliang
  1792. hj = filtered1.iloc[i]["HJ"]##hejia
  1793. rcjID = filtered1.iloc[i]["RcjID"]
  1794. detail = pd.read_csv("de/xstj/JD_JiXieK.csv")
  1795. filtered2 = detail[detail["RcjID"]==rcjID]
  1796. if len(filtered2) > 0:
  1797. jxbh = filtered2.iloc[0]["jxbh"]
  1798. jxmc = filtered2.iloc[0]["jxmc"]
  1799. DW = filtered2.iloc[0]["DW"]
  1800. tbdj = filtered2.iloc[0]["Csdj"]
  1801. jxde_["jxbh"] = jxbh
  1802. jxde_["jxmc"] = jxmc
  1803. jxde_["DW"] = DW
  1804. jxde_["tbdj"] = tbdj.item()
  1805. jxde_["sl"] = sl.item()
  1806. jxde_["hj"] = hj.item()
  1807. if jxbh in additional:
  1808. additional.remove(jxbh)
  1809. jxde.append(jxde_)
  1810. detail = pd.read_csv("de/xstj/JD_JiXieK.csv")
  1811. added = detail[detail['jxbh'].isin(additional)]
  1812. for _, entry in added.iterrows():
  1813. jxde_ = {}
  1814. jxbh = entry["jxbh"]
  1815. jxmc = entry["jxmc"]
  1816. DW = entry["DW"]
  1817. tbdj = entry["Csdj"]
  1818. jxde_["jxbh"] = jxbh
  1819. jxde_["jxmc"] = jxmc
  1820. jxde_["DW"] = DW
  1821. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  1822. jxde_["sl"] = 0
  1823. jxde_["hj"] = 0
  1824. jxde.append(jxde_)
  1825. ####cailiao
  1826. clde = []
  1827. cl = pd.read_csv("de/xstj/JD_GuJiaCL.csv")
  1828. filtered1 = cl[cl["DEBH"]==debh]
  1829. for i in range(len(filtered1)):
  1830. clde_ = {}
  1831. SL = filtered1.iloc[i]["SL"]##shuliang
  1832. HJ = filtered1.iloc[i]["HJ"]##hejia
  1833. rcjID = filtered1.iloc[i]["RcjID"]
  1834. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1835. filtered2 = detail[detail["RcjID"]==rcjID]
  1836. detail_ = pd.read_csv("de/xstj/JD_PeiBi.csv")
  1837. filtered2_ = detail_[detail_["RcjID"]==rcjID]
  1838. if len(filtered2) > 0 and len(filtered2_) == 0:
  1839. CLBH = filtered2.iloc[0]["CLBH"]
  1840. CLMC = filtered2.iloc[0]["CLMC"]
  1841. JLDW = filtered2.iloc[0]["JLDW"]
  1842. YSJG = filtered2.iloc[0]["Csdj"]
  1843. clde_["CLBH"] = CLBH
  1844. clde_["CLMC"] = CLMC
  1845. clde_["JLDW"] = JLDW
  1846. clde_["YSJG"] = YSJG.item()
  1847. clde_["SL"] = SL.item()
  1848. clde_["HJ"] = HJ.item()
  1849. clde.append(clde_)
  1850. elif len(filtered2) == 0 and len(filtered2_) > 0:
  1851. CLBH = filtered2_.iloc[0]["PBBH"]
  1852. CLMC = filtered2_.iloc[0]["PBMC"]
  1853. JLDW = filtered2_.iloc[0]["DW"]
  1854. YSJG = filtered2_.iloc[0]["Csdj"]
  1855. clde_["CLBH"] = CLBH.item()
  1856. clde_["CLMC"] = CLMC
  1857. clde_["JLDW"] = JLDW
  1858. clde_["YSJG"] = YSJG.item()
  1859. clde_["SL"] = SL.item()
  1860. clde_["HJ"] = HJ.item()
  1861. clde.append(clde_)
  1862. elif len(filtered2) > 0 and len(filtered2_) > 0:
  1863. YSJG = filtered2.iloc[0]["Csdj"]
  1864. YSJG_ = filtered2_.iloc[0]["Csdj"]
  1865. if float(HJ) < 0.00001:
  1866. if float(YSJG) < 0.00001:
  1867. CLBH = filtered2.iloc[0]["CLBH"]
  1868. CLMC = filtered2.iloc[0]["CLMC"]
  1869. JLDW = filtered2.iloc[0]["JLDW"]
  1870. YSJG = filtered2.iloc[0]["Csdj"]
  1871. clde_["CLBH"] = CLBH
  1872. clde_["CLMC"] = CLMC
  1873. clde_["JLDW"] = JLDW
  1874. clde_["YSJG"] = YSJG.item()
  1875. clde_["SL"] = SL.item()
  1876. clde_["HJ"] = HJ.item()
  1877. clde.append(clde_)
  1878. elif float(YSJG_) < 0.00001:
  1879. CLBH = filtered2_.iloc[0]["PBBH"]
  1880. CLMC = filtered2_.iloc[0]["PBMC"]
  1881. JLDW = filtered2_.iloc[0]["DW"]
  1882. YSJG = filtered2_.iloc[0]["Csdj"]
  1883. clde_["CLBH"] = CLBH.item()
  1884. clde_["CLMC"] = CLMC
  1885. clde_["JLDW"] = JLDW
  1886. clde_["YSJG"] = YSJG.item()
  1887. clde_["SL"] = SL.item()
  1888. clde_["HJ"] = HJ.item()
  1889. clde.append(clde_)
  1890. else:
  1891. ratio = float(YSJG) / (float(HJ) / float(SL))
  1892. ratio_ = float(YSJG_) / (float(HJ) / float(SL))
  1893. if abs(ratio - 1) < abs(ratio_ -1):
  1894. CLBH = filtered2.iloc[0]["CLBH"]
  1895. CLMC = filtered2.iloc[0]["CLMC"]
  1896. JLDW = filtered2.iloc[0]["JLDW"]
  1897. YSJG = filtered2.iloc[0]["Csdj"]
  1898. clde_["CLBH"] = CLBH
  1899. clde_["CLMC"] = CLMC
  1900. clde_["JLDW"] = JLDW
  1901. clde_["YSJG"] = YSJG.item()
  1902. clde_["SL"] = SL.item()
  1903. clde_["HJ"] = HJ.item()
  1904. clde.append(clde_)
  1905. else:
  1906. CLBH = filtered2_.iloc[0]["PBBH"]
  1907. CLMC = filtered2_.iloc[0]["PBMC"]
  1908. JLDW = filtered2_.iloc[0]["DW"]
  1909. YSJG = filtered2_.iloc[0]["Csdj"]
  1910. clde_["CLBH"] = CLBH.item()
  1911. clde_["CLMC"] = CLMC
  1912. clde_["JLDW"] = JLDW
  1913. clde_["YSJG"] = YSJG.item()
  1914. clde_["SL"] = SL.item()
  1915. clde_["HJ"] = HJ.item()
  1916. clde.append(clde_)
  1917. if 'CLBH' in clde_ and clde_['CLBH'] in additional:
  1918. additional.remove(clde_['CLBH'])
  1919. detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
  1920. detail = detail[detail['RcjLb'].isin([2, '2'])]
  1921. added = detail[detail['CLBH'].isin(additional)]
  1922. added = added.drop_duplicates(subset=['CLBH'])
  1923. for _, entry in added.iterrows():
  1924. clde_ = {}
  1925. CLBH = entry["CLBH"]
  1926. CLMC = entry["CLMC"]
  1927. JLDW = entry["JLDW"]
  1928. YSJG = entry["Csdj"]
  1929. clde_["CLBH"] = CLBH
  1930. clde_["CLMC"] = CLMC
  1931. clde_["JLDW"] = JLDW
  1932. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  1933. clde_["SL"] = 0
  1934. clde_["HJ"] = 0
  1935. clde.append(clde_)
  1936. detail = pd.read_csv("de/xstj/JD_PeiBi.csv")
  1937. added = detail[detail['PBBH'].isin(additional)]
  1938. for _, entry in added.iterrows():
  1939. clde_ = {}
  1940. CLBH = entry["PBBH"]
  1941. CLMC = entry["PBMC"]
  1942. JLDW = entry["DW"]
  1943. YSJG = entry["Csdj"]
  1944. clde_["CLBH"] = CLBH
  1945. clde_["CLMC"] = CLMC
  1946. clde_["JLDW"] = JLDW
  1947. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  1948. clde_["SL"] = 0
  1949. clde_["HJ"] = 0
  1950. clde.append(clde_)
  1951. 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)
  1952. 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
  1953. def getSingleDeXilie_yl(debh):
  1954. id = None
  1955. bz_selected = []
  1956. bz_selected2 = []
  1957. additional = []
  1958. if "附注" in debh:
  1959. position = debh.find("附注")
  1960. debh = debh[:position]
  1961. if "*" in debh:
  1962. position = debh.find("*")
  1963. debh = debh[:position]
  1964. if debh.endswith("换"):
  1965. debh = debh[:-1]
  1966. if "[" in debh:
  1967. position = debh.find("[")
  1968. debh = debh[:position-1]
  1969. gj = pd.read_csv("de/yl/JD_DanWeiGJ.csv")
  1970. filtered = gj[gj["DEBH"]==debh]
  1971. ##print(filtered)
  1972. if len(filtered) > 0:
  1973. index = (filtered.iloc[0]["YSDELBH"])
  1974. shu = pd.read_csv("de/yl/JD_DingEShu.csv")
  1975. hit = shu[shu["zjh"]==index]
  1976. if len(hit) > 0:
  1977. id = hit.iloc[0]["ID"]
  1978. beizhu = str(filtered.iloc[0]["BZBH"])
  1979. if 'nan' in beizhu:
  1980. pass
  1981. else:
  1982. beizhus = beizhu.split(";")
  1983. ##print(beizhus)
  1984. bzfile = pd.read_csv("de/yl/JD_BeiZhuZK.csv")
  1985. bzfile2 = pd.read_csv("de/yl/JD_BeiZhuFK.csv", dtype=str)
  1986. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  1987. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  1988. bz_selected2 = bz_selected2.astype({'BH': str})
  1989. additional = bz_selected2['BH'].tolist()
  1990. additional = [entry for entry in additional if not entry in ['000000', '000001', 'J00000', '100000', '800101', '015103', '066121', '066501', '066503', '070101', '070303', '070902', '071121', '241503', '8021', '80210']]
  1991. else:
  1992. return None, None, None, None, None, None, None
  1993. ####rengong
  1994. rgde = []
  1995. rg = pd.read_csv("de/yl/JD_GuJiaRG.csv")
  1996. filtered1 = rg[rg["DEBH"]==debh]
  1997. for i in range(len(filtered1)):
  1998. rgde_ = {}
  1999. gr = filtered1.iloc[i]["RGR"]##gongri
  2000. gf = filtered1.iloc[i]["RGF"]##gongfei
  2001. rcjID = filtered1.iloc[i]["RcjID"]
  2002. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  2003. filtered2 = detail[detail["RcjID"]==rcjID]
  2004. if len(filtered2) > 0:
  2005. CLBH = filtered2.iloc[0]["CLBH"]
  2006. CLMC = filtered2.iloc[0]["CLMC"]
  2007. JLDW = filtered2.iloc[0]["JLDW"]
  2008. YSJG = filtered2.iloc[0]["Csdj"]
  2009. rgde_["CLBH"] = CLBH
  2010. rgde_["CLMC"] = CLMC
  2011. rgde_["JLDW"] = JLDW
  2012. rgde_["YSJG"] = YSJG.item()
  2013. rgde_["gr"] = gr.item()
  2014. rgde_["gf"] = gf.item()
  2015. if CLBH in additional:
  2016. additional.remove(CLBH)
  2017. rgde.append(rgde_)
  2018. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  2019. detail = detail[detail['RcjLb'].isin([1, '1'])]
  2020. added = detail[detail['CLBH'].isin(additional)]
  2021. for _, entry in added.iterrows():
  2022. rgde_ = {}
  2023. CLBH = entry["CLBH"]
  2024. CLMC = entry["CLMC"]
  2025. JLDW = entry["JLDW"]
  2026. YSJG = entry["Csdj"]
  2027. rgde_["CLBH"] = CLBH
  2028. rgde_["CLMC"] = CLMC
  2029. rgde_["JLDW"] = JLDW
  2030. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2031. rgde_["gr"] = 0
  2032. rgde_["gf"] = 0
  2033. rgde.append(rgde_)
  2034. ####jixie
  2035. jxde = []
  2036. jx = pd.read_csv("de/yl/JD_GuJiaJX.csv")
  2037. filtered1 = jx[jx["DEBH"]==debh]
  2038. for i in range(len(filtered1)):
  2039. jxde_ = {}
  2040. sl = filtered1.iloc[i]["SL"]##shuliang
  2041. hj = filtered1.iloc[i]["HJ"]##hejia
  2042. rcjID = filtered1.iloc[i]["RcjID"]
  2043. detail = pd.read_csv("de/yl/JD_JiXieK.csv")
  2044. filtered2 = detail[detail["RcjID"]==rcjID]
  2045. if len(filtered2) > 0:
  2046. jxbh = filtered2.iloc[0]["jxbh"]
  2047. jxmc = filtered2.iloc[0]["jxmc"]
  2048. DW = filtered2.iloc[0]["DW"]
  2049. tbdj = filtered2.iloc[0]["Csdj"]
  2050. jxde_["jxbh"] = jxbh
  2051. jxde_["jxmc"] = jxmc
  2052. jxde_["DW"] = DW
  2053. jxde_["tbdj"] = tbdj.item()
  2054. jxde_["sl"] = sl.item()
  2055. jxde_["hj"] = hj.item()
  2056. if jxbh in additional:
  2057. additional.remove(jxbh)
  2058. jxde.append(jxde_)
  2059. detail = pd.read_csv("de/yl/JD_JiXieK.csv")
  2060. added = detail[detail['jxbh'].isin(additional)]
  2061. for _, entry in added.iterrows():
  2062. jxde_ = {}
  2063. jxbh = entry["jxbh"]
  2064. jxmc = entry["jxmc"]
  2065. DW = entry["DW"]
  2066. tbdj = entry["Csdj"]
  2067. jxde_["jxbh"] = jxbh
  2068. jxde_["jxmc"] = jxmc
  2069. jxde_["DW"] = DW
  2070. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2071. jxde_["sl"] = 0
  2072. jxde_["hj"] = 0
  2073. jxde.append(jxde_)
  2074. ####cailiao
  2075. clde = []
  2076. cl = pd.read_csv("de/yl/JD_GuJiaCL.csv")
  2077. filtered1 = cl[cl["DEBH"]==debh]
  2078. for i in range(len(filtered1)):
  2079. clde_ = {}
  2080. SL = filtered1.iloc[i]["SL"]##shuliang
  2081. HJ = filtered1.iloc[i]["HJ"]##hejia
  2082. rcjID = filtered1.iloc[i]["RcjID"]
  2083. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  2084. filtered2 = detail[detail["RcjID"]==rcjID]
  2085. if len(filtered2) > 0:
  2086. CLBH = filtered2.iloc[0]["CLBH"]
  2087. CLMC = filtered2.iloc[0]["CLMC"]
  2088. JLDW = filtered2.iloc[0]["JLDW"]
  2089. YSJG = filtered2.iloc[0]["Csdj"]
  2090. clde_["CLBH"] = CLBH
  2091. clde_["CLMC"] = CLMC
  2092. clde_["JLDW"] = JLDW
  2093. clde_["YSJG"] = YSJG.item()
  2094. clde_["SL"] = SL.item()
  2095. clde_["HJ"] = HJ.item()
  2096. clde.append(clde_)
  2097. else:
  2098. detail = pd.read_csv("de/yl/JD_PeiBi.csv")
  2099. filtered2 = detail[detail["RcjID"]==rcjID]
  2100. if len(filtered2) > 0:
  2101. CLBH = filtered2.iloc[0]["PBBH"]
  2102. CLMC = filtered2.iloc[0]["PBMC"]
  2103. JLDW = filtered2.iloc[0]["DW"]
  2104. YSJG = filtered2.iloc[0]["Csdj"]
  2105. clde_["CLBH"] = CLBH.item()
  2106. clde_["CLMC"] = CLMC
  2107. clde_["JLDW"] = JLDW
  2108. clde_["YSJG"] = YSJG.item()
  2109. clde_["SL"] = SL.item()
  2110. clde_["HJ"] = HJ.item()
  2111. clde.append(clde_)
  2112. if 'CLBH' in clde_ and clde_['CLBH'] in additional:
  2113. additional.remove(clde_['CLBH'])
  2114. detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
  2115. detail = detail[detail['RcjLb'].isin([2, '2'])]
  2116. added = detail[detail['CLBH'].isin(additional)]
  2117. for _, entry in added.iterrows():
  2118. clde_ = {}
  2119. CLBH = entry["CLBH"]
  2120. CLMC = entry["CLMC"]
  2121. JLDW = entry["JLDW"]
  2122. YSJG = entry["Csdj"]
  2123. clde_["CLBH"] = CLBH
  2124. clde_["CLMC"] = CLMC
  2125. clde_["JLDW"] = JLDW
  2126. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2127. clde_["SL"] = 0
  2128. clde_["HJ"] = 0
  2129. clde.append(clde_)
  2130. detail = pd.read_csv("de/yl/JD_PeiBi.csv")
  2131. added = detail[detail['PBBH'].isin(additional)]
  2132. for _, entry in added.iterrows():
  2133. clde_ = {}
  2134. CLBH = entry["PBBH"]
  2135. CLMC = entry["PBMC"]
  2136. JLDW = entry["DW"]
  2137. YSJG = entry["Csdj"]
  2138. clde_["CLBH"] = CLBH
  2139. clde_["CLMC"] = CLMC
  2140. clde_["JLDW"] = JLDW
  2141. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2142. clde_["SL"] = 0
  2143. clde_["HJ"] = 0
  2144. clde.append(clde_)
  2145. 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)
  2146. 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
  2147. def getSingleDeXilie_az(debh):
  2148. id = None
  2149. bz_selected = []
  2150. bz_selected2 = []
  2151. additional = []
  2152. if "附注" in debh:
  2153. position = debh.find("附注")
  2154. debh = debh[:position]
  2155. if "*" in debh:
  2156. position = debh.find("*")
  2157. debh = debh[:position]
  2158. if debh.endswith("换"):
  2159. debh = debh[:-1]
  2160. if "[" in debh:
  2161. position = debh.find("[")
  2162. debh = debh[:position-1]
  2163. gj = pd.read_csv("de/az/JD_DanWeiGJ.csv")
  2164. filtered = gj[gj["DEBH"]==debh]
  2165. ##print(filtered)
  2166. if len(filtered) > 0:
  2167. index = (filtered.iloc[0]["YSDELBH"])
  2168. shu = pd.read_csv("de/az/JD_DingEShu.csv")
  2169. hit = shu[shu["zjh"]==index]
  2170. if len(hit) > 0:
  2171. id = hit.iloc[0]["ID"]
  2172. beizhu = str(filtered.iloc[0]["BZBH"])
  2173. if 'nan' in beizhu:
  2174. pass
  2175. else:
  2176. beizhus = beizhu.split(";")
  2177. ##print(beizhus)
  2178. bzfile = pd.read_csv("de/az/JD_BeiZhuZK.csv")
  2179. bzfile2 = pd.read_csv("de/az/JD_BeiZhuFK.csv", dtype=str)
  2180. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  2181. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  2182. bz_selected2 = bz_selected2.astype({'BH': str})
  2183. additional = bz_selected2['BH'].tolist()
  2184. additional = [entry for entry in additional if not entry in ['000000', '000001', 'J00000', '100000', '800101', '015103', '066121', '066501', '066503', '070101', '070303', '070902', '071121', '241503', '8021', '80210']]
  2185. else:
  2186. return None, None, None, None, None, None, None
  2187. ####rengong
  2188. rgde = []
  2189. rg = pd.read_csv("de/az/JD_GuJiaRG.csv")
  2190. filtered1 = rg[rg["DEBH"]==debh]
  2191. for i in range(len(filtered1)):
  2192. rgde_ = {}
  2193. gr = filtered1.iloc[i]["RGR"]##gongri
  2194. gf = filtered1.iloc[i]["RGF"]##gongfei
  2195. rcjID = filtered1.iloc[i]["RcjID"]
  2196. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  2197. filtered2 = detail[detail["RcjID"]==rcjID]
  2198. if len(filtered2) > 0:
  2199. CLBH = filtered2.iloc[0]["CLBH"]
  2200. CLMC = filtered2.iloc[0]["CLMC"]
  2201. JLDW = filtered2.iloc[0]["JLDW"]
  2202. YSJG = filtered2.iloc[0]["Csdj"]
  2203. rgde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2204. rgde_["CLMC"] = CLMC
  2205. rgde_["JLDW"] = JLDW
  2206. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2207. rgde_["gr"] = gr.item() if type(gr) == float64 else gr
  2208. rgde_["gf"] = gf.item() if type(gf) == float64 else gf
  2209. if CLBH in additional:
  2210. additional.remove(CLBH)
  2211. rgde.append(rgde_)
  2212. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  2213. detail = detail[detail['RcjLb'].isin([1, '1'])]
  2214. added = detail[detail['CLBH'].isin(additional)]
  2215. for _, entry in added.iterrows():
  2216. rgde_ = {}
  2217. CLBH = entry["CLBH"]
  2218. CLMC = entry["CLMC"]
  2219. JLDW = entry["JLDW"]
  2220. YSJG = entry["Csdj"]
  2221. rgde_["CLBH"] = CLBH
  2222. rgde_["CLMC"] = CLMC
  2223. rgde_["JLDW"] = JLDW
  2224. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2225. rgde_["gr"] = 0
  2226. rgde_["gf"] = 0
  2227. rgde.append(rgde_)
  2228. ####jixie
  2229. jxde = []
  2230. jx = pd.read_csv("de/az/JD_GuJiaJX.csv")
  2231. filtered1 = jx[jx["DEBH"]==debh]
  2232. for i in range(len(filtered1)):
  2233. jxde_ = {}
  2234. sl = filtered1.iloc[i]["SL"]##shuliang
  2235. hj = filtered1.iloc[i]["HJ"]##hejia
  2236. rcjID = filtered1.iloc[i]["RcjID"]
  2237. detail = pd.read_csv("de/az/JD_JiXieK.csv")
  2238. filtered2 = detail[detail["RcjID"]==rcjID]
  2239. if len(filtered2) > 0:
  2240. jxbh = filtered2.iloc[0]["jxbh"]
  2241. jxmc = filtered2.iloc[0]["jxmc"]
  2242. DW = filtered2.iloc[0]["DW"]
  2243. tbdj = filtered2.iloc[0]["Csdj"]
  2244. jxde_["jxbh"] = jxbh
  2245. jxde_["jxmc"] = jxmc
  2246. jxde_["DW"] = DW
  2247. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2248. jxde_["sl"] = sl.item() if type(sl) == float64 else sl
  2249. jxde_["hj"] = hj.item() if type(hj) == float64 else hj
  2250. if jxbh in additional:
  2251. additional.remove(jxbh)
  2252. jxde.append(jxde_)
  2253. detail = pd.read_csv("de/az/JD_JiXieK.csv")
  2254. added = detail[detail['jxbh'].isin(additional)]
  2255. for _, entry in added.iterrows():
  2256. jxde_ = {}
  2257. jxbh = entry["jxbh"]
  2258. jxmc = entry["jxmc"]
  2259. DW = entry["DW"]
  2260. tbdj = entry["Csdj"]
  2261. jxde_["jxbh"] = jxbh
  2262. jxde_["jxmc"] = jxmc
  2263. jxde_["DW"] = DW
  2264. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2265. jxde_["sl"] = 0
  2266. jxde_["hj"] = 0
  2267. jxde.append(jxde_)
  2268. ####cailiao
  2269. clde = []
  2270. cl = pd.read_csv("de/az/JD_GuJiaCL.csv")
  2271. filtered1 = cl[cl["DEBH"]==debh]
  2272. for i in range(len(filtered1)):
  2273. clde_ = {}
  2274. SL = filtered1.iloc[i]["SL"]##shuliang
  2275. HJ = filtered1.iloc[i]["HJ"]##hejia
  2276. rcjID = filtered1.iloc[i]["RcjID"]
  2277. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  2278. filtered2 = detail[detail["RcjID"]==rcjID]
  2279. if len(filtered2) > 0:
  2280. CLBH = filtered2.iloc[0]["CLBH"]
  2281. CLMC = filtered2.iloc[0]["CLMC"]
  2282. JLDW = filtered2.iloc[0]["JLDW"]
  2283. YSJG = filtered2.iloc[0]["Csdj"]
  2284. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2285. clde_["CLMC"] = CLMC
  2286. clde_["JLDW"] = JLDW
  2287. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2288. if np.isnan(clde_['YSJG']):
  2289. clde_['YSJG']=0
  2290. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2291. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2292. clde.append(clde_)
  2293. else:
  2294. detail = pd.read_csv("de/az/JD_PeiBi.csv")
  2295. filtered2 = detail[detail["RcjID"]==rcjID]
  2296. if len(filtered2) > 0:
  2297. CLBH = filtered2.iloc[0]["PBBH"]
  2298. CLMC = filtered2.iloc[0]["PBMC"]
  2299. JLDW = filtered2.iloc[0]["DW"]
  2300. YSJG = filtered2.iloc[0]["Csdj"]
  2301. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2302. clde_["CLMC"] = CLMC
  2303. clde_["JLDW"] = JLDW
  2304. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2305. if np.isnan(clde_['YSJG']):
  2306. clde_['YSJG']=0
  2307. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2308. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2309. clde.append(clde_)
  2310. if 'CLBH' in clde_ and clde_['CLBH'] in additional:
  2311. additional.remove(clde_['CLBH'])
  2312. detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
  2313. detail = detail[detail['RcjLb'].isin([2, '2'])]
  2314. added = detail[detail['CLBH'].isin(additional)]
  2315. added = added.drop_duplicates(subset=['CLBH'])
  2316. for _, entry in added.iterrows():
  2317. clde_ = {}
  2318. CLBH = entry["CLBH"]
  2319. CLMC = entry["CLMC"]
  2320. JLDW = entry["JLDW"]
  2321. YSJG = entry["Csdj"]
  2322. clde_["CLBH"] = CLBH
  2323. clde_["CLMC"] = CLMC
  2324. clde_["JLDW"] = JLDW
  2325. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2326. if np.isnan(clde_['YSJG']):
  2327. clde_['YSJG']=0
  2328. clde_["SL"] = 0
  2329. clde_["HJ"] = 0
  2330. clde.append(clde_)
  2331. detail = pd.read_csv("de/az/JD_PeiBi.csv")
  2332. added = detail[detail['PBBH'].isin(additional)]
  2333. for _, entry in added.iterrows():
  2334. clde_ = {}
  2335. CLBH = entry["PBBH"]
  2336. CLMC = entry["PBMC"]
  2337. JLDW = entry["DW"]
  2338. YSJG = entry["Csdj"]
  2339. clde_["CLBH"] = CLBH
  2340. clde_["CLMC"] = CLMC
  2341. clde_["JLDW"] = JLDW
  2342. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2343. if np.isnan(clde_['YSJG']):
  2344. clde_['YSJG']=0
  2345. clde_["SL"] = 0
  2346. clde_["HJ"] = 0
  2347. clde.append(clde_)
  2348. 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)
  2349. ##print(filtered)
  2350. 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
  2351. def getSingleDeXilie_sz(debh):
  2352. id = None
  2353. bz_selected = []
  2354. bz_selected2 = []
  2355. additional = []
  2356. if "附注" in debh:
  2357. position = debh.find("附注")
  2358. debh = debh[:position]
  2359. if "*" in debh:
  2360. position = debh.find("*")
  2361. debh = debh[:position]
  2362. if debh.endswith("换"):
  2363. debh = debh[:-1]
  2364. if "[" in debh:
  2365. position = debh.find("[")
  2366. debh = debh[:position-1]
  2367. gj = pd.read_csv("de/sz/JD_DanWeiGJ.csv")
  2368. filtered = gj[gj["DEBH"]==debh]
  2369. ##print(filtered)
  2370. if len(filtered) > 0:
  2371. index = (filtered.iloc[0]["YSDELBH"])
  2372. shu = pd.read_csv("de/sz/JD_DingEShu.csv")
  2373. hit = shu[shu["zjh"]==index]
  2374. if len(hit) > 0:
  2375. id = hit.iloc[0]["ID"]
  2376. beizhu = str(filtered.iloc[0]["BZBH"])
  2377. if 'nan' in beizhu:
  2378. pass
  2379. else:
  2380. beizhus = beizhu.split(";")
  2381. ##print(beizhus)
  2382. bzfile = pd.read_csv("de/sz/JD_BeiZhuZK.csv")
  2383. bzfile2 = pd.read_csv("de/sz/JD_BeiZhuFK.csv", dtype=str)
  2384. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  2385. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  2386. bz_selected2 = bz_selected2.astype({'BH': str})
  2387. additional = bz_selected2['BH'].tolist()
  2388. additional = [entry for entry in additional if not entry in ['000000', '000001', 'J00000', '100000', '800101', '015103', '066121', '066501', '066503', '070101', '070303', '070902', '071121', '241503', '8021', '80210']]
  2389. else:
  2390. return None, None, None, None, None, None, None
  2391. ####rengong
  2392. rgde = []
  2393. rg = pd.read_csv("de/sz/JD_GuJiaRG.csv")
  2394. filtered1 = rg[rg["DEBH"]==debh]
  2395. for i in range(len(filtered1)):
  2396. rgde_ = {}
  2397. gr = filtered1.iloc[i]["RGR"]##gongri
  2398. gf = filtered1.iloc[i]["RGF"]##gongfei
  2399. rcjID = filtered1.iloc[i]["RcjID"]
  2400. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  2401. filtered2 = detail[detail["RcjID"]==rcjID]
  2402. if len(filtered2) > 0:
  2403. CLBH = filtered2.iloc[0]["CLBH"]
  2404. CLMC = filtered2.iloc[0]["CLMC"]
  2405. JLDW = filtered2.iloc[0]["JLDW"]
  2406. YSJG = filtered2.iloc[0]["Csdj"]
  2407. rgde_["CLBH"] = CLBH
  2408. rgde_["CLMC"] = CLMC
  2409. rgde_["JLDW"] = JLDW
  2410. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2411. rgde_["gr"] = gr.item() if type(gr) == float64 else gr
  2412. rgde_["gf"] = gf.item() if type(gf) == float64 else gf
  2413. if CLBH in additional:
  2414. additional.remove(CLBH)
  2415. rgde.append(rgde_)
  2416. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  2417. detail = detail[detail['RcjLb'].isin([1, '1'])]
  2418. added = detail[detail['CLBH'].isin(additional)]
  2419. for _, entry in added.iterrows():
  2420. rgde_ = {}
  2421. CLBH = entry["CLBH"]
  2422. CLMC = entry["CLMC"]
  2423. JLDW = entry["JLDW"]
  2424. YSJG = entry["Csdj"]
  2425. rgde_["CLBH"] = CLBH
  2426. rgde_["CLMC"] = CLMC
  2427. rgde_["JLDW"] = JLDW
  2428. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2429. rgde_["gr"] = 0
  2430. rgde_["gf"] = 0
  2431. rgde.append(rgde_)
  2432. ####jixie
  2433. jxde = []
  2434. jx = pd.read_csv("de/sz/JD_GuJiaJX.csv")
  2435. filtered1 = jx[jx["DEBH"]==debh]
  2436. for i in range(len(filtered1)):
  2437. jxde_ = {}
  2438. sl = filtered1.iloc[i]["SL"]##shuliang
  2439. hj = filtered1.iloc[i]["HJ"]##hejia
  2440. rcjID = filtered1.iloc[i]["RcjID"]
  2441. detail = pd.read_csv("de/sz/JD_JiXieK.csv")
  2442. filtered2 = detail[detail["RcjID"]==rcjID]
  2443. if len(filtered2) > 0:
  2444. jxbh = filtered2.iloc[0]["jxbh"]
  2445. jxmc = filtered2.iloc[0]["jxmc"]
  2446. DW = filtered2.iloc[0]["DW"]
  2447. tbdj = filtered2.iloc[0]["Csdj"]
  2448. jxde_["jxbh"] = jxbh
  2449. jxde_["jxmc"] = jxmc
  2450. jxde_["DW"] = DW
  2451. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2452. jxde_["sl"] = sl.item() if type(sl) == float64 else sl
  2453. jxde_["hj"] = hj.item() if type(hj) == float64 else hj
  2454. if jxbh in additional:
  2455. additional.remove(jxbh)
  2456. jxde.append(jxde_)
  2457. detail = pd.read_csv("de/sz/JD_JiXieK.csv")
  2458. added = detail[detail['jxbh'].isin(additional)]
  2459. for _, entry in added.iterrows():
  2460. jxde_ = {}
  2461. jxbh = entry["jxbh"]
  2462. jxmc = entry["jxmc"]
  2463. DW = entry["DW"]
  2464. tbdj = entry["Csdj"]
  2465. jxde_["jxbh"] = jxbh
  2466. jxde_["jxmc"] = jxmc
  2467. jxde_["DW"] = DW
  2468. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2469. jxde_["sl"] = 0
  2470. jxde_["hj"] = 0
  2471. jxde.append(jxde_)
  2472. ####cailiao
  2473. clde = []
  2474. cl = pd.read_csv("de/sz/JD_GuJiaCL.csv")
  2475. filtered1 = cl[cl["DEBH"]==debh]
  2476. for i in range(len(filtered1)):
  2477. clde_ = {}
  2478. SL = filtered1.iloc[i]["SL"]##shuliang
  2479. HJ = filtered1.iloc[i]["HJ"]##hejia
  2480. rcjID = filtered1.iloc[i]["RcjID"]
  2481. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  2482. filtered2 = detail[detail["RcjID"]==rcjID]
  2483. detail_ = pd.read_csv("de/sz/JD_PeiBi.csv")
  2484. filtered2_ = detail_[detail_["RcjID"]==rcjID]
  2485. if len(filtered2) > 0 and len(filtered2_) == 0:
  2486. CLBH = filtered2.iloc[0]["CLBH"]
  2487. CLMC = filtered2.iloc[0]["CLMC"]
  2488. JLDW = filtered2.iloc[0]["JLDW"]
  2489. YSJG = filtered2.iloc[0]["Csdj"]
  2490. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2491. clde_["CLMC"] = CLMC
  2492. clde_["JLDW"] = JLDW
  2493. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2494. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2495. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2496. clde.append(clde_)
  2497. elif len(filtered2) == 0 and len(filtered2_) > 0:
  2498. CLBH = filtered2_.iloc[0]["PBBH"]
  2499. CLMC = filtered2_.iloc[0]["PBMC"]
  2500. JLDW = filtered2_.iloc[0]["DW"]
  2501. YSJG = filtered2_.iloc[0]["Csdj"]
  2502. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2503. clde_["CLMC"] = CLMC
  2504. clde_["JLDW"] = JLDW
  2505. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2506. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2507. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2508. clde.append(clde_)
  2509. elif len(filtered2) > 0 and len(filtered2_) > 0:
  2510. YSJG = filtered2.iloc[0]["Csdj"]
  2511. YSJG_ = filtered2_.iloc[0]["Csdj"]
  2512. ##print(debh)
  2513. if float(HJ) < 0.00001:
  2514. if float(YSJG) < 0.00001:
  2515. CLBH = filtered2.iloc[0]["CLBH"]
  2516. CLMC = filtered2.iloc[0]["CLMC"]
  2517. JLDW = filtered2.iloc[0]["JLDW"]
  2518. YSJG = filtered2.iloc[0]["Csdj"]
  2519. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2520. clde_["CLMC"] = CLMC
  2521. clde_["JLDW"] = JLDW
  2522. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2523. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2524. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2525. clde.append(clde_)
  2526. elif float(YSJG_) < 0.00001:
  2527. CLBH = filtered2_.iloc[0]["PBBH"]
  2528. CLMC = filtered2_.iloc[0]["PBMC"]
  2529. JLDW = filtered2_.iloc[0]["DW"]
  2530. YSJG = filtered2_.iloc[0]["Csdj"]
  2531. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2532. clde_["CLMC"] = CLMC
  2533. clde_["JLDW"] = JLDW
  2534. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2535. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2536. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2537. clde.append(clde_)
  2538. else:
  2539. ratio = float(YSJG) / (float(HJ) / float(SL))
  2540. ratio_ = float(YSJG_) / (float(HJ) / float(SL))
  2541. if abs(ratio - 1) < abs(ratio_ - 1):
  2542. CLBH = filtered2.iloc[0]["CLBH"]
  2543. CLMC = filtered2.iloc[0]["CLMC"]
  2544. JLDW = filtered2.iloc[0]["JLDW"]
  2545. YSJG = filtered2.iloc[0]["Csdj"]
  2546. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2547. clde_["CLMC"] = CLMC
  2548. clde_["JLDW"] = JLDW
  2549. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2550. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2551. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2552. clde.append(clde_)
  2553. else:
  2554. CLBH = filtered2_.iloc[0]["PBBH"]
  2555. CLMC = filtered2_.iloc[0]["PBMC"]
  2556. JLDW = filtered2_.iloc[0]["DW"]
  2557. YSJG = filtered2_.iloc[0]["Csdj"]
  2558. clde_["CLBH"] = str(CLBH.item()) if type(CLBH) == int64 else CLBH
  2559. clde_["CLMC"] = CLMC
  2560. clde_["JLDW"] = JLDW
  2561. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2562. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2563. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2564. clde.append(clde_)
  2565. if 'CLBH' in clde_ and clde_['CLBH'] in additional:
  2566. additional.remove(clde_['CLBH'])
  2567. detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
  2568. detail = detail[detail['RcjLb'].isin([2, '2'])]
  2569. added = detail[detail['CLBH'].isin(additional)]
  2570. for _, entry in added.iterrows():
  2571. clde_ = {}
  2572. CLBH = entry["CLBH"]
  2573. CLMC = entry["CLMC"]
  2574. JLDW = entry["JLDW"]
  2575. YSJG = entry["Csdj"]
  2576. clde_["CLBH"] = CLBH
  2577. clde_["CLMC"] = CLMC
  2578. clde_["JLDW"] = JLDW
  2579. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2580. clde_["SL"] = 0
  2581. clde_["HJ"] = 0
  2582. clde.append(clde_)
  2583. detail = pd.read_csv("de/sz/JD_PeiBi.csv")
  2584. added = detail[detail['PBBH'].isin(additional)]
  2585. for _, entry in added.iterrows():
  2586. clde_ = {}
  2587. CLBH = entry["PBBH"]
  2588. CLMC = entry["PBMC"]
  2589. JLDW = entry["DW"]
  2590. YSJG = entry["Csdj"]
  2591. clde_["CLBH"] = CLBH
  2592. clde_["CLMC"] = CLMC
  2593. clde_["JLDW"] = JLDW
  2594. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2595. clde_["SL"] = 0
  2596. clde_["HJ"] = 0
  2597. clde.append(clde_)
  2598. 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)
  2599. 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
  2600. def getSingleDeXilie_tj(debh):
  2601. id = None
  2602. bz_selected = []
  2603. bz_selected2 = []
  2604. additional = []
  2605. if "附注" in debh:
  2606. position = debh.find("附注")
  2607. debh = debh[:position]
  2608. if "*" in debh:
  2609. position = debh.find("*")
  2610. debh = debh[:position]
  2611. if debh.endswith("换"):
  2612. debh = debh[:-1]
  2613. if "[" in debh:
  2614. position = debh.find("[")
  2615. debh = debh[:position-1]
  2616. gj = pd.read_csv("de/tj/JD_DanWeiGJ.csv")
  2617. filtered = gj[gj["DEBH"]==debh]
  2618. ##print(filtered)
  2619. if len(filtered) > 0:
  2620. index = int(filtered.iloc[0]["YSDELBH"])
  2621. shu = pd.read_csv("de/tj/JD_DingEShu.csv")
  2622. hit = shu[shu["zjh"]==index]
  2623. if len(hit) > 0:
  2624. id = hit.iloc[0]["ID"]
  2625. beizhu = str(filtered.iloc[0]["BZBH"])
  2626. if 'nan' in beizhu:
  2627. pass
  2628. else:
  2629. beizhus = beizhu.split(";")
  2630. ##print(beizhus)
  2631. bzfile = pd.read_csv("de/tj/JD_BeiZhuZK.csv")
  2632. bzfile2 = pd.read_csv("de/tj/JD_BeiZhuFK.csv", dtype=str)
  2633. bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)]
  2634. bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
  2635. bz_selected2 = bz_selected2.astype({'BH': str})
  2636. additional = bz_selected2['BH'].tolist()
  2637. additional = [entry for entry in additional if not entry in ['000000', '000001', 'J00000', '100000', '800101', '015103', '066121', '066501', '066503', '070101', '070303', '070902', '071121', '241503', '8021', '80210']]
  2638. else:
  2639. return None, None, None, None, None, None, None
  2640. ####rengong
  2641. rgde = []
  2642. rg = pd.read_csv("de/tj/JD_GuJiaRG.csv")
  2643. filtered1 = rg[rg["DEBH"]==debh]
  2644. for i in range(len(filtered1)):
  2645. rgde_ = {}
  2646. gr = filtered1.iloc[i]["RGR"]##gongri
  2647. gf = filtered1.iloc[i]["RGF"]##gongfei
  2648. rcjID = filtered1.iloc[i]["RcjID"]
  2649. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2650. filtered2 = detail[detail["RcjID"]==rcjID]
  2651. if len(filtered2) > 0:
  2652. CLBH = filtered2.iloc[0]["CLBH"]
  2653. CLMC = filtered2.iloc[0]["CLMC"]
  2654. JLDW = filtered2.iloc[0]["JLDW"]
  2655. YSJG = filtered2.iloc[0]["Csdj"]
  2656. rgde_["CLBH"] = CLBH
  2657. rgde_["CLMC"] = CLMC
  2658. rgde_["JLDW"] = JLDW
  2659. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2660. rgde_["gr"] = gr.item() if type(gr) == float64 else gr
  2661. rgde_["gf"] = gf.item() if type(gf) == float64 else gf
  2662. if CLBH in additional:
  2663. additional.remove(CLBH)
  2664. rgde.append(rgde_)
  2665. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2666. detail = detail[detail['RcjLb'].isin([1, '1'])]
  2667. added = detail[detail['CLBH'].isin(additional)]
  2668. for _, entry in added.iterrows():
  2669. rgde_ = {}
  2670. CLBH = entry["CLBH"]
  2671. CLMC = entry["CLMC"]
  2672. JLDW = entry["JLDW"]
  2673. YSJG = entry["Csdj"]
  2674. rgde_["CLBH"] = CLBH
  2675. rgde_["CLMC"] = CLMC
  2676. rgde_["JLDW"] = JLDW
  2677. rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2678. rgde_["gr"] = 0
  2679. rgde_["gf"] = 0
  2680. rgde.append(rgde_)
  2681. ####jixie
  2682. jxde = []
  2683. jx = pd.read_csv("de/tj/JD_GuJiaJX.csv")
  2684. filtered1 = jx[jx["DEBH"]==debh]
  2685. for i in range(len(filtered1)):
  2686. jxde_ = {}
  2687. sl = filtered1.iloc[i]["SL"]##shuliang
  2688. hj = filtered1.iloc[i]["HJ"]##hejia
  2689. rcjID = filtered1.iloc[i]["RcjID"]
  2690. detail = pd.read_csv("de/tj/JD_JiXieK.csv")
  2691. filtered2 = detail[detail["RcjID"]==rcjID]
  2692. if len(filtered2) > 0:
  2693. jxbh = filtered2.iloc[0]["jxbh"]
  2694. jxmc = filtered2.iloc[0]["jxmc"]
  2695. DW = filtered2.iloc[0]["DW"]
  2696. tbdj = filtered2.iloc[0]["Csdj"]
  2697. jxde_["jxbh"] = jxbh
  2698. jxde_["jxmc"] = jxmc
  2699. jxde_["DW"] = DW
  2700. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2701. jxde_["sl"] = sl.item() if type(sl) == float64 else sl
  2702. jxde_["hj"] = hj.item() if type(hj) == float64 else hj
  2703. if jxbh in additional:
  2704. additional.remove(jxbh)
  2705. jxde.append(jxde_)
  2706. detail = pd.read_csv("de/tj/JD_JiXieK.csv")
  2707. added = detail[detail['jxbh'].isin(additional)]
  2708. for _, entry in added.iterrows():
  2709. jxde_ = {}
  2710. jxbh = entry["jxbh"]
  2711. jxmc = entry["jxmc"]
  2712. DW = entry["DW"]
  2713. tbdj = entry["Csdj"]
  2714. jxde_["jxbh"] = jxbh
  2715. jxde_["jxmc"] = jxmc
  2716. jxde_["DW"] = DW
  2717. jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
  2718. jxde_["sl"] = 0
  2719. jxde_["hj"] = 0
  2720. jxde.append(jxde_)
  2721. clde = []
  2722. cl = pd.read_csv("de/tj/JD_GuJiaCL.csv")
  2723. filtered1 = cl[cl["DEBH"]==debh]
  2724. for i in range(len(filtered1)):
  2725. clde_ = {}
  2726. SL = filtered1.iloc[i]["SL"]##shuliang
  2727. HJ = filtered1.iloc[i]["HJ"]##hejia
  2728. rcjID = filtered1.iloc[i]["RcjID"]
  2729. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2730. filtered2 = detail[detail["RcjID"]==rcjID]
  2731. detail_ = pd.read_csv("de/tj/JD_PeiBi.csv")
  2732. filtered2_ = detail_[detail_["RcjID"]==rcjID]
  2733. if len(filtered2) > 0 and len(filtered2_) == 0:
  2734. CLBH = filtered2.iloc[0]["CLBH"]
  2735. CLMC = filtered2.iloc[0]["CLMC"]
  2736. JLDW = filtered2.iloc[0]["JLDW"]
  2737. YSJG = filtered2.iloc[0]["Csdj"]
  2738. clde_["CLBH"] = CLBH
  2739. clde_["CLMC"] = CLMC
  2740. clde_["JLDW"] = JLDW
  2741. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2742. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2743. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2744. clde.append(clde_)
  2745. elif len(filtered2) == 0 and len(filtered2_) > 0:
  2746. CLBH = filtered2_.iloc[0]["PBBH"]
  2747. CLMC = filtered2_.iloc[0]["PBMC"]
  2748. JLDW = filtered2_.iloc[0]["DW"]
  2749. YSJG = filtered2_.iloc[0]["Csdj"]
  2750. clde_["CLBH"] = CLBH
  2751. clde_["CLMC"] = CLMC
  2752. clde_["JLDW"] = JLDW
  2753. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2754. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2755. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2756. clde.append(clde_)
  2757. elif len(filtered2) > 0 and len(filtered2_) > 0:
  2758. YSJG = filtered2.iloc[0]["Csdj"]
  2759. YSJG_ = filtered2_.iloc[0]["Csdj"]
  2760. if float(HJ) < 0.00001:
  2761. if float(YSJG) < 0.00001:
  2762. CLBH = filtered2.iloc[0]["CLBH"]
  2763. CLMC = filtered2.iloc[0]["CLMC"]
  2764. JLDW = filtered2.iloc[0]["JLDW"]
  2765. YSJG = filtered2.iloc[0]["Csdj"]
  2766. clde_["CLBH"] = CLBH
  2767. clde_["CLMC"] = CLMC
  2768. clde_["JLDW"] = JLDW
  2769. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2770. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2771. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2772. clde.append(clde_)
  2773. elif float(YSJG_) < 0.00001:
  2774. CLBH = filtered2_.iloc[0]["PBBH"]
  2775. CLMC = filtered2_.iloc[0]["PBMC"]
  2776. JLDW = filtered2_.iloc[0]["DW"]
  2777. YSJG = filtered2_.iloc[0]["Csdj"]
  2778. clde_["CLBH"] = CLBH
  2779. clde_["CLMC"] = CLMC
  2780. clde_["JLDW"] = JLDW
  2781. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2782. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2783. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2784. clde.append(clde_)
  2785. else:
  2786. ratio = float(YSJG) / (float(HJ) / float(SL))
  2787. ratio_ = float(YSJG_) / (float(HJ) / float(SL))
  2788. if abs(ratio - 1) < abs(ratio_ - 1):
  2789. CLBH = filtered2.iloc[0]["CLBH"]
  2790. CLMC = filtered2.iloc[0]["CLMC"]
  2791. JLDW = filtered2.iloc[0]["JLDW"]
  2792. YSJG = filtered2.iloc[0]["Csdj"]
  2793. clde_["CLBH"] = CLBH
  2794. clde_["CLMC"] = CLMC
  2795. clde_["JLDW"] = JLDW
  2796. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2797. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2798. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2799. clde.append(clde_)
  2800. else:
  2801. CLBH = filtered2_.iloc[0]["PBBH"]
  2802. CLMC = filtered2_.iloc[0]["PBMC"]
  2803. JLDW = filtered2_.iloc[0]["DW"]
  2804. YSJG = filtered2_.iloc[0]["Csdj"]
  2805. clde_["CLBH"] = CLBH
  2806. clde_["CLMC"] = CLMC
  2807. clde_["JLDW"] = JLDW
  2808. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2809. clde_["SL"] = SL.item() if type(SL) == float64 else SL
  2810. clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
  2811. clde.append(clde_)
  2812. if 'CLBH' in clde_ and clde_['CLBH'] in additional:
  2813. additional.remove(clde_['CLBH'])
  2814. detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
  2815. detail = detail[detail['RcjLb'].isin([2, '2'])]
  2816. added = detail[detail['CLBH'].isin(additional)]
  2817. added = added.drop_duplicates(subset=['CLBH'])
  2818. for _, entry in added.iterrows():
  2819. clde_ = {}
  2820. CLBH = entry["CLBH"]
  2821. CLMC = entry["CLMC"]
  2822. JLDW = entry["JLDW"]
  2823. YSJG = entry["Csdj"]
  2824. clde_["CLBH"] = CLBH
  2825. clde_["CLMC"] = CLMC
  2826. clde_["JLDW"] = JLDW
  2827. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2828. clde_["SL"] = 0
  2829. clde_["HJ"] = 0
  2830. clde.append(clde_)
  2831. detail = pd.read_csv("de/tj/JD_PeiBi.csv")
  2832. added = detail[detail['PBBH'].isin(additional)]
  2833. for _, entry in added.iterrows():
  2834. clde_ = {}
  2835. CLBH = entry["PBBH"]
  2836. CLMC = entry["PBMC"]
  2837. JLDW = entry["DW"]
  2838. YSJG = entry["Csdj"]
  2839. clde_["CLBH"] = CLBH
  2840. clde_["CLMC"] = CLMC
  2841. clde_["JLDW"] = JLDW
  2842. clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
  2843. clde_["SL"] = 0
  2844. clde_["HJ"] = 0
  2845. clde.append(clde_)
  2846. 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)
  2847. 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
  2848. def getDwgc(root, id, Zylb):
  2849. result = []
  2850. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  2851. item = None
  2852. for child in root:
  2853. if child.tag == "Dxgcxx":
  2854. for child1 in child:
  2855. Dwgcbh = child1.attrib["Dwgcbh"]
  2856. if Dwgcbh == id:
  2857. item = child1
  2858. break
  2859. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  2860. id = id + "Zylb" + Zylb
  2861. for child in item:
  2862. if child.tag == "Fywj":
  2863. result.append({"id": id + "bao jia hui zong", "label": "报价汇总表"})
  2864. elif child.tag == "Gfsj":
  2865. result.append({"id": id + "gui fei shui jin", "label": "规费税金"})
  2866. elif child.tag == "Qdxm":
  2867. result.append({"id": id + "qing dan xiang mu", "label": "清单项目"})
  2868. elif child.tag == "Csxm":
  2869. result.append({"id": id + "cuo shi xiang mu", "label": "措施项目"})
  2870. elif child.tag == "Qtxm":
  2871. result.append({"id": id +"qi ta xiang mu", "label": "其他项目"})
  2872. elif child.tag == "Zlje":
  2873. result.append({"id": id +"zan lie jin e", "label": "暂列金额"})
  2874. elif child.tag == "Clzg":
  2875. result.append({"id": id +"cai liao zan gu jia", "label": "材料暂估价"})
  2876. elif child.tag == "Zygczg":
  2877. result.append({"id": id + "zhuan ye gong cheng zan gu jia", "label": "专业工程暂估价"})
  2878. elif child.tag == "Jrg":
  2879. result.append({"id": id + "ji ri gong", "label": "计日工"})
  2880. elif child.tag == "Zcbfwf":
  2881. result.append({"id": id + "zong cheng bao fu wu fei", "label": "总承包服务费"})
  2882. elif child.tag == "Zjxmjdkzffj":
  2883. result.append({"id": id + "zong jia xiang mu jin du kuan zhi fu fen jie", "label": "总价项目进度款支付分解"})
  2884. elif child.tag == "Fbrgycl":
  2885. result.append({"id": id + "fa bao ren gong ying cai liao", "label": "发包人供应材料"})
  2886. elif child.tag == "Cbrgycl":
  2887. result.append({"id": id + "cheng bao ren gong ying cai liao", "label": "承包人供应材料"})
  2888. elif child.tag == "Rcjhz":
  2889. result.append({"id": id + "ren cai ji hui zong", "label": "人材机汇总"})
  2890. else:
  2891. print(child.tag)
  2892. print("WARNING####################################################################")
  2893. return result
  2894. def getDjcs(root, id):
  2895. result = []
  2896. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  2897. item = None
  2898. for child in root:
  2899. if child.tag == "Dxgcxx":
  2900. for child1 in child:
  2901. Dwgcbh = child1.attrib["Dwgcbh"]
  2902. if Dwgcbh == id:
  2903. item = child1
  2904. break
  2905. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  2906. Fywj = None
  2907. for child in item:
  2908. if child.tag == 'Csxm':
  2909. Fywj= child
  2910. break
  2911. Djcs_parent = None
  2912. for child in Fywj:
  2913. if child.tag == 'DjCs':
  2914. Djcs_parent = child
  2915. break
  2916. for child in Djcs_parent:
  2917. ##child is mx {
  2918. result.append({
  2919. "序号": child.attrib["Xh"], "清单编码": child.attrib["Bm"], "名称" : child.attrib["Mc"],
  2920. "项目特征" : child.attrib["Xmtz"],
  2921. "计算规则" : child.attrib["Jsgz"], "单位" : child.attrib["Dw"], "数量" : child.attrib["Sl"],
  2922. "综合单价" : child.attrib["Zhdj"], "合价" : child.attrib["Zhhj"], "人工费" : child.attrib["Rgf"],
  2923. "主材费" : child.attrib["Zcf"],
  2924. "设备费" : child.attrib["Sbf"], "辅材费" : child.attrib["Fcf"], "材料费" : child.attrib["Clf"],
  2925. "机械费" : child.attrib["Jxf"], "管理费" : child.attrib["Glf"], "利润" : child.attrib["Lr"],
  2926. "暂估价" : child.attrib["Zgj"], "综合人工工日" : child.attrib["Zgr"] })
  2927. __children = []
  2928. zj_parent = None
  2929. for grandchild in child:
  2930. if grandchild.tag == "Csxdezj":
  2931. zj_parent = grandchild
  2932. if zj_parent:
  2933. for entry in zj_parent:
  2934. key = str(uuid.uuid4())
  2935. entry.set("key", key)
  2936. __children.append({
  2937. "key": key,
  2938. "序号": None, "清单编码": entry.attrib["Debm"], "名称" : entry.attrib["Mc"],
  2939. "项目特征" : None,
  2940. "计算规则" : None, "单位" : entry.attrib["Dw"], "数量" : entry.attrib["DwQdSl"],
  2941. "综合单价" : entry.attrib["Dj"], "合价" : entry.attrib["Hj"], "人工费" : entry.attrib["Rgf"],
  2942. "主材费" : entry.attrib["Zcf"],
  2943. "设备费" : entry.attrib["Sbf"], "辅材费" : entry.attrib["Fcf"], "材料费" : entry.attrib["Clf"],
  2944. "机械费" : entry.attrib["Jxf"], "管理费" : entry.attrib["Glf"], "利润" : entry.attrib["Lr"],
  2945. "暂估价" : None, "综合人工工日" : None })
  2946. if len(__children) > 0:
  2947. result[-1]["__children"] = __children
  2948. return result