Browse Source

fix_fuzhu

Xiaopeng Zhang 4 months ago
parent
commit
585985e0f4
8 changed files with 589 additions and 125 deletions
  1. 48 48
      de/xstj/JD_BeiZhuFK.csv
  2. 1 1
      de/yl/JD_BeiZhuFK.csv
  3. 2 0
      loadmongo.py
  4. 98 0
      loadmongo2.py
  5. 40 34
      main.py
  6. 3 3
      subdir/db.py
  7. 389 29
      subdir/service.py
  8. 8 10
      test.py

+ 48 - 48
de/xstj/JD_BeiZhuFK.csv

@@ -262,69 +262,69 @@
 260,261,000184,000001,人工费,调整,0.2,工日,,
 261,262,000185,000001,人工费,调整,0.1,工日,,
 262,263,000186,1630370,坯油,调整,0.33,kg,,
-263,264,000186,1630440,生漆,调整,0.33,kg,,
-264,265,000186,1630511,松香水,调整,0.22,kg,,
-265,266,000186,1630590,血料,含量,0.0,kg,,
+263,264,000186,0601132901,生漆,调整,0.33,kg,,
+264,265,000186,0609100605,松香水,调整,0.22,kg,,
+265,266,000186,0601101101,血料,含量,0.0,kg,,
 266,267,000187,1630370,坯油,调整,0.275,kg,,
-267,268,000187,1630440,生漆,调整,0.275,kg,,
-268,269,000187,1630511,松香水,调整,0.19,kg,,
-269,270,000187,1630590,血料,含量,0.0,kg,,
+267,268,000187,0601132901,生漆,调整,0.275,kg,,
+268,269,000187,0609100605,松香水,调整,0.19,kg,,
+269,270,000187,0601101101,血料,含量,0.0,kg,,
 270,271,000188,1630370,坯油,调整,0.02,kg,,
-271,272,000188,1630440,生漆,调整,0.02,kg,,
-272,273,000188,1630511,松香水,调整,0.02,kg,,
-273,274,000188,1630590,血料,含量,0.0,kg,,
+271,272,000188,0601132901,生漆,调整,0.02,kg,,
+272,273,000188,0609100605,松香水,调整,0.02,kg,,
+273,274,000188,0601101101,血料,含量,0.0,kg,,
 274,275,000189,1630370,坯油,调整,0.125,kg,,
-275,276,000189,1630440,生漆,调整,0.125,kg,,
-276,277,000189,1630511,松香水,调整,0.09,kg,,
-277,278,000189,1630590,血料,含量,0.0,kg,,
+275,276,000189,0601132901,生漆,调整,0.125,kg,,
+276,277,000189,0609100605,松香水,调整,0.09,kg,,
+277,278,000189,0601101101,血料,含量,0.0,kg,,
 278,279,000190,1630370,坯油,调整,0.11,kg,,
-279,280,000190,1630440,生漆,调整,0.11,kg,,
-280,281,000190,1630511,松香水,调整,0.07,kg,,
-281,282,000190,1630590,血料,含量,0.0,kg,,
+279,280,000190,0601132901,生漆,调整,0.11,kg,,
+280,281,000190,0609100605,松香水,调整,0.07,kg,,
+281,282,000190,0601101101,血料,含量,0.0,kg,,
 282,283,000191,1630370,坯油,调整,0.11,kg,,
-283,284,000191,1630440,生漆,调整,0.11,kg,,
-284,285,000191,1630511,松香水,调整,0.07,kg,,
-285,286,000191,1630590,血料,含量,0.0,kg,,
+283,284,000191,0601132901,生漆,调整,0.11,kg,,
+284,285,000191,0609100605,松香水,调整,0.07,kg,,
+285,286,000191,0601101101,血料,含量,0.0,kg,,
 286,287,000192,1630370,坯油,调整,0.33,kg,,
-287,288,000192,1630440,生漆,调整,0.33,kg,,
-288,289,000192,1630511,松香水,调整,0.22,kg,,
-289,290,000192,1630590,血料,含量,0.0,kg,,
-290,291,000193,1630025,坯油,调整,0.275,kg,,
+287,288,000192,0601132901,生漆,调整,0.33,kg,,
+288,289,000192,0609100605,松香水,调整,0.22,kg,,
+289,290,000192,0601101101,血料,含量,0.0,kg,,
+290,291,000193,0603080302,坯油,调整,0.275,kg,,
 291,292,000193,1630029,生漆,调整,0.275,kg,,
-292,293,000193,1630511,松香水,调整,0.19,kg,,
-293,294,000193,1630590,血料,含量,0.0,kg,,
+292,293,000193,0609100605,松香水,调整,0.19,kg,,
+293,294,000193,0601101101,血料,含量,0.0,kg,,
 294,295,000194,1630370,坯油,调整,0.035,kg,,
-295,296,000194,1630440,生漆,调整,0.035,kg,,
-296,297,000194,1630511,松香水,调整,0.02,kg,,
-297,298,000194,1630590,血料,含量,0.0,kg,,
+295,296,000194,0601132901,生漆,调整,0.035,kg,,
+296,297,000194,0609100605,松香水,调整,0.02,kg,,
+297,298,000194,0601101101,血料,含量,0.0,kg,,
 298,299,000195,1630370,坯油,调整,0.17,kg,,
-299,300,000195,1630440,生漆,调整,0.17,kg,,
-300,301,000195,1630511,松香水,调整,0.11,kg,,
-301,302,000195,1630590,血料,含量,0.0,kg,,
+299,300,000195,0601132901,生漆,调整,0.17,kg,,
+300,301,000195,0609100605,松香水,调整,0.11,kg,,
+301,302,000195,0601101101,血料,含量,0.0,kg,,
 302,303,000196,1630370,坯油,调整,0.14,kg,,
