Browse Source

241220-1代码。

baoyubo 6 months ago
parent
commit
0e3d1d6c5c

+ 46 - 1
routers/api/resourceProvison/MaterialReserveManagement/material.py

@@ -446,4 +446,49 @@ async def change_barcode_status(
     except Exception as e:
         # 处理异常
         traceback.print_exc()
-        raise HTTPException(status_code=500, detail=str(e))
+        raise HTTPException(status_code=500, detail=str(e))
+
+
+@router.get('/treeselect')
+async def gettreeselect(request: Request,material_name: str = Query(None, description='名称'),material_type_name: str = Query(None, description='名称'),db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
+
+
+    query = db.query(ResourceProvisionWarehouseInfo)
+    query = query.filter_by(del_flag='0')
+    query = query.filter_by(status='1')
+    query = query.order_by(ResourceProvisionWarehouseInfo.create_time.desc())
+    lists = query.all()
+    data = []
+    for info in lists:
+        data_info = {"id": info.warehouse_id,
+                     "label": info.warehouse_name,
+                     "isWarehouse": True}
+        # material_list = warehouse_id_get_material_list(db,info.warehouse_id)
+        query1 = db.query(ResourceProvisionMaterialInfo)
+        query1 = query1.filter_by(warehouse_id=info.warehouse_id, del_flag='0')
+        if material_name:
+            query1 = query1.filter_by(material_name=material_name)
+        if material_type_name:
+            query2 = db.query(ResourceProvisionMaterialType)
+            query2 = query2.filter(ResourceProvisionMaterialType.material_category_name.like(f'%{material_type_name}%'), ResourceProvisionMaterialType.del_flag=='0')
+            material_type_list = [str(material_type.id) for material_type in query2.all()]
+            query1 = query1.filter(ResourceProvisionMaterialInfo.material_type.in_(material_type_list))
+        material_list=  query1.all()
+        if material_list:
+            data_info['children'] = []
+            for material in material_list:
+                type_info = type_id_get_material_type_info(db,material.material_type)
+                material_category_name = None
+                if type_info:
+                    material_category_name = type_info.material_category_name
+                data_info['children'].append({"id": material.material_id,
+                         "label": material.material_name,
+                         "type_id": material.material_type,
+                         "type":material_category_name,
+                         "isWarehouse": False})
+        data.append(data_info)
+    return {
+        "code": 200,
+        "msg": "操作成功",
+        "data": data
+    }

+ 4 - 0
utils/resource_provision_util.py

@@ -143,6 +143,10 @@ def material_id_get_material_info(db,id):
     query = db.query(ResourceProvisionMaterialInfo)
     query = query.filter_by(material_id = id,del_flag = '0')
     return query.first()
+def warehouse_id_get_material_list(db,id):
+    query = db.query(ResourceProvisionMaterialInfo)
+    query = query.filter_by(warehouse_id = id,del_flag = '0')
+    return query.all()
 def material_id_get_material_barcode_info(db,id):
     query = db.query(ResourceProvisionMaterialBarcode)
     query = query.filter_by(material_code = id,del_flag = '0')