refactor(backend)!: separate algorithm and data layers
Reorganize algorithm packages by business responsibility, move orchestration into services, and keep database access behind pooled repositories. Harden analysis API validation, remove unsafe legacy simulation endpoints, and add regression and architecture boundary coverage. BREAKING CHANGE: legacy algorithm module paths and obsolete simulation endpoints are removed.
This commit is contained in:
+13
-26
@@ -1,41 +1,28 @@
|
||||
import numpy as np
|
||||
from app.services.tjnetwork import (
|
||||
ChangeSet,
|
||||
get_demand,
|
||||
get_option,
|
||||
get_pattern,
|
||||
get_pump,
|
||||
get_reservoir,
|
||||
get_status,
|
||||
get_tank,
|
||||
get_time,
|
||||
read_all,
|
||||
run_project,
|
||||
set_demand,
|
||||
set_pattern,
|
||||
set_status,
|
||||
set_tank,
|
||||
set_time,
|
||||
)
|
||||
from app.infra.epanet import run_project
|
||||
from app.native.wndb.core.database import ChangeSet
|
||||
from app.native.wndb.model.demands import get_demand, set_demand
|
||||
from app.native.wndb.model.options import get_option
|
||||
from app.native.wndb.model.patterns import get_pattern, set_pattern
|
||||
from app.native.wndb.model.pumps import get_pump
|
||||
from app.native.wndb.model.reservoirs import get_reservoir
|
||||
from app.native.wndb.model.status import get_status, set_status
|
||||
from app.native.wndb.model.tanks import get_tank, set_tank
|
||||
from app.native.wndb.model.times import get_time, set_time
|
||||
|
||||
# from get_real_status import *
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
from math import modf
|
||||
import os
|
||||
import json
|
||||
import pytz
|
||||
import requests
|
||||
import time
|
||||
from typing import Optional, Tuple
|
||||
from uuid import UUID
|
||||
import typing
|
||||
import logging
|
||||
import app.services.project_info as project_info
|
||||
from app.infra.db.postgresql.scada import (
|
||||
ScadaElementMappings,
|
||||
load_realtime_element_mappings,
|
||||
)
|
||||
from app.services.time_api import parse_beijing_time, parse_clock_duration_seconds
|
||||
from app.domain.time import parse_beijing_time, parse_clock_duration_seconds
|
||||
from app.native.wndb.core.connection import project_transaction
|
||||
from app.native.wndb.core.database import refresh_materialized_views_after_commit
|
||||
from app.infra.db.timescaledb.internal_queries import (
|
||||
@@ -479,7 +466,7 @@ def run_simulation(
|
||||
cs = ChangeSet()
|
||||
cs.append(pump_pattern)
|
||||
set_pattern(name_c, cs)
|
||||
# 显式阀门控制沿用 run_simulation_ex 的处理顺序和覆盖规则。
|
||||
# 显式阀门控制优先于旧的开度参数。
|
||||
if valve_control is not None:
|
||||
_apply_valve_control(name_c, valve_control)
|
||||
# 保留原开度参数逻辑,兼容现有方案调用。
|
||||
|
||||
Reference in New Issue
Block a user