|
@@ -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
|
|
|
+ }
|