db.py 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691
  1. import xml.etree.ElementTree as ET
  2. from subdir import service
  3. from bson.objectid import ObjectId
  4. def getDingercj_(root, bh, bt, qdbm, debm):
  5. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  6. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  7. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  8. item = None
  9. for child in root:
  10. if child.tag == "Dxgcxx":
  11. for child1 in child:
  12. Dwgcbh = child1.attrib["Dwgcbh"]
  13. if Dwgcbh == bh:
  14. item = child1
  15. break
  16. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  17. Fywj = None
  18. for child in item:
  19. if child.tag == 'Qdxm':
  20. Fywj= child
  21. break
  22. Rcjhz = None
  23. for child in item:
  24. if child.tag == 'Rcjhz':
  25. Rcjhz = child
  26. break
  27. kv = {}
  28. for entry in Rcjhz:
  29. kv[entry.attrib["RcjId"]]=entry
  30. container = None
  31. for child in Fywj:
  32. ##child is mx
  33. if child.tag == "QdBt":
  34. if child.attrib["Mc"] == bt:
  35. container = child
  36. break
  37. if not container:
  38. container = Fywj
  39. zimu = None
  40. for child in container:
  41. if child.attrib["Qdbm"] == qdbm:
  42. zimu = child
  43. break
  44. box = None
  45. if not zimu:
  46. return result
  47. for child in zimu:
  48. if child.tag == "Qdxdezj":
  49. box = child
  50. break
  51. hlmx_parent = None
  52. for child in box:
  53. if child.attrib["Debm"] == debm:
  54. for grandchild in child:
  55. if grandchild.tag == "Qdxdercjhl":
  56. hlmx_parent = grandchild
  57. for child in hlmx_parent:
  58. result.append([child.attrib["RcjId"],
  59. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  60. kv[child.attrib["RcjId"]].attrib["Mc"],
  61. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  62. kv[child.attrib["RcjId"]].attrib["Dw"],
  63. kv[child.attrib["RcjId"]].attrib["Dj"],
  64. kv[child.attrib["RcjId"]].attrib["Cd"],
  65. kv[child.attrib["RcjId"]].attrib["Gycs"],
  66. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  67. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  68. child.attrib["Rcjhl"], child.attrib["Rcjhj"], "",
  69. "", "", ""
  70. ])
  71. return result
  72. def getQingdanrcj_(root, bh, bt, bm):
  73. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  74. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  75. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  76. item = None
  77. for child in root:
  78. if child.tag == "Dxgcxx":
  79. for child1 in child:
  80. Dwgcbh = child1.attrib["Dwgcbh"]
  81. if Dwgcbh == bh:
  82. item = child1
  83. break
  84. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  85. Fywj = None
  86. for child in item:
  87. if child.tag == 'Qdxm':
  88. Fywj= child
  89. break
  90. Rcjhz = None
  91. for child in item:
  92. if child.tag == 'Rcjhz':
  93. Rcjhz = child
  94. break
  95. kv = {}
  96. for entry in Rcjhz:
  97. kv[entry.attrib["RcjId"]]=entry
  98. container = None
  99. for child in Fywj:
  100. ##child is mx
  101. if child.tag == "QdBt":
  102. if child.attrib["Mc"] == bt:
  103. container = child
  104. break
  105. if not container:
  106. container = Fywj
  107. zimu = None
  108. for child in container:
  109. if child.attrib["Qdbm"] == bm:
  110. zimu = child
  111. break
  112. box = None
  113. if not zimu:
  114. return result
  115. for child in zimu:
  116. if child.tag == "Qdxrcjhl":
  117. box = child
  118. break
  119. for child in box:
  120. result.append([child.attrib["RcjId"],
  121. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  122. kv[child.attrib["RcjId"]].attrib["Mc"],
  123. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  124. kv[child.attrib["RcjId"]].attrib["Dw"],
  125. kv[child.attrib["RcjId"]].attrib["Dj"],
  126. kv[child.attrib["RcjId"]].attrib["Cd"],
  127. kv[child.attrib["RcjId"]].attrib["Gycs"],
  128. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  129. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  130. child.attrib["Rcjhl"], child.attrib["Rcjhj"], child.attrib["Zgjbz"],
  131. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"]
  132. ])
  133. return result
  134. def getDjcsDingercj_(root, bh, bt, qdbm, debm):
  135. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  136. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  137. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  138. item = None
  139. for child in root:
  140. if child.tag == "Dxgcxx":
  141. for child1 in child:
  142. Dwgcbh = child1.attrib["Dwgcbh"]
  143. if Dwgcbh == bh:
  144. item = child1
  145. break
  146. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  147. Fywj = None
  148. for child in item:
  149. if child.tag == 'Csxm':
  150. Fywj= child
  151. break
  152. Rcjhz = None
  153. for child in item:
  154. if child.tag == 'Rcjhz':
  155. Rcjhz = child
  156. break
  157. kv = {}
  158. for entry in Rcjhz:
  159. kv[entry.attrib["RcjId"]]=entry
  160. container = None
  161. for child in Fywj:
  162. if child.tag == "DjCs":
  163. container = child
  164. break
  165. zimu = None
  166. for child in container:
  167. if child.attrib["Bm"] == qdbm:
  168. zimu = child
  169. break
  170. box = None
  171. if not zimu:
  172. return result
  173. for child in zimu:
  174. if child.tag == "Csxdezj":
  175. box = child
  176. break
  177. hlmx_parent = None
  178. for child in box:
  179. if child.attrib["Debm"] == debm:
  180. for grandchild in child:
  181. if grandchild.tag == "Csxdercjhl":
  182. hlmx_parent = grandchild
  183. for child in hlmx_parent:
  184. result.append([child.attrib["RcjId"],
  185. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  186. kv[child.attrib["RcjId"]].attrib["Mc"],
  187. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  188. kv[child.attrib["RcjId"]].attrib["Dw"],
  189. kv[child.attrib["RcjId"]].attrib["Dj"],
  190. kv[child.attrib["RcjId"]].attrib["Cd"],
  191. kv[child.attrib["RcjId"]].attrib["Gycs"],
  192. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  193. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  194. child.attrib["Rcjhl"], child.attrib["Rcjhj"], "",
  195. "", "", ""
  196. ])
  197. return result
  198. def getDjcsQingdanrcj_(root, bh, bt, bm):
  199. result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地",
  200. "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
  201. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  202. item = None
  203. for child in root:
  204. if child.tag == "Dxgcxx":
  205. for child1 in child:
  206. Dwgcbh = child1.attrib["Dwgcbh"]
  207. if Dwgcbh == bh:
  208. item = child1
  209. break
  210. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  211. Fywj = None
  212. for child in item:
  213. if child.tag == 'Csxm':
  214. Fywj= child
  215. break
  216. hl_parent = None
  217. for child in Fywj:
  218. if child.tag == "DjCs":
  219. hl_parent = child
  220. Rcjhz = None
  221. for child in item:
  222. if child.tag == 'Rcjhz':
  223. Rcjhz = child
  224. break
  225. kv = {}
  226. for entry in Rcjhz:
  227. kv[entry.attrib["RcjId"]]=entry
  228. zimu = None
  229. for child in hl_parent:
  230. if child.attrib["Bm"] == bm:
  231. zimu = child
  232. break
  233. box = None
  234. if not zimu:
  235. return result
  236. for child in zimu:
  237. if child.tag == "Csxrcjhl":
  238. box = child
  239. break
  240. for child in box:
  241. result.append([child.attrib["RcjId"],
  242. kv[child.attrib["RcjId"]].attrib["RcjBm"],
  243. kv[child.attrib["RcjId"]].attrib["Mc"],
  244. kv[child.attrib["RcjId"]].attrib["Ggxh"],
  245. kv[child.attrib["RcjId"]].attrib["Dw"],
  246. kv[child.attrib["RcjId"]].attrib["Dj"],
  247. kv[child.attrib["RcjId"]].attrib["Cd"],
  248. kv[child.attrib["RcjId"]].attrib["Gycs"],
  249. kv[child.attrib["RcjId"]].attrib["Rcjlb"],
  250. kv[child.attrib["RcjId"]].attrib["Jgbz"],
  251. child.attrib["Rcjhl"], child.attrib["Rcjhj"], child.attrib["Zgjbz"],
  252. child.attrib["Zyclbz"], child.attrib["Zcbz"], child.attrib["Sbbz"]
  253. ])
  254. return result
  255. async def resolve(manager, websocket, data, client):
  256. tree = ET.parse("data/" + data)
  257. root = tree.getroot()
  258. print(root)
  259. Dwgcbh = []
  260. jingjibiao = {}
  261. jingjibiao["BiaoDuanNO"] = root.attrib["BiaoDuanNO"]
  262. jingjibiao["Jsfs"] = root.attrib["Jsfs"]
  263. jingjibiao["Version"] = root.attrib["Version"]
  264. jingjibiao["Xmmc"] = root.attrib["Xmmc"]
  265. jingjibiao["Dxgcxx"] = []
  266. for child in root:
  267. if child.tag == "ZhaoBiaoXx":
  268. jingjibiao["ZhaoBiaoXx"] = {}
  269. jingjibiao["ZhaoBiaoXx"]["BzTime"] = child.attrib["BzTime"]
  270. jingjibiao["ZhaoBiaoXx"]["Bzr"] = child.attrib["Bzr"]
  271. jingjibiao["ZhaoBiaoXx"]["FhTime"] = child.attrib["FhTime"]
  272. jingjibiao["ZhaoBiaoXx"]["Fhr"] = child.attrib["Fhr"]
  273. jingjibiao["ZhaoBiaoXx"]["Zbr"] = child.attrib["Zbr"]
  274. jingjibiao["ZhaoBiaoXx"]["ZbrDb"] = child.attrib["ZbrDb"]
  275. jingjibiao["ZhaoBiaoXx"]["Zxr"] = child.attrib["Zxr"]
  276. jingjibiao["ZhaoBiaoXx"]["ZxrDb"] = child.attrib["ZxrDb"]
  277. elif child.tag == "TouBiaoXx":
  278. jingjibiao["TouBiaoXx"] = {}
  279. jingjibiao["TouBiaoXx"]["Zbr"] = child.attrib["Zbr"]
  280. jingjibiao["TouBiaoXx"]["Tbr"] = child.attrib["Tbr"]
  281. jingjibiao["TouBiaoXx"]["TbrDb"] = child.attrib["TbrDb"]
  282. jingjibiao["TouBiaoXx"]["Bzr"] = child.attrib["Bzr"]
  283. jingjibiao["TouBiaoXx"]["BzTime"] = child.attrib["BzTime"]
  284. jingjibiao["TouBiaoXx"]["Tbzj"] = child.attrib["Tbzj"]
  285. jingjibiao["TouBiaoXx"]["Zgj"] = child.attrib["Zgj"]
  286. jingjibiao["TouBiaoXx"]["Aqwmf"] = child.attrib["Aqwmf"]
  287. jingjibiao["TouBiaoXx"]["Gf"] = child.attrib["Gf"]
  288. elif child.tag == "Dxgcxx":
  289. Dxgcxx = {}
  290. Dxgcxx["Aqwmf"] = child.attrib["Aqwmf"]
  291. Dxgcxx["Dxgcbh"] = child.attrib["Dxgcbh"]
  292. Dxgcxx["Dxgcmc"] = child.attrib["Dxgcmc"]
  293. Dxgcxx["Gf"] = child.attrib["Gf"]
  294. Dxgcxx["Je"] = child.attrib["Je"]
  295. Dxgcxx["Zgj"] = child.attrib["Zgj"]
  296. Dxgcxx["Dwgc"] = []
  297. for grandchild in child:
  298. if grandchild.tag == "Dwgcxx":
  299. Dwgcxx = {}
  300. Dwgcxx["DogNum"] = grandchild.attrib["DogNum"]
  301. Dwgcxx["Dwgcbh"] = grandchild.attrib["Dwgcbh"]
  302. Dwgcbh.append({"bh": grandchild.attrib["Dwgcbh"], "num": grandchild.attrib["DogNum"]})
  303. Dwgcxx["Dwgcmc"] = grandchild.attrib["Dwgcmc"]
  304. Dwgcxx["MachineKey"] = grandchild.attrib["MachineKey"]
  305. Dwgcxx["SoftName"] = grandchild.attrib["SoftName"]
  306. Dwgcxx["SoftNum"] = grandchild.attrib["SoftNum"]
  307. Dwgcxx["Zylb"] = grandchild.attrib["Zylb"]
  308. Dxgcxx["Dwgc"].append(Dwgcxx)
  309. jingjibiao["Dxgcxx"].append(Dxgcxx)
  310. db = client["baojia"]
  311. collection = db["jingjibiao"]
  312. biao_id = (await collection.insert_one(jingjibiao)).inserted_id
  313. biao_id = str(biao_id)
  314. collection = db["Dwgc"]
  315. for entry in Dwgcbh:
  316. bjhz = service.getBjhz(root, entry["bh"])###array which contains __children
  317. gfsj = service.getGfsj(root, entry["bh"])##array which contains __children
  318. qtxm = service.getQtxm(root, entry["bh"])##array which contains __children
  319. zlje = service.getZlje(root, entry["bh"])
  320. jrg = service.getJrg(root, entry["bh"])
  321. zcbfwf = service.getZcbfwf(root, entry["bh"])
  322. fbrgycl = service.getFbrgycl(root, entry["bh"])
  323. rcjhz = service.getRcjhz(root, entry["bh"])
  324. zjcs = service.getZjcs(root, entry["bh"])
  325. qdbt = service.getQdxm(root, entry["bh"])
  326. Dwgc = {}
  327. Dwgc["bjhz"] = bjhz
  328. Dwgc["gfsj"] = gfsj
  329. Dwgc["qtxm"] = qtxm
  330. Dwgc["zlje"] = zlje
  331. Dwgc["jrg"] = jrg
  332. Dwgc["zcbfwf"] = zcbfwf
  333. Dwgc["fbrgycl"] = fbrgycl
  334. Dwgc["rcjhz"] = rcjhz
  335. Dwgc["zjcs"] = zjcs
  336. Dwgc["qdbt"] = qdbt
  337. Dwgc["DogNum"] = entry["num"]
  338. Dwgc["Dwgcbh"] = entry["bh"]
  339. Dwgc["biao_id"] = biao_id
  340. await collection.insert_one(Dwgc)
  341. collection = db["Djcs"]
  342. for entry in Dwgcbh:
  343. djcs = service.getDjcs(root, entry["bh"])
  344. for cs in djcs:
  345. cs["DogNum"] = entry["num"]
  346. cs["Dwgcbh"] = entry["bh"]
  347. cs["biao_id"] = entry["biao_id"]
  348. rcj = getDjcsQingdanrcj_(root, entry["bh"], "", cs['清单编码'])
  349. cs["rcj"] = rcj
  350. if "__children" in cs:
  351. children = cs["__children"]
  352. for child in children:
  353. dercj = getDjcsDingercj_(root, entry["bh"], "", cs["清单编码"], child["清单编码"])
  354. child["dercj"] = dercj
  355. await collection.insert_one(cs)
  356. collection = db["qdxm"]
  357. for entry in Dwgcbh:
  358. bts = service.getQdxm(root, entry["bh"])
  359. for bt in bts:
  360. qdmx = service.getQdmx(root, entry["bh"], bt)
  361. for qd in qdmx:
  362. qd["DogNum"] = entry["num"]
  363. qd["Dwgcbh"] = entry["bh"]
  364. qd["biao_id"] = biao_id
  365. qd["bt"] = bt
  366. rcj = getQingdanrcj_(root, entry["bh"], bt, qd["清单编码"])
  367. qd["rcj"] = rcj
  368. if "__children" in qd:
  369. children = qd["__children"]
  370. for child in children:
  371. dercj = getDingercj_(root, entry["bh"], bt, qd["清单编码"], child["清单编码"])
  372. child["dercj"] = dercj
  373. await collection.insert_one(qd)
  374. await manager.send_personal_message(f"You wrote: {data}", websocket)
  375. async def list_files(client):
  376. db = client["baojia"]
  377. collection = db["jingjibiao"]
  378. result = []
  379. async for post in collection.find():
  380. result.append([str(post['_id']), post["Xmmc"]])
  381. return result
  382. def getDwgc(id, Zylb):
  383. result = []
  384. #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
  385. ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
  386. id = id + "Zylb" + Zylb
  387. result.append({"id": id + "bao jia hui zong", "label": "报价汇总表"})
  388. result.append({"id": id + "gui fei shui jin", "label": "规费税金"})
  389. result.append({"id": id + "qing dan xiang mu", "label": "清单项目"})
  390. result.append({"id": id + "cuo shi xiang mu", "label": "措施项目"})
  391. result.append({"id": id +"qi ta xiang mu", "label": "其他项目"})
  392. result.append({"id": id +"zan lie jin e", "label": "暂列金额"})
  393. result.append({"id": id +"cai liao zan gu jia", "label": "材料暂估价"})
  394. result.append({"id": id + "zhuan ye gong cheng zan gu jia", "label": "专业工程暂估价"})
  395. result.append({"id": id + "ji ri gong", "label": "计日工"})
  396. result.append({"id": id + "zong cheng bao fu wu fei", "label": "总承包服务费"})
  397. result.append({"id": id + "zong jia xiang mu jin du kuan zhi fu fen jie", "label": "总价项目进度款支付分解"})
  398. result.append({"id": id + "fa bao ren gong ying cai liao", "label": "发包人供应材料"})
  399. result.append({"id": id + "cheng bao ren gong ying cai liao", "label": "承包人供应材料"})
  400. result.append({"id": id + "ren cai ji hui zong", "label": "人材机汇总"})
  401. return result
  402. async def getOutline(client, id):
  403. db = client["baojia"]
  404. collection = db["jingjibiao"]
  405. document = await collection.find_one({'_id': ObjectId(id)})
  406. result = []
  407. if 'TouBiaoXx' in document:
  408. result.append({"id" : "TouBiaoXx", "label" : "投标信息" })
  409. if 'Dxgcxx' in document:
  410. Dxgcxx = document["Dxgcxx"]
  411. for dxgc in Dxgcxx:
  412. result2 = []
  413. Dwgc = dxgc["Dwgc"]
  414. for grandchild in Dwgc:
  415. result2.append({"id" : grandchild['Dwgcbh'], "Zylb":grandchild['Zylb'], "label": grandchild["Dwgcmc"], "children" : getDwgc(grandchild['Dwgcbh'], grandchild['Zylb'])})
  416. result.append({"id" : dxgc['Dxgcbh'], "label" : dxgc['Dxgcmc'], "children" : result2})
  417. return result
  418. async def getDetail(client, id):
  419. db = client["baojia"]
  420. collection = db["jingjibiao"]
  421. document = await collection.find_one({'_id': ObjectId(id)})
  422. result = []
  423. result.append(["名称", "金额", "暂估价", "安全文明施工费", "规费"])
  424. if 'TouBiaoXx' in document:
  425. toubiaoxx = document["TouBiaoXx"]
  426. result.append([toubiaoxx["Zbr"], toubiaoxx["Tbzj"], toubiaoxx["Zgj"], toubiaoxx["Aqwmf"], toubiaoxx["Gf"]])
  427. if 'Dxgcxx' in document:
  428. Dxgcxx = document["Dxgcxx"]
  429. for dxgc in Dxgcxx:
  430. result.append([dxgc["Dxgcmc"], dxgc["Je"], dxgc["Zgj"], dxgc["Aqwmf"], dxgc["Gf"]])
  431. return result
  432. async def getBjhz(client, objectid, id):
  433. db = client["baojia"]
  434. collection = db["Dwgc"]
  435. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  436. return document['bjhz']
  437. async def getGfsj(client, objectid, id):
  438. db = client["baojia"]
  439. collection = db["Dwgc"]
  440. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  441. return document['gfsj']
  442. async def getQtxm(client, objectid, id):
  443. db = client["baojia"]
  444. collection = db["Dwgc"]
  445. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  446. return document['qtxm']
  447. async def getZlje(client, objectid, id):
  448. db = client["baojia"]
  449. collection = db["Dwgc"]
  450. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  451. return document['zlje']
  452. async def getJrg(client, objectid, id):
  453. db = client["baojia"]
  454. collection = db["Dwgc"]
  455. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  456. return document['jrg']
  457. async def getZcbfwf(client, objectid, id):
  458. db = client["baojia"]
  459. collection = db["Dwgc"]
  460. document = await collection.find_one({"Dwgcbh": id, "biao_id": objectid})
  461. return document['zcbfwf']
  462. async def getFbrgycl(client, objectid, id):
  463. db = client["baojia"]
  464. collection = db["Dwgc"]
  465. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  466. return document['fbrgycl']
  467. async def getRcjhz(client, objectid, id):
  468. db = client["baojia"]
  469. collection = db["Dwgc"]
  470. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  471. return document['rcjhz']
  472. async def getZjcs(client, objectid, id):
  473. db = client["baojia"]
  474. collection = db["Dwgc"]
  475. document = await collection.find_one({ "Dwgcbh": id, "biao_id": objectid})
  476. return document['zjcs']
  477. async def getDjcs(client, objectid, id):
  478. db = client["baojia"]
  479. collection = db["Djcs"]
  480. result = []
  481. async for post in collection.find({"Dwgcbh": id, "biao_id": objectid}):
  482. ##post["ID"] = post["_id"]
  483. del post["_id"]
  484. del post["rcj"]
  485. del post["DogNum"]
  486. result.append(post)
  487. return result
  488. async def getDjcsQingdanrcj(client, name, bh, bt, bm):
  489. db = client["baojia"]
  490. collection = db["Djcs"]
  491. document = await collection.find_one({ "Dwgcbh": bh, "清单编码": bm, "biao_id": name})
  492. result = document["rcj"]
  493. return result
  494. async def getDjcsDingercj(client, name, bh, bt, qdbm, debm):
  495. db = client["baojia"]
  496. collection = db["Djcs"]
  497. document = await collection.find_one({"Dwgcbh": bh, "清单编码": qdbm, "biao_id": name})
  498. children = document["__children"]
  499. result = []
  500. for child in children:
  501. if child["清单编码"] == debm:
  502. result = child["dercj"]
  503. return result
  504. async def getQdxm(client, name, bh):
  505. db = client["baojia"]
  506. collection = db["Dwgc"]
  507. document = await collection.find_one({'biao_id': name, "Dwgcbh": bh})
  508. if document:
  509. return document['qdbt']
  510. else:
  511. return []
  512. async def getQdmx(client, name, bh, bt):
  513. db = client["baojia"]
  514. collection = db["qdxm"]
  515. result = []
  516. async for post in collection.find({'biao_id': name, "Dwgcbh": bh, "bt": bt}):
  517. ##post["ID"] = post["_id"]
  518. del post["_id"]
  519. #del post["rcj"]
  520. #del post["DogNum"]
  521. result.append(post)
  522. return result
  523. async def getQingdanrcj(client, name, bh, bt, bm):
  524. db = client["baojia"]
  525. collection = db["qdxm"]
  526. document = await collection.find_one({ "Dwgcbh": bh, "清单编码": bm, "biao_id": name, "bt": bt})
  527. result = document["rcj"]
  528. return result
  529. async def getDingercj(client, name, bh, bt, qdbm, debm):
  530. db = client["baojia"]
  531. collection = db["qdxm"]
  532. document = await collection.find_one({"Dwgcbh": bh, "清单编码": qdbm, "biao_id": name, "bt": bt})
  533. result = []
  534. if "__children" in document:
  535. children = document["__children"]
  536. for child in children:
  537. if child["清单编码"] == debm:
  538. result = child["dercj"]
  539. return result
  540. async def save(client, data):
  541. db = client["baojia"]
  542. collection = db["qdxm"]
  543. for entry in data:
  544. entry["__children"] = entry["children"]
  545. del entry["children"]
  546. await collection.replace_one({"biao_id": entry["biao_id"], "Dwgcbh": entry["Dwgcbh"], "bt": entry["bt"], "清单编码": entry["清单编码"]}, entry)
  547. return {"result": "ok"}