service.py 130 KB

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