-303,304,000196,1630440,生漆,调整,0.14,kg,,
-304,305,000196,1630511,松香水,调整,0.1,kg,,
-305,306,000196,1630590,血料,含量,0.0,kg,,
+303,304,000196,0601132901,生漆,调整,0.14,kg,,
+304,305,000196,0609100605,松香水,调整,0.1,kg,,
+305,306,000196,0601101101,血料,含量,0.0,kg,,
 306,307,000197,1630370,坯油,调整,0.14,kg,,
-307,308,000197,1630440,生漆,调整,0.14,kg,,
-308,309,000197,1630511,松香水,调整,0.1,kg,,
-309,310,000197,1630590,血料,含量,0.0,kg,,
+307,308,000197,0601132901,生漆,调整,0.14,kg,,
+308,309,000197,0609100605,松香水,调整,0.1,kg,,
+309,310,000197,0601101101,血料,含量,0.0,kg,,
 310,311,000198,1630370,坯油,调整,0.105,kg,,
-311,312,000198,1630440,生漆,调整,0.105,kg,,
-312,313,000198,1630511,松香水,调整,0.07,kg,,
-313,314,000198,1630590,血料,含量,0.0,kg,,
+311,312,000198,0601132901,生漆,调整,0.105,kg,,
+312,313,000198,0609100605,松香水,调整,0.07,kg,,
+313,314,000198,0601101101,血料,含量,0.0,kg,,
 314,315,000199,1630370,坯油,调整,0.14,kg,,
-315,316,000199,1630440,生漆,调整,0.14,kg,,
-316,317,000199,1630511,松香水,调整,0.09,kg,,
-317,318,000199,1630590,血料,含量,0.0,kg,,
+315,316,000199,0601132901,生漆,调整,0.14,kg,,
+316,317,000199,0609100605,松香水,调整,0.09,kg,,
+317,318,000199,0601101101,血料,含量,0.0,kg,,
 318,319,000200,1630370,坯油,调整,0.185,kg,,
-319,320,000200,1630440,生漆,调整,0.185,kg,,
-320,321,000200,1630511,松香水,调整,0.12,kg,,
-321,322,000200,1630590,血料,含量,0.0,kg,,
+319,320,000200,0601132901,生漆,调整,0.185,kg,,
+320,321,000200,0609100605,松香水,调整,0.12,kg,,
+321,322,000200,0601101101,血料,含量,0.0,kg,,
 322,323,000201,1630370,坯油,调整,0.23,kg,,
-323,324,000201,1630440,生漆,调整,0.23,kg,,
-324,325,000201,1630511,松香水,调整,0.15,kg,,
-325,326,000201,1630590,血料,含量,0.0,kg,,
+323,324,000201,0601132901,生漆,调整,0.23,kg,,
+324,325,000201,0609100605,松香水,调整,0.15,kg,,
+325,326,000201,0601101101,血料,含量,0.0,kg,,
 326,327,000202,000001,人工费,调整,1.09,工日,,
 327,328,000203,000001,人工费,调整,1.9,工日,,
 328,329,000204,000001,人工费,调整,2.41,工日,,

+ 1 - 1
de/yl/JD_BeiZhuFK.csv

@@ -213,7 +213,7 @@
 211,212,000152,000001,人工费,系数,1.25,工日,,
 212,213,000153,000001,人工费,系数,0.62,工日,,
 213,214,000153,2359999,其它材料费(调整) ,系数,0.5,工日,,
-214,215,000153,9300,其它机械费 ,系数,0.5,工日,,
+214,215,000153,J9300,其它机械费 ,系数,0.5,工日,,
 215,216,000154,000001,人工费,调整,1.72,工日,,
 216,217,000156,000001,人工费,系数,1.3,工日,,
 217,218,000156,J00000,全部机械,系数,1.3,台班,,

+ 2 - 0
loadmongo.py

@@ -37,6 +37,8 @@ def handle_jx(jx):
 
 for post in collection.find({"zhuanye": "修缮工程土建"}):
     
+    
+    
 
     print(post['DEBH'])
     

+ 98 - 0
loadmongo2.py

