update ui
This commit is contained in:
93
app.py
93
app.py
@@ -8644,7 +8644,8 @@ def get_stock_info(seccode):
|
|||||||
ORDER BY a.ENDDATE DESC LIMIT 1
|
ORDER BY a.ENDDATE DESC LIMIT 1
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode).fetchone()
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode).fetchone()
|
||||||
|
|
||||||
if not result:
|
if not result:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
@@ -8667,7 +8668,8 @@ def get_stock_info(seccode):
|
|||||||
ORDER BY F001D DESC LIMIT 1
|
ORDER BY F001D DESC LIMIT 1
|
||||||
""")
|
""")
|
||||||
|
|
||||||
forecast_result = engine.execute(forecast_query, seccode=seccode).fetchone()
|
with engine.connect() as conn:
|
||||||
|
forecast_result = conn.execute(forecast_query, seccode=seccode).fetchone()
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'stock_code': result.SECCODE,
|
'stock_code': result.SECCODE,
|
||||||
@@ -8828,7 +8830,8 @@ def get_balance_sheet(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT :limit
|
ORDER BY ENDDATE DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, limit=limit)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, limit=limit)
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -9018,7 +9021,8 @@ def get_income_statement(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT :limit
|
ORDER BY ENDDATE DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, limit=limit)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, limit=limit)
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -9227,7 +9231,8 @@ def get_cashflow(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT :limit
|
ORDER BY ENDDATE DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, limit=limit)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, limit=limit)
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -9462,7 +9467,8 @@ def get_financial_metrics(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT :limit
|
ORDER BY ENDDATE DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, limit=limit)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, limit=limit)
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -9602,7 +9608,8 @@ def get_main_business(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT :limit
|
ORDER BY ENDDATE DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
periods = engine.execute(period_query, seccode=seccode, limit=limit).fetchall()
|
with engine.connect() as conn:
|
||||||
|
periods = conn.execute(period_query, seccode=seccode, limit=limit).fetchall()
|
||||||
|
|
||||||
# 产品分类数据
|
# 产品分类数据
|
||||||
product_data = []
|
product_data = []
|
||||||
@@ -9620,7 +9627,8 @@ def get_main_business(seccode):
|
|||||||
ORDER BY F005N DESC
|
ORDER BY F005N DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, enddate=period[0])
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, enddate=period[0])
|
||||||
# Convert result to list to allow multiple iterations
|
# Convert result to list to allow multiple iterations
|
||||||
rows = list(result)
|
rows = list(result)
|
||||||
|
|
||||||
@@ -9669,7 +9677,8 @@ def get_main_business(seccode):
|
|||||||
ORDER BY F007N DESC
|
ORDER BY F007N DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, enddate=period[0])
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, enddate=period[0])
|
||||||
# Convert result to list to allow multiple iterations
|
# Convert result to list to allow multiple iterations
|
||||||
rows = list(result)
|
rows = list(result)
|
||||||
|
|
||||||
@@ -9730,7 +9739,8 @@ def get_forecast(seccode):
|
|||||||
ORDER BY F001D DESC, UPDATE_DATE DESC LIMIT 10
|
ORDER BY F001D DESC, UPDATE_DATE DESC LIMIT 10
|
||||||
""")
|
""")
|
||||||
|
|
||||||
forecast_result = engine.execute(forecast_query, seccode=seccode)
|
with engine.connect() as conn:
|
||||||
|
forecast_result = conn.execute(forecast_query, seccode=seccode)
|
||||||
forecast_data = []
|
forecast_data = []
|
||||||
|
|
||||||
for row in forecast_result:
|
for row in forecast_result:
|
||||||
@@ -9771,7 +9781,8 @@ def get_forecast(seccode):
|
|||||||
ORDER BY F001D DESC LIMIT 8
|
ORDER BY F001D DESC LIMIT 8
|
||||||
""")
|
""")
|
||||||
|
|
||||||
pretime_result = engine.execute(pretime_query, seccode=seccode)
|
with engine.connect() as conn:
|
||||||
|
pretime_result = conn.execute(pretime_query, seccode=seccode)
|
||||||
pretime_data = []
|
pretime_data = []
|
||||||
|
|
||||||
for row in pretime_result:
|
for row in pretime_result:
|
||||||
@@ -9870,7 +9881,8 @@ def get_industry_rank(seccode):
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
# 获取多个报告期的数据
|
# 获取多个报告期的数据
|
||||||
result = engine.execute(query, seccode=seccode, limit_total=limit * 4)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, limit_total=limit * 4)
|
||||||
|
|
||||||
# 按报告期和行业级别组织数据
|
# 按报告期和行业级别组织数据
|
||||||
data_by_period = {}
|
data_by_period = {}
|
||||||
@@ -9990,7 +10002,8 @@ def get_period_comparison(seccode):
|
|||||||
ORDER BY fi.ENDDATE DESC LIMIT :periods
|
ORDER BY fi.ENDDATE DESC LIMIT :periods
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, periods=periods)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, periods=periods)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10114,7 +10127,8 @@ def get_trade_data(seccode):
|
|||||||
LIMIT :days
|
LIMIT :days
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, end_date=end_date, days=days)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, end_date=end_date, days=days)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10190,7 +10204,8 @@ def get_funding_data(seccode):
|
|||||||
ORDER BY TRADEDATE DESC LIMIT :days
|
ORDER BY TRADEDATE DESC LIMIT :days
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, days=days)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, days=days)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10248,7 +10263,8 @@ def get_bigdeal_data(seccode):
|
|||||||
ORDER BY TRADEDATE DESC, F007N LIMIT :days
|
ORDER BY TRADEDATE DESC, F007N LIMIT :days
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode, days=days)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode, days=days)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10322,7 +10338,8 @@ def get_unusual_data(seccode):
|
|||||||
ORDER BY TRADEDATE DESC, F004N LIMIT 100
|
ORDER BY TRADEDATE DESC, F004N LIMIT 100
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10400,7 +10417,8 @@ def get_pledge_data(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT 12
|
ORDER BY ENDDATE DESC LIMIT 12
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, seccode=seccode)
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, seccode=seccode)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
for row in result:
|
for row in result:
|
||||||
@@ -10457,9 +10475,12 @@ def get_market_summary(seccode):
|
|||||||
ORDER BY ENDDATE DESC LIMIT 1
|
ORDER BY ENDDATE DESC LIMIT 1
|
||||||
""")
|
""")
|
||||||
|
|
||||||
trade_result = engine.execute(trade_query, seccode=seccode).fetchone()
|
with engine.connect() as conn:
|
||||||
funding_result = engine.execute(funding_query, seccode=seccode).fetchone()
|
trade_result = conn.execute(trade_query, seccode=seccode).fetchone()
|
||||||
pledge_result = engine.execute(pledge_query, seccode=seccode).fetchone()
|
with engine.connect() as conn:
|
||||||
|
funding_result = conn.execute(funding_query, seccode=seccode).fetchone()
|
||||||
|
with engine.connect() as conn:
|
||||||
|
pledge_result = conn.execute(pledge_query, seccode=seccode).fetchone()
|
||||||
|
|
||||||
summary = {
|
summary = {
|
||||||
'stock_code': seccode,
|
'stock_code': seccode,
|
||||||
@@ -10954,7 +10975,8 @@ def get_rise_analysis(seccode):
|
|||||||
ORDER BY trade_date DESC LIMIT 100
|
ORDER BY trade_date DESC LIMIT 100
|
||||||
""")
|
""")
|
||||||
|
|
||||||
result = engine.execute(query, **params).fetchall()
|
with engine.connect() as conn:
|
||||||
|
result = conn.execute(query, **params).fetchall()
|
||||||
|
|
||||||
# 格式化数据
|
# 格式化数据
|
||||||
rise_analysis_data = []
|
rise_analysis_data = []
|
||||||
@@ -11016,7 +11038,8 @@ def get_comprehensive_analysis(company_code):
|
|||||||
WHERE company_code = :company_code
|
WHERE company_code = :company_code
|
||||||
""")
|
""")
|
||||||
|
|
||||||
qualitative_result = engine.execute(qualitative_query, company_code=company_code).fetchone()
|
with engine.connect() as conn:
|
||||||
|
qualitative_result = conn.execute(qualitative_query, company_code=company_code).fetchone()
|
||||||
|
|
||||||
# 获取业务板块分析
|
# 获取业务板块分析
|
||||||
segments_query = text("""
|
segments_query = text("""
|
||||||
@@ -11033,7 +11056,8 @@ def get_comprehensive_analysis(company_code):
|
|||||||
ORDER BY created_at DESC
|
ORDER BY created_at DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
segments_result = engine.execute(segments_query, company_code=company_code).fetchall()
|
with engine.connect() as conn:
|
||||||
|
segments_result = conn.execute(segments_query, company_code=company_code).fetchall()
|
||||||
|
|
||||||
# 获取竞争地位数据 - 最新一期
|
# 获取竞争地位数据 - 最新一期
|
||||||
competitive_query = text("""
|
competitive_query = text("""
|
||||||
@@ -11058,7 +11082,8 @@ def get_comprehensive_analysis(company_code):
|
|||||||
ORDER BY report_period DESC LIMIT 1
|
ORDER BY report_period DESC LIMIT 1
|
||||||
""")
|
""")
|
||||||
|
|
||||||
competitive_result = engine.execute(competitive_query, company_code=company_code).fetchone()
|
with engine.connect() as conn:
|
||||||
|
competitive_result = conn.execute(competitive_query, company_code=company_code).fetchone()
|
||||||
|
|
||||||
# 获取业务结构数据 - 最新一期
|
# 获取业务结构数据 - 最新一期
|
||||||
business_structure_query = text("""
|
business_structure_query = text("""
|
||||||
@@ -11085,7 +11110,8 @@ def get_comprehensive_analysis(company_code):
|
|||||||
ORDER BY revenue_ratio DESC
|
ORDER BY revenue_ratio DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
business_structure_result = engine.execute(business_structure_query, company_code=company_code).fetchall()
|
with engine.connect() as conn:
|
||||||
|
business_structure_result = conn.execute(business_structure_query, company_code=company_code).fetchall()
|
||||||
|
|
||||||
# 构建返回数据
|
# 构建返回数据
|
||||||
response_data = {
|
response_data = {
|
||||||
@@ -11222,7 +11248,8 @@ def get_value_chain_analysis(company_code):
|
|||||||
ORDER BY node_level ASC, importance_score DESC
|
ORDER BY node_level ASC, importance_score DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
nodes_result = engine.execute(nodes_query, company_code=company_code).fetchall()
|
with engine.connect() as conn:
|
||||||
|
nodes_result = conn.execute(nodes_query, company_code=company_code).fetchall()
|
||||||
|
|
||||||
# 获取产业链流向数据
|
# 获取产业链流向数据
|
||||||
flows_query = text("""
|
flows_query = text("""
|
||||||
@@ -11242,7 +11269,8 @@ def get_value_chain_analysis(company_code):
|
|||||||
ORDER BY flow_ratio DESC
|
ORDER BY flow_ratio DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
flows_result = engine.execute(flows_query, company_code=company_code).fetchall()
|
with engine.connect() as conn:
|
||||||
|
flows_result = conn.execute(flows_query, company_code=company_code).fetchall()
|
||||||
|
|
||||||
# 构建节点数据结构
|
# 构建节点数据结构
|
||||||
nodes_by_level = {}
|
nodes_by_level = {}
|
||||||
@@ -11352,7 +11380,8 @@ def get_key_factors_timeline(company_code):
|
|||||||
ORDER BY display_order ASC, created_at ASC
|
ORDER BY display_order ASC, created_at ASC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
categories_result = engine.execute(categories_query, company_code=company_code).fetchall()
|
with engine.connect() as conn:
|
||||||
|
categories_result = conn.execute(categories_query, company_code=company_code).fetchall()
|
||||||
|
|
||||||
# 获取关键因素详情
|
# 获取关键因素详情
|
||||||
factors_query = text("""
|
factors_query = text("""
|
||||||
@@ -11417,7 +11446,8 @@ def get_key_factors_timeline(company_code):
|
|||||||
ORDER BY kf.report_period DESC, kf.impact_weight DESC, kf.updated_at DESC
|
ORDER BY kf.report_period DESC, kf.impact_weight DESC, kf.updated_at DESC
|
||||||
""")
|
""")
|
||||||
|
|
||||||
factors_result = engine.execute(factors_query, **params).fetchall()
|
with engine.connect() as conn:
|
||||||
|
factors_result = conn.execute(factors_query, **params).fetchall()
|
||||||
|
|
||||||
# 获取发展时间线事件
|
# 获取发展时间线事件
|
||||||
timeline_query = text("""
|
timeline_query = text("""
|
||||||
@@ -11436,7 +11466,8 @@ def get_key_factors_timeline(company_code):
|
|||||||
ORDER BY event_date DESC LIMIT :limit
|
ORDER BY event_date DESC LIMIT :limit
|
||||||
""")
|
""")
|
||||||
|
|
||||||
timeline_result = engine.execute(timeline_query,
|
with engine.connect() as conn:
|
||||||
|
timeline_result = conn.execute(timeline_query,
|
||||||
company_code=company_code,
|
company_code=company_code,
|
||||||
limit=event_limit).fetchall()
|
limit=event_limit).fetchall()
|
||||||
|
|
||||||
|
|||||||
12556
app.py.backup
Normal file
12556
app.py.backup
Normal file
File diff suppressed because it is too large
Load Diff
12556
app.py.backup_20251114_145340
Normal file
12556
app.py.backup_20251114_145340
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user