原稿留底/待验收_组39-51_20261006/
新稿 12 个 router_admin_*.py 的 import 段,依赖 5 个本工程并不存在的底层模块:
| 新稿 import | 本工程状态 | 后果 |
|---|---|---|
from db_service import get_db | 缺失 | 直接 ImportError,后端启动即崩 |
from db_model import ... | 缺失 | |
from auth_service import require_admin, require_user | 缺失 | |
from agent_global_monitor import global_monitor_agent | 缺失 | |
from live_community_master_api import get_single_switch | 缺失 |
并且新稿引用的 36 个 ORM 模型类(StorageWarehouse、BidProject、SeedResource、IndustryNews、ExpertInfo、LiveRoom、TraceBatch、MachineService、LaborJob、ProcessFactory、QualityTestItem、BulkGoods 等)在本工程中全部不存在。
根因判定:对方用的是 SQLAlchemy + db_service/db_model 分层 + JWT鉴权 + 全局监控Agent + 模块开关 的另一套架构;而本工程是 JSON 文件落盘 + SHA256 上链 的轻量实现。两套是不同的地基。
本工程后端已挂载 50+ 个路由前缀。新稿想挂的 /api/admin/* 与 /api/mobile/*,大半已被占用:
| 新稿想挂 | 本工程已被谁占用 | 冲突判定 |
|---|---|---|
/api/admin/bid/api/mobile/bid | r16_bid_adm / r16_bid_mob(集采招标管理) | 硬冲突 |
/api/admin/storage/api/mobile/storage | r16_stor_adm(仓储物流管理) | 硬冲突 |
/api/admin/expert/api/mobile/expert | r16_expert_adm / r16_expert_mob | 硬冲突 |
/api/admin/bulk_trade | a_bulk_adm(大宗交易-后台) | 近似冲突 |
/api/admin/machine_*(农机) | a_machine_adm(农机飞防租赁-后台) | 近似冲突 |
/api/admin/seed_*(种子) | a_seed_adm(种子种苗商城-后台) | 近似冲突 |
/api/admin/warehouse | a_wh_adm(仓储库存管理-后台) | 近似冲突 |
| 坑位 | 实测 | 影响 |
|---|---|---|
| 页面只 fetch 只读接口 | 13 页全部只有 loadXxxList() + console.log,无渲染、无写操作 | 数据到了也不显示 |
| 未接入本工程数据适配层 | 没有我们成熟的 B2「真fetch优先+种子兜底」 注入块 | 接口 404 即整页空白 |
| 标签语义未对接 | 无 onFilterTag、无 data-cat、无 __FILTER_ALL 快照冻结 | 筛选必然失效 |
| 底部导航不指向真实页面 | <div class="nav-item">首页</div> 全是死 div,无 <a href> | 点了不动 |
| 中文文件名 | 页面叫 mobile_storage_logistics.html,与本站中文名体系并存 | 需双名制 |
| 页面标题 | <title> 为「药材谷|仓储物流」等 | 命名待统一 |
db_model_process.py —— 语法错误,直接 SyntaxErrorraw_material: str = Column(String(128))
这是 Pydantic 的字段写法混进了 SQLAlchemy 的模型类。SQLAlchemy Column 不能带类型注解,这一行会让该文件连导入都做不到。
正确写法:raw_material = Column(String(128))
12 个 db_model_*.py 每个都各自 Base = declarative_base(),但全工程没有 db_service.py 提供 engine / SessionLocal,也没有任何地方调用 Base.metadata.create_all()。
结论:这 12 个模型文件目前是"写完就躺着"的装饰品——建不了表、连不了库、查不了数。
db_model_trace.py:TraceBatch.harvest_date 声明为 DateTime,但新稿 A 页面与路由都传字符串 "2026-09",类型必然不匹配。db_model_bid.py:BidProject.end_time 同为 DateTime,路由参数 end_time: str,同上。新稿整体评价:结构完整、模板统一、上链思路一致——作为"设计参考"价值很高;但作为"可运行代码"接入本工程,会立刻踩三大类坑。
| 坑类 | 数量 | 级别 | 说明 |
|---|---|---|---|
| 缺失底层依赖 | 5 个模块 + 36 个模型类 | 致命 | 后端 import 即崩 |
| 路由前缀冲突 | 3 硬冲突 + 4 近似冲突 | 致命 | 同业务两套接口并存 |
| 源码级硬伤 | 2 处(process 语法错误、trace/bid 类型不符) | 严重 | 文件无法导入 / 运行时类型错 |
| A 页不可用 | 13 页 | 中等 | 只读不渲染、无适配层、导航死键 |
我按你的规矩给出的处置建议(不自行执行,等你拍板):