@@ -0,0 +1,98 @@
+import pymongo
+import pandas
+import json
+from pymongo import MongoClient
+client = MongoClient()
+db = client["dinge"]
+collection = db["de-collection"]
+from subdir import service
+##print(collection.find_one({"DEBH": "3-94"}))
+def handle_cl(cl):
+    result = {}
+    result["CLBH"] = cl["CLBH"]
+    result["CLMC"] = cl["CLMC"]
+    result["JLDW"] = cl["JLDW"]
+    result["YSJG"] = cl["YSJG"]
+    result["SL"] = cl["SL"]
+    result["HJ"] = cl["HJ"]
+    return result
+def handle_rg(rg):
+    result = {}
+    result["CLBH"] = rg["CLBH"]
+    result["CLMC"] = rg["CLMC"]
+    result["JLDW"] = rg["JLDW"]
+    result["YSJG"] = rg["YSJG"]
+    result["gr"] = rg["gr"]
+    result["gf"] = rg["gf"]
+    return result
+def handle_jx(jx):
+    result = {}
+    result["jxbh"] = jx["jxbh"]
+    result["jxmc"] = jx["jxmc"]
+    result["DW"] = jx["DW"]
+    result["tbdj"] = jx["tbdj"]
+    result["sl"] = jx["sl"]
+    result["hj"] = jx["hj"]
+    return result
+liebiao = set()
+for post in collection.find({"zhuanye": "土建"}):
+    
+
+    
+    
+    myquery = { "zhuanye": "土建",
+                "DEBH": post["DEBH"]
+                }
+    A1, A2, rg, jx, cl, bz_, bzfk = service.getSingleDeXilie_tj(post["DEBH"])
+    #print(rg)
+    #print(jx)
+    #print(cl)
+    #print(bzfk)
+    
+    if bzfk == None:
+        pass
+    else:
+        bzfk = json.loads(bzfk)
+        BH = bzfk['BH']
+        values = []
+        for key, value in BH.items():
+            if value == '000001':
+                pass
+            elif value == '000000':
+                pass
+            elif value == 'J00000':
+                pass
+            elif value == '100000':
+                pass
+            elif '-' in value:
+                pass
+            else:
+                
+                hit = False
+                for entry in rg:
+                    if entry['CLBH'] == value:
+                        hit = True
+                for entry in cl:
+                    if entry['CLBH'] == value:
+                        hit = True
+                for entry in jx:
+                    if entry['jxbh'] == value:
+                        hit = True
+                if not hit:
+                    print(post['DEBH'])
+                    print(value)
+                    liebiao.add(value)
+                    print(bzfk['LB'][key])
+                    ##raise Exception
+print(list(liebiao))
+                
+                
+
+    
+    
+
+    
+
+
+
+

+ 40 - 34
main.py

@@ -515,9 +515,12 @@ async def read_singledexilie2(zhuanye: int, debh: str):
     if "-F" in debh:
         return service.read_singledexilie_azfy(debh)
     r_debh = debh.split("!")[0]
-    print(r_debh)
+    if "附注" in r_debh:
+        position = r_debh.find("附注")
+        r_debh = r_debh[:position]
+    ##print(r_debh)
     result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= service.getSingleDeXilie(zhuanye, r_debh)
-    print("get result ***************************************")
+    ##print("get result ***************************************")
     if result1:
         result3 = json.loads(result1)
     else:
@@ -536,8 +539,8 @@ async def read_singledexilie2(zhuanye: int, debh: str):
     else:
         result3["bz_selected2"] = {"BZBH": {}}
     ####14-227+[14-228]*-2
-    ####3-409*2
-    print(r_debh)
+    ####3-409*1.2
+    ##print(r_debh)
     if "[" in r_debh:
         position3 = r_debh.find("*")
         coef = 1
@@ -545,25 +548,25 @@ async def read_singledexilie2(zhuanye: int, debh: str):
             pass
         else:
             coef = r_debh[1 + position3:]
-            print(coef)
+            ##print(coef)
             tail = 0
             for i in range(0, len(coef) + 1):
                 if i == len(coef):
                     tail = i
                     break
-                if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-':
+                if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-' and coef[i] != '.':
                     tail = i
                     break
             if tail == 0:
-                print("1113111")
+                ##print("1113111")
                 result3["reverse"] = 'None'
                 return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
-            coef = int(coef[0:tail])
+            coef = float(coef[0:tail])
 
         position1 = r_debh.find("[")
         position2 = r_debh.find("]")
         if position2 == -1:
-            print("1121111")
+            ##print("1121111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
         if r_debh[position1-1] == "+":
@@ -571,7 +574,7 @@ async def read_singledexilie2(zhuanye: int, debh: str):
         elif r_debh[position1-1] == "-":
             coef = -coef
         else:
-            print("111111")
+            ##print("111111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
         debh = r_debh[position1+1: position2]
@@ -600,25 +603,25 @@ async def read_singledexilie2(zhuanye: int, debh: str):
             result3['DEBH'] = {item_: util.cleanBM(r_debh)}
         else:
             result3["reverse"] = 'None'
-    elif "*" in r_debh:##1-234*2
+    elif "*" in r_debh:##1-234*1.2 
         position3 = r_debh.find("*")
         coef = 1
         
         coef = r_debh[1 + position3:]
-        print(coef)
+        ##print(coef)
         tail = 0
         for i in range(0, len(coef) + 1):
             if i == len(coef):
                 tail = i
                 break
-            if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-':
+            if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-' and coef[i] != '.':
                 tail = i
                 break
         if tail == 0:
-            print("1113111")
+            ##print("1113111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
-        coef = int(coef[0:tail])
+        coef = float(coef[0:tail])
         util.multirg(result3["rgde"], coef)
         util.multijx(result3["jxde"], coef)
         util.multicl(result3["clde"], coef)
@@ -627,7 +630,7 @@ async def read_singledexilie2(zhuanye: int, debh: str):
             item_ = item
         result3['DEBH'] = {item_: (r_debh)}
 
-    print(result3)
+    ##print(result3)
     return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
 
 @app.get("/singledexilie/{zhuanye}/{debh}/{mc}")
@@ -646,9 +649,12 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
     if "-F" in debh:
         return service.read_singledexilie_azfy(debh)
     r_debh = debh.split("!")[0]
-    print(r_debh)
+    if "附注" in r_debh:
+        position = r_debh.find("附注")
+        r_debh = r_debh[:position]
+    ##print(r_debh)
     result1, result2, rgde, jxde, clde, bz_selected, bz_selected2, actual_zhuanye= await db.getSingleDeXilie(model, client, zhuanye, r_debh, mc)
-    print("get result ***************************************")
+    ###print("get result ***************************************")
     if result1:
         result3 = json.loads(result1)
     else:
@@ -668,7 +674,7 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
         result3["bz_selected2"] = {"BZBH": {}}
     ####14-227+[14-228]*-2
     ####3-409*2
