diff --git a/app/algorithms/simulations.py b/app/algorithms/simulations.py index 3e28445..4dd9b5c 100644 --- a/app/algorithms/simulations.py +++ b/app/algorithms/simulations.py @@ -199,7 +199,7 @@ def valve_close_analysis( modify_pattern_start_time: str, modify_total_duration: int = 900, modify_valve_opening: dict[str, float] = None, - scheme_Name: str = None, + scheme_name: str = None, ) -> None: """ 关阀模拟 @@ -207,7 +207,7 @@ def valve_close_analysis( :param modify_pattern_start_time: 模拟开始时间,格式为'2024-11-25T09:00:00+08:00' :param modify_total_duration: 模拟总历时,秒 :param modify_valve_opening: dict中包含多个阀门开启度,str为阀门的id,float为修改后的阀门开启度 - :param scheme_Name: 方案名称 + :param scheme_name: 方案名称 :return: """ print( @@ -262,7 +262,7 @@ def valve_close_analysis( modify_total_duration=modify_total_duration, modify_valve_opening=modify_valve_opening, scheme_Type="valve_close_Analysis", - scheme_Name=scheme_Name, + scheme_name=scheme_name, ) # step 3. restore the base model # for valve in valves: @@ -284,7 +284,7 @@ def flushing_analysis( modify_valve_opening: dict[str, float] = None, drainage_node_ID: str = None, flushing_flow: float = 0, - scheme_Name: str = None, + scheme_name: str = None, ) -> None: """ 管道冲洗模拟 @@ -294,9 +294,15 @@ def flushing_analysis( :param modify_valve_opening: dict中包含多个阀门开启度,str为阀门的id,float为修改后的阀门开启度 :param drainage_node_ID: 冲洗排放口所在节点ID :param flushing_flow: 冲洗水量,传入参数单位为m3/h - :param scheme_Name: 方案名称 + :param scheme_name: 方案名称 :return: """ + scheme_detail: dict = { + "duration": modify_total_duration, + "valve_opening": modify_valve_opening, + "drainage_node_ID": drainage_node_ID, + "flushing_flow": flushing_flow, + } print( datetime.now(pytz.timezone("Asia/Shanghai")).strftime("%Y-%m-%d %H:%M:%S") + " -- Start Analysis." @@ -387,13 +393,22 @@ def flushing_analysis( modify_total_duration=modify_total_duration, modify_valve_opening=modify_valve_opening, scheme_Type="flushing_Analysis", - scheme_Name=scheme_Name, + scheme_name=scheme_name, ) # step 4. restore the base model if is_project_open(new_name): close_project(new_name) delete_project(new_name) # return result + # 存储方案信息到 PG 数据库 + store_scheme_info( + name=name, + scheme_name=scheme_name, + scheme_type="flushing_analysis", + username="admin", + scheme_start_time=modify_pattern_start_time, + scheme_detail=scheme_detail, + ) ############################################################ @@ -415,10 +430,10 @@ def contaminant_simulation( :param modify_pattern_start_time: 模拟开始时间,格式为'2024-11-25T09:00:00+08:00' :param modify_total_duration: 模拟总历时,秒 :param source: 污染源所在的节点ID - :param concentration: 污染源位置处的浓度,单位mg/L,即默认的污染模拟setting为concentration(应改为 Set point booster) + :param concentration: 污染源位置处的浓度,单位mg/L。默认的污染模拟setting为SOURCE_TYPE_CONCEN(改为SOURCE_TYPE_SETPOINT) :param source_pattern: 污染源的时间变化模式,若不传入则默认以恒定浓度持续模拟,时间长度等于duration; 若传入,则格式为{1.0,0.5,1.1}等系数列表pattern_step模拟等于模型的hydraulic time step - :param scheme_Name: 方案名称 + :param scheme_name: 方案名称 :return: """ scheme_detail: dict = { @@ -490,7 +505,7 @@ def contaminant_simulation( cs_source = ChangeSet() source_schema = { "node": source, - "s_type": SOURCE_TYPE_CONCEN, + "s_type": SOURCE_TYPE_SETPOINT, "strength": concentration, "pattern": pt["id"], } @@ -634,7 +649,7 @@ def pressure_regulation( modify_tank_initial_level: dict[str, float] = None, modify_fixed_pump_pattern: dict[str, list] = None, modify_variable_pump_pattern: dict[str, list] = None, - scheme_Name: str = None, + scheme_name: str = None, ) -> None: """ 区域调压模拟,用来模拟未来15分钟内,开关水泵对区域压力的影响 @@ -644,7 +659,7 @@ def pressure_regulation( :param modify_tank_initial_level: dict中包含多个水塔,str为水塔的id,float为修改后的initial_level :param modify_fixed_pump_pattern: dict中包含多个水泵模式,str为工频水泵的id,list为修改后的pattern :param modify_variable_pump_pattern: dict中包含多个水泵模式,str为变频水泵的id,list为修改后的pattern - :param scheme_Name: 模拟方案名称 + :param scheme_name: 模拟方案名称 :return: """ print( @@ -697,7 +712,7 @@ def pressure_regulation( modify_fixed_pump_pattern=modify_fixed_pump_pattern, modify_variable_pump_pattern=modify_variable_pump_pattern, scheme_Type="pressure_regulation", - scheme_Name=scheme_Name, + scheme_name=scheme_name, ) if is_project_open(new_name): close_project(new_name)