Xiaopeng Zhang пре 5 месеци
родитељ
комит
6f063e5f7a
3 измењених фајлова са 64 додато и 12 уклоњено
  1. 18 1
      README
  2. 38 10
      subdir/db.py
  3. 8 1
      subdir/util.py

+ 18 - 1
README

@@ -1,7 +1,24 @@
+Feature 
+对于清单表,可以删除,添加常规定额,添加单项定额
+对于清单表,可以改定额的名称,改定额的数量
+对于定额表,对于人材机,可以替换,可以改名称,
+可以改单价(但是目前还不支持改单价后反应到其他定额,这个功能比较消耗性能, 完全可以不允许改单价,只能在汇总表改单价)
+可以改含量
+可以对人材机补充(安装的时候用来补充主材)
+可以选择附注
+可以选择替换预拌砂浆
+
+导入功能
+附注disable
+预拌砂浆disable
+补充enable这个功能
+安装费用有两套体系
+
+TODO
 套定额不能套重复的定额,因为我们是以定额编码做key的
 JD_PeiBiF 表很有用,它可以用来找一个材料的组成。
 举个例子,810078NT3 是陶粒混凝土CL20,他是由中沙,水泥,陶粒组成,这个关系在JD_PeiBiF立面可以查到·
-TODO
+
 回程费 按照百分比算的
 公式 比如 [1-274]*2 没必要支持,完全可以改数量
 附注 小众情况还不支持

+ 38 - 10
subdir/db.py

@@ -412,6 +412,29 @@ def getDjcsQingdanrcj_(root, bh, bt, bm):
         ])
 
     return result
+def getRcjbc(rcj):
+    result = []
+    for entry in rcj:
+        if entry[1] == '410000F':
+            result.append({
+                "id": str(uuid.uuid4()),
+                "主材标志": "true",
+                "主要材料标志": "true",
+                "产地": "",
+                "人材机类别": "2",
+                "人材机编码": "410000F",
+                "供应厂商": "",
+                "单价": entry[5],
+                "单位": entry[4],
+                "名称": entry[2],
+                "含量": entry[10],
+                "暂估价标志": "",
+                "甲供标志": "",
+                "规格型号": "",
+                "设备标志": ""
+            })
+    return result
+
 
 ######################end of helper ########################
 async def resolve(data, client):
@@ -555,12 +578,11 @@ async def resolve(data, client):
                         child["dercj"] = dercj
                         child['fuzhuEnable'] = False
                         child['yuban'] = []
-                        child['rcjbc'] = []
-                        if '-F' in child['清单编码']:
-                            #######TODO########
-                            child['azfytag'] = ['人工费', 10, 100, 0, 0]
-                            if '11-F2' in child['清单编码'] or '1-F2' in child['清单编码']:
-                                child['azfytag'] = ['人工费+机械费', 10, 100, 0, 0]
+                        child['rcjbc'] = getRcjbc(dercj)
+                        
+                            
+                        child['azfytag'] = []###常规定额
+                            
                 await collection.insert_one(qd)
             
 
@@ -1446,14 +1468,18 @@ 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:
-            entry[10] = float(entry[10]) * float(post['数量'])
+            print(entry[4])
+            if entry[4] != '%':
+                entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj
     collection = db["Djcs"]
     async for post in collection.find({'biao_id': biao_id, "Dwgcbh": bh}, {'__children': 0}):
         
         qdrcj = post['rcj'][1:]
         for entry in qdrcj:
-            entry[10] = float(entry[10]) * float(post['数量'])
+            print(entry[4])
+            if entry[4] != '%':
+                entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj
     newHuizong = util.huizongrcj(rcjhz)
     collection = db["Dwgc"]
@@ -1481,13 +1507,15 @@ async def savedjcs(client, data):
     async for post in collection.find({'biao_id': biao_id, "Dwgcbh": bh}, {'__children': 0}):
         qdrcj = post['rcj'][1:]
         for entry in qdrcj:
-            entry[10] = float(entry[10]) * float(post['数量'])
+            if entry[4] != '%':
+                entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj
     collection = db["Djcs"]
     async for post in collection.find({'biao_id': biao_id, "Dwgcbh": bh}, {'__children': 0}):
         qdrcj = post['rcj'][1:]
         for entry in qdrcj:
-            entry[10] = float(entry[10]) * float(post['数量'])
+            if entry[4] != '%':
+                entry[10] = float(entry[10]) * float(post['数量'])
         rcjhz = rcjhz + qdrcj
     newHuizong = util.huizongrcj(rcjhz)
     collection = db["Dwgc"]

+ 8 - 1
subdir/util.py

@@ -33,10 +33,14 @@ def huizongrcj(data):
     result = [
     [ "ID", "编码", "名称", "规格型号", "单位", "数量", "单价", "合价", "产地", 
     "供应厂商", "人材机类别", "主要材料标志", "主材标志", "设备标志", "甲供标志", "暂估价标志"]]
+    left = []
     for entry in data:
         bm = entry[1]
         name = entry[2]
         danwei = entry[4]
+        if '000FE' in bm and danwei == '%': ##azfy
+            left.append(entry)
+            continue
         key = bm + name + danwei
         if key in huizong:
             huizong[key].append(entry)
@@ -51,7 +55,10 @@ def huizongrcj(data):
         result.append([value[0][0], value[0][1], value[0][2], value[0][3], value[0][4], result_hl,
                        value[0][5], result_hj, value[0][6], value[0][7], value[0][8], value[0][13],
                        value[0][14], value[0][15], value[0][9], value[0][12]])
-   
+    for entry in left:
+        result.append([entry[0], entry[1], entry[2], entry[3], entry[4], entry[10],
+                       entry[5], entry[11], entry[6], entry[7], entry[8], entry[13],
+                       entry[14], entry[15], entry[9], entry[12]])
     return result