-    print(r_debh)
+    ##print(r_debh)
     if "[" in r_debh:
         position3 = r_debh.find("*")
         coef = 1
@@ -676,25 +682,25 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
             pass
         else:
             coef = r_debh[1 + position3:]
-            print(coef)
+            ##print(coef)
             tail = 0
             for i in range(0, len(coef) + 1):
                 if i == len(coef):
                     tail = i
                     break
-                if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-':
+                if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-' and coef[i] != '.':
                     tail = i
                     break
             if tail == 0:
-                print("1113111")
+                ##print("1113111")
                 result3["reverse"] = 'None'
                 return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
-            coef = int(coef[0:tail])
+            coef = float(coef[0:tail])
 
         position1 = r_debh.find("[")
         position2 = r_debh.find("]")
         if position2 == -1:
-            print("1121111")
+            ##print("1121111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
         if r_debh[position1-1] == "+":
@@ -702,7 +708,7 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
         elif r_debh[position1-1] == "-":
             coef = -coef
         else:
-            print("111111")
+            ##print("111111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
         debh = r_debh[position1+1: position2]
@@ -731,25 +737,25 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
             result3['DEBH'] = {item_: util.cleanBM(r_debh)}
         else:
             result3["reverse"] = 'None'
-    elif "*" in r_debh:##1-234*2
+    elif "*" in r_debh:##1-234*1.2
         position3 = r_debh.find("*")
         coef = 1
         
         coef = r_debh[1 + position3:]
-        print(coef)
+        ##print(coef)
         tail = 0
         for i in range(0, len(coef) + 1):
             if i == len(coef):
                 tail = i
                 break
-            if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-':
+            if (coef[i] > '9' or coef[i] < '0') and coef[i] != '-' and coef[i] != '.':
                 tail = i
                 break
         if tail == 0:
-            print("1113111")
+            ##print("1113111")
             result3["reverse"] = 'None'
             return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
-        coef = int(coef[0:tail])
+        coef = float(coef[0:tail])
         util.multirg(result3["rgde"], coef)
         util.multijx(result3["jxde"], coef)
         util.multicl(result3["clde"], coef)
@@ -758,7 +764,7 @@ async def read_singledexilie(zhuanye: int, debh: str, mc: str):
             item_ = item
         result3['DEBH'] = {item_: (r_debh)}
 
-    print(result3)
+    ##print(result3)
     return json.dumps(service.chaifen(result3, actual_zhuanye), ensure_ascii=False)
 
 
@@ -781,7 +787,7 @@ async def savedjcs(r: Info):
 @app.post("/applyFL/")
 async def applyFL(r: InfoWithID):
     data = json.loads(r.name)
-    print(data)
+    ##print(data)
  
     return await db.applyFL(client, r.id, data)
 
@@ -822,7 +828,7 @@ async def upload(file: UploadFile):
         string = content.decode('utf-8')
         root = ET.fromstring(string)
         for child in root:
-            print(child)
+            ##print(child)
             if child.tag == "ZBFileContent":
                 base64_bytes = child.text.encode("ascii")
 
@@ -834,7 +840,7 @@ async def upload(file: UploadFile):
         with zipfile.ZipFile(tmp, 'r') as zip_ref:
             zip_ref.extractall(os.path.join("tmp", tmp))
         dir_list = os.listdir(os.path.join("tmp", tmp))
-        print(dir_list)
+        ##print(dir_list)
         for entry in dir_list:
             if entry.endswith("13jz"):
                 with open(os.path.join("tmp", tmp, entry), 'r') as f:

+ 3 - 3
subdir/db.py

@@ -441,7 +441,7 @@ def getRcjbc(rcj):
 async def resolve(data, client):
     
     root = ET.fromstring(data)
-    print(root)
+    ##print(root)
 
     Dwgcbh = []
     jingjibiao = {}
@@ -1877,7 +1877,7 @@ async def save(client, data):
     async for post in collection.find({'biao_id': biao_id, "Dwgcbh": bh}, {'__children': 0}):
         qdrcj = post['rcj'][1:]
         for entry in qdrcj:
-            print(entry[4])
+            ##print(entry[4])
             if entry[4] != '%':
                 entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj
@@ -1886,7 +1886,7 @@ async def save(client, data):
         
         qdrcj = post['rcj'][1:]
         for entry in qdrcj:
-            print(entry[4])
+            ##print(entry[4])
             if entry[4] != '%':
                 entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj

+ 389 - 29
subdir/service.py

@@ -59,7 +59,7 @@ def chaifen(result, zhuanye):
                 
 
 
-    print(result)
+    ##print(result)
     return result
 
 
@@ -154,9 +154,9 @@ def getQdmx(root, bh, bt):
                     if child_mx.tag == "QdxdezjMx":
                         key = str(uuid.uuid4())
                         child_mx.set("key", key)
