service.py 131 KB

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