Kaynağa Gözat

fix_same_debm

Xiaopeng Zhang 5 ay önce
ebeveyn
işleme
5ad1ce0ab7
2 değiştirilmiş dosya ile 26 ekleme ve 9 silme
  1. 9 9
      subdir/db.py
  2. 17 0
      subdir/service.py

+ 9 - 9
subdir/db.py

@@ -8,7 +8,7 @@ from datetime import datetime
 
 ###############helper##################
 
-def getDingercj_default(root, bh, bt, qdbm, debm):
+def getDingercj_default(root, bh, bt, qdbm, debm, key):
     result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
     "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
     #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
@@ -51,7 +51,7 @@ def getDingercj_default(root, bh, bt, qdbm, debm):
             break
     hlmx_parent = None
     for child in box:
-        if child.attrib["Debm"] == debm:
+        if child.attrib["Debm"] == debm and child.attrib['key'] == key:
             for grandchild in child:
                 if grandchild.tag == "Qdxdercjhl":
                     hlmx_parent = grandchild
@@ -71,9 +71,9 @@ def getDingercj_default(root, bh, bt, qdbm, debm):
         ])
 
     return result
-def getDingercj_(root, bh, bt, qdbm, debm):
+def getDingercj_(root, bh, bt, qdbm, debm, key):
     if bt == 'Default':
-        return getDingercj_default(root, bh, bt, qdbm, debm)
+        return getDingercj_default(root, bh, bt, qdbm, debm, key)
     result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
     "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
     #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
@@ -128,7 +128,7 @@ def getDingercj_(root, bh, bt, qdbm, debm):
             break
     hlmx_parent = None
     for child in box:
-        if child.attrib["Debm"] == debm:
+        if child.attrib["Debm"] == debm and child.attrib['key'] == key:
             for grandchild in child:
                 if grandchild.tag == "Qdxdercjhl":
                     hlmx_parent = grandchild
@@ -284,7 +284,7 @@ def getQingdanrcj_(root, bh, bt, bm):
     return result
 
 
-def getDjcsDingercj_(root, bh, bt, qdbm, debm):
+def getDjcsDingercj_(root, bh, bt, qdbm, debm, key):
     result = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
     "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]]
     #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
@@ -331,7 +331,7 @@ def getDjcsDingercj_(root, bh, bt, qdbm, debm):
             break
     hlmx_parent = None
     for child in box:
-        if child.attrib["Debm"] == debm:
+        if child.attrib["Debm"] == debm and child.attrib['key'] == key:
             for grandchild in child:
                 if grandchild.tag == "Csxdercjhl":
                     hlmx_parent = grandchild
@@ -549,7 +549,7 @@ async def resolve(data, client):
             if "__children" in cs:
                 children = cs["__children"]
                 for child in children:
-                    dercj = getDjcsDingercj_(root, entry["bh"], "", cs["清单编码"], child["清单编码"])
+                    dercj = getDjcsDingercj_(root, entry["bh"], "", cs["清单编码"], child["清单编码"], child['key'])
                     child["dercj"] = dercj
                     child['fuzhuEnable'] = False
                     child['yuban'] = []
@@ -574,7 +574,7 @@ async def resolve(data, client):
                 if "__children" in qd:
                     children = qd["__children"]
                     for child in children:
-                        dercj = getDingercj_(root, entry["bh"], bt, qd["清单编码"], child["清单编码"])
+                        dercj = getDingercj_(root, entry["bh"], bt, qd["清单编码"], child["清单编码"], child['key'])
                         child["dercj"] = dercj
                         child['fuzhuEnable'] = False
                         child['yuban'] = []

+ 17 - 0
subdir/service.py

@@ -104,9 +104,15 @@ def getQdmx(root, bh, bt):
             if child_zj.tag == "Qdxdezj":
                 for child_mx in child_zj:
                     if child_mx.tag == "QdxdezjMx":
+                        key = str(uuid.uuid4())
+                        child_mx.set("key", key)
+                        print("set key")
+                        print(key)
+                        print(child_mx)
                         parent = result[-1]
                         if "__children" in parent:
                             parent["__children"].append({
+                                "key": key,
                                 "操作" : "",
                                 "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
                                 "计算规则" : None,
@@ -129,6 +135,7 @@ def getQdmx(root, bh, bt):
                             )
                         else:
                             parent["__children"] = [{
+                                "key": key,
                                 "操作" : "",
                                 "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
                                 "计算规则" : None,
@@ -204,9 +211,15 @@ def getQdmx_default(root, bh, bt):
                 if child_zj.tag == "Qdxdezj":
                     for child_mx in child_zj:
                         if child_mx.tag == "QdxdezjMx":
+                            key = str(uuid.uuid4())
+                            child_mx.set("key", key)
+                            print("set key")
+                            print(key)
+                            print(child_mx)
                             parent = result[-1]
                             if "__children" in parent:
                                 parent["__children"].append({
+                                "key": key,    
                                 "操作" : "",
                                 "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
                                 "计算规则" : None,
@@ -229,6 +242,7 @@ def getQdmx_default(root, bh, bt):
                             )
                             else:
                                 parent["__children"] = [{
+                                "key": key,
                                 "操作" : "",
                                 "序号": None, "清单编码" : child_mx.attrib["Debm"], "名称" : child_mx.attrib["Mc"],"项目特征" : None,
                                 "计算规则" : None,
@@ -2137,7 +2151,10 @@ def getDjcs(root, id):
         
         if zj_parent:
             for entry in zj_parent:
+                key = str(uuid.uuid4())
+                entry.set("key", key)
                 __children.append({
+                    "key": key,
                     "序号": None, "清单编码": entry.attrib["Debm"], "名称" : entry.attrib["Mc"],
                      "项目特征" : None, 
                     "计算规则" : None, "单位" : entry.attrib["Dw"], "数量" : entry.attrib["DwQdSl"],