-                        print("set key")
-                        print(key)
-                        print(child_mx)
+                        ##print("set key")
+                        ##print(key)
+                        ##print(child_mx)
                         parent = result[-1]
                         if "__children" in parent:
                             parent["__children"].append({
@@ -261,9 +261,9 @@ def getQdmx_default(root, bh, bt):
                         if child_mx.tag == "QdxdezjMx":
                             key = str(uuid.uuid4())
                             child_mx.set("key", key)
-                            print("set key")
-                            print(key)
-                            print(child_mx)
+                            ##print("set key")
+                            ##print(key)
+                            ##print(child_mx)
                             parent = result[-1]
                             if "__children" in parent:
                                 parent["__children"].append({
@@ -675,7 +675,7 @@ def getGfsj(root, id):
                 parent = result[-1]
                 if "__children" in parent:
                     parent = parent["__children"][-1]
-                    print(parent)
+                    ##print(parent)
                     if "__children" in parent:
                         children = parent["__children"]
                         children.append({"序号":xh, "名称": child.attrib["Mc"], "取费基数": child.attrib["Qfjs"], "计算基础": child.attrib["Jsjc"], "费率": child.attrib['Fl'], "金额": child.attrib["Je"],  "类别" : child.attrib["Fyxlb"]})
@@ -693,8 +693,8 @@ def getGfsj(root, id):
     return result
 
 def getBjhz(root, id):
-    print(root)
-    print(id)
+    ##print(root)
+    ##print(id)
     result = []
     #result.append(["ming cheng", "jin e", "zan gu jia", "anquan wenming fei", "guifei"])
     item = None
@@ -707,7 +707,7 @@ def getBjhz(root, id):
                     item = child1
                     break
             ##result.append([child.attrib["Dxgcmc"], child.attrib["Je"], child.attrib["Zgj"], child.attrib["Aqwmf"], child.attrib["Gf"]])
-    print(item)
+    ##print(item)
     Fywj = None
     for child in item:
         if child.tag == 'Fywj':
@@ -732,7 +732,7 @@ def getBjhz(root, id):
                 parent = result[-1]
                 if "__children" in parent:
                     parent = parent["__children"][-1]
-                    print(parent)
+                    ##print(parent)
                     if "__children" in parent:
                         children = parent["__children"]
                         children.append({"序号":xh, "名称": child.attrib["Mc"], "金额": child.attrib["Je"],   "暂估价" : child.attrib["Zgj"], "类别" : child.attrib["Fyxlb"]})
@@ -1298,7 +1298,7 @@ def getDeXilie_azfy(value, id):
         return df.to_json(force_ascii=False)
 
 def getDeXilie(value, id):
-    print(type(id))
+    ##print(type(id))
     if value == 10:
         shu = pd.read_csv("de/tj/JD_DingEShu.csv")
     elif value == 20:
@@ -1312,12 +1312,12 @@ def getDeXilie(value, id):
     else:
         shu = pd.read_csv("de/xsaz/JD_DingEShu.csv")
     hit = shu[shu["ID"]==int(id)]
-    print(hit)
+    ##print(hit)
     if len(hit) == 0:
         return []
     hit0 = hit.iloc[0]
     index = str(hit0['zjh'])
-    print("index=" + index)
+    ##print("index=" + index)
     if value == 10:
         gj = pd.read_csv("de/tj/JD_DanWeiGJ.csv")
         filtered = gj[gj["YSDELBH"]==int(index)]
@@ -1346,7 +1346,7 @@ def getQufei(name):
         return gj.to_json(force_ascii=False)
     shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
     hit = shu[shu["ID"]==int(name)]
-    print(hit)
+    ##print(hit)
     if len(hit) == 0:
         return []
     hit0 = hit.iloc[0]
@@ -1373,7 +1373,7 @@ def getPbxl(name, zhuanye):
         return gj.to_json(force_ascii=False)
     shu = pd.read_csv("de/tj/JD_PeiBiFLB.csv")
     hit = shu[shu["ID"]==int(name)]
-    print(hit)
+    ##print(hit)
     if len(hit) == 0:
         return []
     hit0 = hit.iloc[0]
@@ -1401,7 +1401,7 @@ def getJxxl(name, zhuanye):
         return gj.to_json(force_ascii=False)
     shu = pd.read_csv("de/tj/JD_JiXieFLB.csv")
     hit = shu[shu["ID"]==int(name)]
-    print(hit)
+    ##print(hit)
     if len(hit) == 0:
         return []
     hit0 = hit.iloc[0]
@@ -1440,7 +1440,7 @@ def getClxl(name, zhuanye):
     if zhuanye == 60:
         shu = pd.read_csv("de/xsaz/JD_CaiLiaoFLB.csv", dtype={'cllbh': str})
     hit = shu[shu["ID"]==int(name)]
-    print(hit)
+    ##print(hit)
     if len(hit) == 0:
         return []
     hit0 = hit.iloc[0]
@@ -1698,6 +1698,7 @@ def getSingleDeXilie_xstj(debh):
     id = None
     bz_selected = []
     bz_selected2 = []
+    additional = []
     if "附注" in debh:
         position = debh.find("附注")
         debh = debh[:position]
@@ -1728,6 +1729,10 @@ def getSingleDeXilie_xstj(debh):
             bzfile2 = pd.read_csv("de/xstj/JD_BeiZhuFK.csv", dtype=str)
             bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)] 
             bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)] 
+            bz_selected2 = bz_selected2.astype({'BH': str})
+            additional = bz_selected2['BH'].tolist()
+            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']]
+   
     else:
         return None, None, None, None, None, None, None
     ####rengong
@@ -1752,8 +1757,25 @@ def getSingleDeXilie_xstj(debh):
             rgde_["YSJG"] = YSJG.item()
             rgde_["gr"] = gr.item()
             rgde_["gf"] = gf.item()
