Update main.py
This commit is contained in:
67
main.py
67
main.py
@@ -25,6 +25,7 @@ import influxdb_api
|
||||
import py_linq
|
||||
import time_api
|
||||
import simulation
|
||||
import globals
|
||||
|
||||
JUNCTION = 0
|
||||
RESERVOIR = 1
|
||||
@@ -2727,8 +2728,34 @@ def generate_openapi_json():
|
||||
# return result
|
||||
|
||||
# DingZQ, 2025-05-17
|
||||
@app.get("/runsimulationbydate/")
|
||||
async def fastapi_run_project_by_date(network: str, querydate: str):
|
||||
class Download_History_Data_Manually(BaseModel):
|
||||
"""
|
||||
download_date:样式如 datetime(2025, 5, 4)
|
||||
"""
|
||||
download_date: datetime
|
||||
|
||||
|
||||
@app.post("/download_history_data_manually/")
|
||||
async def fastapi_download_history_data_manually(data: Download_History_Data_Manually) -> None:
|
||||
item = data.dict()
|
||||
# 创建东八区时区对象
|
||||
tz = timezone(timedelta(hours=8))
|
||||
begin_time = datetime.combine(item['download_date'].date(), time.min).replace(tzinfo=tz)
|
||||
end_time = datetime.combine(item['download_date'].date(), time(23, 59, 59)).replace(tzinfo=tz)
|
||||
influxdb_api.download_history_data_manually(begin_time=begin_time, end_time=end_time)
|
||||
|
||||
class Run_Simulation_Manually_by_Date(BaseModel):
|
||||
"""
|
||||
name:数据库名称
|
||||
simulation_date:样式如 datetime(2025, 5, 4)
|
||||
"""
|
||||
name: str
|
||||
simulation_date: datetime
|
||||
|
||||
|
||||
@app.post("/run_simulation_manually_by_date/")
|
||||
async def fastapi_run_simulation_manually_by_date(data: Run_Simulation_Manually_by_Date) -> None:
|
||||
item = data.dict()
|
||||
filename = 'c:/lock.simulation'
|
||||
filename2 = 'c:/lock.simulation2'
|
||||
if os.path.exists(filename2):
|
||||
@@ -2736,17 +2763,39 @@ async def fastapi_run_project_by_date(network: str, querydate: str):
|
||||
raise HTTPException(status_code=409, detail="is in simulation")
|
||||
else:
|
||||
print('file doesnt exists')
|
||||
#os.rename(filename, filename2)
|
||||
simulation.query_corresponding_element_id_and_query_id(item['name'])
|
||||
simulation.query_corresponding_pattern_id_and_query_id(item['name'])
|
||||
region_result = simulation.query_non_realtime_region(item['name'])
|
||||
|
||||
bg_start_time, bg_end_time = time_api.parse_beijing_date_range(querydate)
|
||||
globals.source_outflow_region_id = simulation.get_source_outflow_region_id(item['name'], region_result)
|
||||
globals.realtime_region_pipe_flow_and_demand_id = simulation.query_realtime_region_pipe_flow_and_demand_id(
|
||||
item['name'], region_result)
|
||||
globals.pipe_flow_region_patterns = simulation.query_pipe_flow_region_patterns(item['name'])
|
||||
|
||||
# convert to the format of 2024-11-25T09:00:00+08:00'
|
||||
bg_start_time_str = bg_start_time.isoformat()
|
||||
print(f"bg_start_time_str: {bg_start_time_str}")
|
||||
globals.non_realtime_region_patterns = simulation.query_non_realtime_region_patterns(item['name'], region_result)
|
||||
globals.source_outflow_region_patterns, globals.realtime_region_pipe_flow_and_demand_patterns = \
|
||||
simulation.get_realtime_region_patterns(
|
||||
item['name'], globals.source_outflow_region_id, globals.realtime_region_pipe_flow_and_demand_id)
|
||||
|
||||
simulation.run_simulation(name=network, simulation_type='realtime', modify_pattern_start_time=bg_start_time_str, modify_total_duration=86400)
|
||||
base_date = item['simulation_date']
|
||||
|
||||
return True
|
||||
# 循环生成96个时间点(15分钟间隔)
|
||||
for i in range(96):
|
||||
# 计算当前时间偏移
|
||||
time_offset = timedelta(minutes=15 * i)
|
||||
|
||||
# 生成完整时间对象
|
||||
current_time = base_date + time_offset
|
||||
|
||||
# 格式化成ISO8601带时区格式
|
||||
iso_time = current_time.strftime("%Y-%m-%dT%H:%M:%S") + "+08:00"
|
||||
|
||||
## 执行函数调用
|
||||
simulation.run_simulation(
|
||||
name=item['name'],
|
||||
simulation_type="realtime",
|
||||
modify_pattern_start_time=iso_time
|
||||
)
|
||||
|
||||
############################################################
|
||||
# real_time api 37.5
|
||||
|
||||
Reference in New Issue
Block a user