|
|
@@ -450,10 +450,164 @@ async def resolve(data, client):
|
|
|
|
|
|
|
|
|
|
|
|
+def dfs(items):
|
|
|
+ result = []
|
|
|
+ for entry in items:
|
|
|
+ result.append([entry['序号'], entry['名称'], entry['金额'], entry['暂估价'], entry['类别']])
|
|
|
+ if '__children' in entry:
|
|
|
+ result_ = dfs(entry['__children'])
|
|
|
+ for r in result_:
|
|
|
+ result.append(r)
|
|
|
+ return result
|
|
|
+
|
|
|
+def dfs2(items):
|
|
|
+ result = []
|
|
|
+ for entry in items:
|
|
|
+ result.append([entry['序号'], entry['名称'], entry['取费基数'], entry['计算基础'], entry['费率'], entry['金额'], entry['类别']])
|
|
|
+ if '__children' in entry:
|
|
|
+ result_ = dfs2(entry['__children'])
|
|
|
+ for r in result_:
|
|
|
+ result.append(r)
|
|
|
+ return result
|
|
|
+
|
|
|
+def dfs3(items):
|
|
|
+ result = []
|
|
|
+ for entry in items:
|
|
|
+ result.append([entry['序号'], entry['名称'], entry['暂列金额'], entry['金额'], entry['项目类别'], entry['备注']])
|
|
|
+ if '__children' in entry:
|
|
|
+ result_ = dfs3(entry['__children'])
|
|
|
+ for r in result_:
|
|
|
+ result.append(r)
|
|
|
+ return result
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+async def build(client, root, id):
|
|
|
+ db = client["baojia"]
|
|
|
+ collection = db["jingjibiao"]
|
|
|
+ document = await collection.find_one({'_id': ObjectId(id)})
|
|
|
+
|
|
|
+ root.set('BiaoDuanNO', document['BiaoDuanNO'])
|
|
|
+ root.set('Jsfs', document['Jsfs'])
|
|
|
+ root.set('Version', document['Version'])
|
|
|
+ root.set('Xmmc', document['Xmmc'])
|
|
|
+
|
|
|
+ TouBiaoXx = ET.SubElement(root, 'TouBiaoXx')
|
|
|
+ ##{'Tbzj' : '', 'Zgj' : '', 'Aqwmf' : '', 'Gf' : '' }
|
|
|
+ TouBiaoXx.set('Tbzj', str(document['TouBiaoXx']['Tbzj']))
|
|
|
+ TouBiaoXx.set('Zgj', str(document['TouBiaoXx']['Zgj']))
|
|
|
+ TouBiaoXx.set('Aqwmf', str(document['TouBiaoXx']['Aqwmf']))
|
|
|
+ TouBiaoXx.set('Gf', str(document['TouBiaoXx']['Gf']))
|
|
|
+ if 'Zbr' in document['TouBiaoXx']:
|
|
|
+ TouBiaoXx.set('Zbr', str(document['TouBiaoXx']['Zbr']))
|
|
|
+ if 'Tbr' in document['TouBiaoXx']:
|
|
|
+ TouBiaoXx.set('Tbr', str(document['TouBiaoXx']['Tbr']))
|
|
|
+ if 'TbrDb' in document['TouBiaoXx']:
|
|
|
+ TouBiaoXx.set('TbrDb', str(document['TouBiaoXx']['TbrDb']))
|
|
|
+ if 'Bzr' in document['TouBiaoXx']:
|
|
|
+ TouBiaoXx.set('Bzr', str(document['TouBiaoXx']['Bzr']))
|
|
|
+ if 'BzTime' in document['TouBiaoXx']:
|
|
|
+ TouBiaoXx.set('BzTime', str(document['TouBiaoXx']['BzTime']))
|
|
|
+ for item in document['Dxgcxx']:
|
|
|
+ Dxgcxx = ET.SubElement(root, 'Dxgcxx')
|
|
|
+ Dxgcxx.set('Dxgcbh', str(item['Dxgcbh']))
|
|
|
+ Dxgcxx.set('Dxgcmc', str(item['Dxgcmc']))
|
|
|
+ Dxgcxx.set('Je', str(item['Je']))
|
|
|
+ Dxgcxx.set('Zgj', str(item['Zgj']))
|
|
|
+ Dxgcxx.set('Aqwmf', str(item['Aqwmf']))
|
|
|
+ Dxgcxx.set('Gf', str(item['Gf']))
|
|
|
+ for entry in item['Dwgc']:
|
|
|
+ Dwgcxx = ET.SubElement(Dxgcxx, 'Dwgcxx')
|
|
|
+ Dwgcxx.set('Dwgcbh', str(entry['Dwgcbh']))
|
|
|
+ Dwgcxx.set('Dwgcmc', str(entry['Dwgcmc']))
|
|
|
+ Dwgcxx.set('Zylb', str(entry['Zylb']))
|
|
|
+ Dwgcxx.set('SoftName', str(entry['SoftName']))
|
|
|
+ Dwgcxx.set('SoftNum', str(entry['SoftNum']))
|
|
|
+ Dwgcxx.set('DogNum', str(entry['DogNum']))
|
|
|
+ Dwgcxx.set('MachineKey', str(entry['MachineKey']))
|
|
|
+ collection = db["Dwgc"]
|
|
|
+ Dwgc = await collection.find_one({'biao_id': id, "Dwgcbh": entry['Dwgcbh']})
|
|
|
+ bjhz = dfs(Dwgc['bjhz'])
|
|
|
+ gfsj = dfs2(Dwgc['gfsj'])
|
|
|
+ qtxm = dfs3(Dwgc['qtxm'])
|
|
|
+ zlje = Dwgc['zlje']
|
|
|
+ zygczgj = Dwgc['zygczgj']
|
|
|
+ jrg = Dwgc['jrg']
|
|
|
+ zcbfwf = Dwgc['zcbfwf']
|
|
|
+ Fywj = ET.SubElement(Dwgcxx, 'Fywj')
|
|
|
+ for bjhz_ in bjhz:
|
|
|
+ FywjMx = ET.SubElement(Fywj, 'FywjMx')
|
|
|
+ FywjMx.set('Xh', str(bjhz_[0]))
|
|
|
+ FywjMx.set('Mc', str(bjhz_[1]))
|
|
|
+ FywjMx.set('Je', str(bjhz_[2]))
|
|
|
+ FywjMx.set('Zgj', str(bjhz_[3]))
|
|
|
+ FywjMx.set('Fyxlb', str(bjhz_[4]))
|
|
|
+ Gfsj = ET.SubElement(Dwgcxx, 'Gfsj')
|
|
|
+ for gfsj_ in gfsj:
|
|
|
+ GfsjMx = ET.SubElement(Gfsj, 'GfsjMx')
|
|
|
+ GfsjMx.set('Xh', str(gfsj_[0]))
|
|
|
+ GfsjMx.set('Mc', str(gfsj_[1]))
|
|
|
+ GfsjMx.set('Qfjs', str(gfsj_[2]))
|
|
|
+ GfsjMx.set('Jsjc', str(gfsj_[3]))
|
|
|
+ GfsjMx.set('Fl', str(gfsj_[4]))
|
|
|
+ GfsjMx.set('Je', str(gfsj_[5]))
|
|
|
+ GfsjMx.set('Fyxlb', str(gfsj_[6]))
|
|
|
+ Qtxm = ET.SubElement(Dwgcxx, 'Qtxm')
|
|
|
+ for qtxm_ in qtxm:
|
|
|
+ QtxmMx = ET.SubElement(Qtxm, 'QtxmMx')
|
|
|
+ QtxmMx.set('Xh', str(qtxm_[0]))
|
|
|
+ QtxmMx.set('Mc', str(qtxm_[1]))
|
|
|
+ QtxmMx.set('Je', str(qtxm_[2]))
|
|
|
+ QtxmMx.set('Xmlb', str(qtxm_[3]))
|
|
|
+ QtxmMx.set('Bz', str(qtxm_[4]))
|
|
|
+ Zlje = ET.SubElement(Dwgcxx, 'Zlje')
|
|
|
+ for i in range(len(zlje)):
|
|
|
+ ZljeMx = ET.SubElement(Zlje, 'ZljeMx')
|
|
|
+ ZljeMx.set('Xh', str(zlje[i][0]))
|
|
|
+ ZljeMx.set('Mc', str(zlje[i][1]))
|
|
|
+ ZljeMx.set('Dw', str(zlje[i][2]))
|
|
|
+ ZljeMx.set('Zdje', str(zlje[i][3]))
|
|
|
+ ZljeMx.set('Bz', str(zlje[i][4]))
|
|
|
+ Clzg = ET.SubElement(Dwgcxx, 'Clzg')
|
|
|
+ Zygczg = ET.SubElement(Dwgcxx, 'Zygczg')
|
|
|
+ for zygczgj_ in zygczgj:
|
|
|
+ ZygczgMx = ET.SubElement(Zygczg, 'ZygczgMx')
|
|
|
+ ZygczgMx.set('Xh', str(zygczgj_[0]))
|
|
|
+ ZygczgMx.set('Mc', str(zygczgj_[1]))
|
|
|
+ ZygczgMx.set('Gcnr', str(zygczgj_[2]))
|
|
|
+ ZygczgMx.set('Je', str(zygczgj_[3]))
|
|
|
+ ZygczgMx.set('Bz', str(zygczgj_[4]))
|
|
|
+ Jrg = ET.SubElement(Dwgcxx, 'Jrg')
|
|
|
+ for jrg_ in jrg:
|
|
|
+ JrgBt = ET.SubElement(Jrg, 'JrgBt')
|
|
|
+ JrgBt.set('Xh', str(jrg_[0]))
|
|
|
+ JrgBt.set('Mc', str(jrg_[1]))
|
|
|
+ JrgBt.set('Je', str(jrg_[2]))
|
|
|
+ JrgBt.set('Lb', str(jrg_[3]))
|
|
|
+ Zcbfwf = ET.SubElement(Dwgcxx, 'Zcbfwf')
|
|
|
+ for zcbfwf_ in zcbfwf:
|
|
|
+ ZcbfwfMx = ET.SubElement(Zcbfwf, 'ZcbfwfMx')
|
|
|
+ ZcbfwfMx.set('Xh', str(zcbfwf_[0]))
|
|
|
+ ZcbfwfMx.set('Mc', str(zcbfwf_[1]))
|
|
|
+ ZcbfwfMx.set('Xmjz', str(zcbfwf_[2]))
|
|
|
+ ZcbfwfMx.set('Fwnr', str(zcbfwf_[3]))
|
|
|
+ ZcbfwfMx.set('Jsjc', str(zcbfwf_[4]))
|
|
|
+ ZcbfwfMx.set('Fl', str(zcbfwf_[5]))
|
|
|
+ ZcbfwfMx.set('Je', str(zcbfwf_[6]))
|
|
|
+ Zjxmjdkzffj = ET.SubElement(Dwgcxx, 'Zjxmjdkzffj')
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
- ##await manager.send_personal_message(f"You wrote: {data}", websocket)
|
|
|
|
|
|
async def delete_files(client, id):
|
|
|
db = client["baojia"]
|