+            if CLBH in additional:
+                additional.remove(CLBH)
+        rgde.append(rgde_)
+    detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([1, '1'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        rgde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        rgde_["CLBH"] = CLBH
+        rgde_["CLMC"] = CLMC
+        rgde_["JLDW"] = JLDW
+        rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        rgde_["gr"] = 0
+        rgde_["gf"] = 0
         rgde.append(rgde_)
-    ##print(rgde)
     ####jixie
     jxde = []
     jx = pd.read_csv("de/xstj/JD_GuJiaJX.csv")
@@ -1776,6 +1798,23 @@ def getSingleDeXilie_xstj(debh):
             jxde_["tbdj"] = tbdj.item()
             jxde_["sl"] = sl.item()
             jxde_["hj"] = hj.item()
+            if jxbh in additional:
+                additional.remove(jxbh)
+        jxde.append(jxde_)
+    detail = pd.read_csv("de/xstj/JD_JiXieK.csv")
+    added = detail[detail['jxbh'].isin(additional)]
+    for _, entry in added.iterrows():
+        jxde_ = {}
+        jxbh = entry["jxbh"]
+        jxmc = entry["jxmc"]
+        DW = entry["DW"]
+        tbdj = entry["tbdj"]
+        jxde_["jxbh"] = jxbh
+        jxde_["jxmc"] = jxmc
+        jxde_["DW"] = DW
+        jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
+        jxde_["sl"] = 0
+        jxde_["hj"] = 0
         jxde.append(jxde_)
     ####cailiao
     clde = []
@@ -1873,6 +1912,39 @@ def getSingleDeXilie_xstj(debh):
                     clde_["SL"] = SL.item()
                     clde_["HJ"] = HJ.item()
                     clde.append(clde_)
+        if 'CLBH' in clde_ and clde_['CLBH'] in additional:
+            additional.remove(clde_['CLBH'])
+    detail = pd.read_csv("de/xstj/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([2, '2'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+    detail = pd.read_csv("de/xstj/JD_PeiBi.csv")
+    added = detail[detail['PBBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["PBBH"]
+        CLMC = entry["PBMC"]
+        JLDW = entry["DW"]
+        YSJG = entry["PBDJ"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
 
 
 
@@ -1884,6 +1956,7 @@ def getSingleDeXilie_yl(debh):
     id = None
     bz_selected = []
     bz_selected2 = []
+    additional = []
     if "附注" in debh:
         position = debh.find("附注")
         debh = debh[:position]
@@ -1914,6 +1987,10 @@ def getSingleDeXilie_yl(debh):
             bzfile2 = pd.read_csv("de/yl/JD_BeiZhuFK.csv", dtype=str)
             bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)] 
             bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)] 
+            bz_selected2 = bz_selected2.astype({'BH': str})
+            additional = bz_selected2['BH'].tolist()
+            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']]
+   
     else:
         return None, None, None, None, None, None, None
     ####rengong
@@ -1938,8 +2015,25 @@ def getSingleDeXilie_yl(debh):
             rgde_["YSJG"] = YSJG.item()
             rgde_["gr"] = gr.item()
             rgde_["gf"] = gf.item()
+            if CLBH in additional:
+                additional.remove(CLBH)
+        rgde.append(rgde_)
+    detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([1, '1'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        rgde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        rgde_["CLBH"] = CLBH
+        rgde_["CLMC"] = CLMC
+        rgde_["JLDW"] = JLDW
+        rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        rgde_["gr"] = 0
+        rgde_["gf"] = 0
         rgde.append(rgde_)
-    ##print(rgde)
     ####jixie
     jxde = []
     jx = pd.read_csv("de/yl/JD_GuJiaJX.csv")
@@ -1962,6 +2056,23 @@ def getSingleDeXilie_yl(debh):
             jxde_["tbdj"] = tbdj.item()
             jxde_["sl"] = sl.item()
             jxde_["hj"] = hj.item()
+            if jxbh in additional:
+                additional.remove(jxbh)
+        jxde.append(jxde_)
+    detail = pd.read_csv("de/yl/JD_JiXieK.csv")
+    added = detail[detail['jxbh'].isin(additional)]
+    for _, entry in added.iterrows():
+        jxde_ = {}
+        jxbh = entry["jxbh"]
+        jxmc = entry["jxmc"]
+        DW = entry["DW"]
+        tbdj = entry["tbdj"]
+        jxde_["jxbh"] = jxbh
+        jxde_["jxmc"] = jxmc
+        jxde_["DW"] = DW
+        jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
+        jxde_["sl"] = 0
+        jxde_["hj"] = 0
         jxde.append(jxde_)
     ####cailiao
     clde = []
@@ -2001,6 +2112,39 @@ def getSingleDeXilie_yl(debh):
                 clde_["SL"] = SL.item()
                 clde_["HJ"] = HJ.item()
                 clde.append(clde_)
+        if 'CLBH' in clde_ and clde_['CLBH'] in additional:
+            additional.remove(clde_['CLBH'])
+    detail = pd.read_csv("de/yl/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([2, '2'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+    detail = pd.read_csv("de/yl/JD_PeiBi.csv")
+    added = detail[detail['PBBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["PBBH"]
+        CLMC = entry["PBMC"]
+        JLDW = entry["DW"]
+        YSJG = entry["PBDJ"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
     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)
     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
 
@@ -2010,6 +2154,7 @@ def getSingleDeXilie_az(debh):
     id = None
     bz_selected = []
     bz_selected2 = []
+    additional = []
     if "附注" in debh:
         position = debh.find("附注")
         debh = debh[:position]
@@ -2040,6 +2185,10 @@ def getSingleDeXilie_az(debh):
             bzfile2 = pd.read_csv("de/az/JD_BeiZhuFK.csv", dtype=str)
             bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)] 
             bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)] 
+            bz_selected2 = bz_selected2.astype({'BH': str})
+            additional = bz_selected2['BH'].tolist()
+            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']]
+  
     else:
         return None, None, None, None, None, None, None
     ####rengong
@@ -2064,8 +2213,25 @@ def getSingleDeXilie_az(debh):
             rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
             rgde_["gr"] = gr.item() if type(gr) == float64 else gr
             rgde_["gf"] = gf.item() if type(gf) == float64 else gf
+            if CLBH in additional:
+                additional.remove(CLBH)
+        rgde.append(rgde_)
+    detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([1, '1'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        rgde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        rgde_["CLBH"] = CLBH
+        rgde_["CLMC"] = CLMC
+        rgde_["JLDW"] = JLDW
+        rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        rgde_["gr"] = 0
+        rgde_["gf"] = 0
         rgde.append(rgde_)
-    ##print(rgde)
     ####jixie
     jxde = []
     jx = pd.read_csv("de/az/JD_GuJiaJX.csv")
@@ -2088,6 +2254,23 @@ def getSingleDeXilie_az(debh):
             jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
             jxde_["sl"] = sl.item() if type(sl) == float64 else sl
             jxde_["hj"] = hj.item() if type(hj) == float64 else hj
+            if jxbh in additional:
+                additional.remove(jxbh)
+        jxde.append(jxde_)
+    detail = pd.read_csv("de/az/JD_JiXieK.csv")
+    added = detail[detail['jxbh'].isin(additional)]
+    for _, entry in added.iterrows():
+        jxde_ = {}
+        jxbh = entry["jxbh"]
+        jxmc = entry["jxmc"]
+        DW = entry["DW"]
+        tbdj = entry["tbdj"]
+        jxde_["jxbh"] = jxbh
+        jxde_["jxmc"] = jxmc
+        jxde_["DW"] = DW
+        jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
+        jxde_["sl"] = 0
+        jxde_["hj"] = 0
         jxde.append(jxde_)
     ####cailiao
     clde = []
@@ -2127,6 +2310,41 @@ def getSingleDeXilie_az(debh):
                 clde_["SL"] = SL.item() if type(SL) == float64 else SL
                 clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
                 clde.append(clde_)
+
+        if 'CLBH' in clde_ and clde_['CLBH'] in additional:
+            additional.remove(clde_['CLBH'])
+    detail = pd.read_csv("de/az/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([2, '2'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+    detail = pd.read_csv("de/az/JD_PeiBi.csv")
+    added = detail[detail['PBBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["PBBH"]
+        CLMC = entry["PBMC"]
+        JLDW = entry["DW"]
+        YSJG = entry["PBDJ"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+        
     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)
     ##print(filtered)
     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
@@ -2137,6 +2355,7 @@ def getSingleDeXilie_sz(debh):
     id = None
     bz_selected = []
     bz_selected2 = []
+    additional = []
     if "附注" in debh:
         position = debh.find("附注")
         debh = debh[:position]
@@ -2167,6 +2386,10 @@ def getSingleDeXilie_sz(debh):
             bzfile2 = pd.read_csv("de/sz/JD_BeiZhuFK.csv", dtype=str)
             bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)] 
             bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)] 
+            bz_selected2 = bz_selected2.astype({'BH': str})
+            additional = bz_selected2['BH'].tolist()
+            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']]
+   
     else:
         return None, None, None, None, None, None, None
     ####rengong
@@ -2191,8 +2414,25 @@ def getSingleDeXilie_sz(debh):
             rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
             rgde_["gr"] = gr.item() if type(gr) == float64 else gr
             rgde_["gf"] = gf.item() if type(gf) == float64 else gf
+            if CLBH in additional:
+                additional.remove(CLBH)
+        rgde.append(rgde_)
+    detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([1, '1'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        rgde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        rgde_["CLBH"] = CLBH
+        rgde_["CLMC"] = CLMC
+        rgde_["JLDW"] = JLDW
+        rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        rgde_["gr"] = 0
+        rgde_["gf"] = 0
         rgde.append(rgde_)
-    ##print(rgde)
     ####jixie
     jxde = []
     jx = pd.read_csv("de/sz/JD_GuJiaJX.csv")
@@ -2215,6 +2455,23 @@ def getSingleDeXilie_sz(debh):
             jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
             jxde_["sl"] = sl.item() if type(sl) == float64 else sl
             jxde_["hj"] = hj.item() if type(hj) == float64 else hj
+            if jxbh in additional:
+                additional.remove(jxbh)
+        jxde.append(jxde_)
+    detail = pd.read_csv("de/sz/JD_JiXieK.csv")
+    added = detail[detail['jxbh'].isin(additional)]
+    for _, entry in added.iterrows():
+        jxde_ = {}
+        jxbh = entry["jxbh"]
+        jxmc = entry["jxmc"]
+        DW = entry["DW"]
+        tbdj = entry["tbdj"]
+        jxde_["jxbh"] = jxbh
+        jxde_["jxmc"] = jxmc
+        jxde_["DW"] = DW
+        jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
+        jxde_["sl"] = 0
+        jxde_["hj"] = 0
         jxde.append(jxde_)
     ####cailiao
     clde = []
@@ -2256,7 +2513,7 @@ def getSingleDeXilie_sz(debh):
         elif len(filtered2) > 0 and len(filtered2_) > 0:
             YSJG = filtered2.iloc[0]["YSJG"]
             YSJG_ = filtered2_.iloc[0]["PBDJ"]
-            print(debh)
+            ##print(debh)
             if float(HJ) < 0.00001:
                 if float(YSJG) < 0.00001:
                     CLBH = filtered2.iloc[0]["CLBH"]
@@ -2310,7 +2567,39 @@ def getSingleDeXilie_sz(debh):
                     clde_["SL"] = SL.item() if type(SL) == float64 else SL
                     clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
                     clde.append(clde_)
-
+        if 'CLBH' in clde_ and clde_['CLBH'] in additional:
+            additional.remove(clde_['CLBH'])
+    detail = pd.read_csv("de/sz/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([2, '2'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+    detail = pd.read_csv("de/sz/JD_PeiBi.csv")
+    added = detail[detail['PBBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["PBBH"]
+        CLMC = entry["PBMC"]
+        JLDW = entry["DW"]
+        YSJG = entry["PBDJ"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
 
     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)
     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
@@ -2320,6 +2609,7 @@ def getSingleDeXilie_tj(debh):
     id = None
     bz_selected = []
     bz_selected2 = []
+    additional = []
        
 
     if "附注" in debh:
@@ -2352,6 +2642,9 @@ def getSingleDeXilie_tj(debh):
             bzfile2 = pd.read_csv("de/tj/JD_BeiZhuFK.csv", dtype=str)
             bz_selected = bzfile[bzfile["BZBH"].isin(beizhus)] 
             bz_selected2 = bzfile2[bzfile2["BZBH"].isin(beizhus)]
+            bz_selected2 = bz_selected2.astype({'BH': str})
+            additional = bz_selected2['BH'].tolist()
+            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']]
     else:
         return None, None, None, None, None, None, None
     ####rengong
@@ -2376,8 +2669,26 @@ def getSingleDeXilie_tj(debh):
             rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
             rgde_["gr"] = gr.item() if type(gr) == float64 else gr
             rgde_["gf"] = gf.item() if type(gf) == float64 else gf
+            if CLBH in additional:
+                additional.remove(CLBH)
         rgde.append(rgde_)
-    ##print(rgde)
+    detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([1, '1'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        rgde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        rgde_["CLBH"] = CLBH
+        rgde_["CLMC"] = CLMC
+        rgde_["JLDW"] = JLDW
+        rgde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        rgde_["gr"] = 0
+        rgde_["gf"] = 0
+        rgde.append(rgde_)
+
     ####jixie
     jxde = []
     jx = pd.read_csv("de/tj/JD_GuJiaJX.csv")
@@ -2400,8 +2711,25 @@ def getSingleDeXilie_tj(debh):
             jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
             jxde_["sl"] = sl.item() if type(sl) == float64 else sl
             jxde_["hj"] = hj.item() if type(hj) == float64 else hj
+            if jxbh in additional:
+                additional.remove(jxbh)
         jxde.append(jxde_)
-    ####cailiao
+    detail = pd.read_csv("de/tj/JD_JiXieK.csv")
+    added = detail[detail['jxbh'].isin(additional)]
+    for _, entry in added.iterrows():
+        jxde_ = {}
+        jxbh = entry["jxbh"]
+        jxmc = entry["jxmc"]
+        DW = entry["DW"]
+        tbdj = entry["tbdj"]
+        jxde_["jxbh"] = jxbh
+        jxde_["jxmc"] = jxmc
+        jxde_["DW"] = DW
+        jxde_["tbdj"] = tbdj.item() if type(tbdj) == float64 else tbdj
+        jxde_["sl"] = 0
+        jxde_["hj"] = 0
+        jxde.append(jxde_)
+
     clde = []
     cl = pd.read_csv("de/tj/JD_GuJiaCL.csv")
     filtered1 = cl[cl["DEBH"]==debh]
@@ -2494,8 +2822,40 @@ def getSingleDeXilie_tj(debh):
                     clde_["SL"] = SL.item() if type(SL) == float64 else SL
                     clde_["HJ"] = HJ.item() if type(HJ) == float64 else HJ
                     clde.append(clde_)
-
-
+        if 'CLBH' in clde_ and clde_['CLBH'] in additional:
+            additional.remove(clde_['CLBH'])
+        
+    detail = pd.read_csv("de/tj/JD_CaiLiaoK.csv")
+    detail = detail[detail['RcjLb'].isin([2, '2'])]
+    added = detail[detail['CLBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["CLBH"]
+        CLMC = entry["CLMC"]
+        JLDW = entry["JLDW"]
+        YSJG = entry["YSJG"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
+    detail = pd.read_csv("de/tj/JD_PeiBi.csv")
+    added = detail[detail['PBBH'].isin(additional)]
+    for _, entry in added.iterrows():
+        clde_ = {}
+        CLBH = entry["PBBH"]
+        CLMC = entry["PBMC"]
+        JLDW = entry["DW"]
+        YSJG = entry["PBDJ"]
+        clde_["CLBH"] = CLBH
+        clde_["CLMC"] = CLMC
+        clde_["JLDW"] = JLDW
+        clde_["YSJG"] = YSJG.item() if type(YSJG) == float64 else YSJG
+        clde_["SL"] = 0
+        clde_["HJ"] = 0
+        clde.append(clde_)
 
 
     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)

+ 8 - 10
test.py

@@ -4,17 +4,15 @@ from bson.objectid import ObjectId
 from pymongo import MongoClient
 import asyncio
 client = MongoClient()
-db = client["dinge"]
-collection = db["de-collection"]
+db = client["baojia"]
+collection = db["qdxm"]
 for post in collection.find():
-    h = post['DEBH']
-    hit = 0
-    for i in range(len(h)):
-        if h[i] == '-':
-            hit = hit + 1
-    if hit == 2:
-        print(h)
-        print(post['parent'])
+    if "__children" in post:
+        child = post["__children"]
+        for entry in child:
+            if '附注' in entry['清单编码'] and '换' in entry['清单编码']:
+                print(entry['清单编码'])
+