组 39~51 验收对照报告

第二轮验收(对照前序成果)|坑位清单与合并建议|13 组 A/B/C 三件套
出具日期:2026-10-06 | 归档位置:原稿留底/待验收_组39-51_20261006/
13A 移动端页(归档)
12B 后端路由(归档)
5缺失底层依赖
36缺失 ORM 模型类
第一步已完成(归档):13 组 A/B/C 三件套已原样冻结到隔离目录,一个字未改。组 51 的 B/C 原稿未随粘贴给出(A 部分结尾被截断),已如实记录,不臆造补全。

一、致命的头号发现:后端"接不上电"

新稿 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/bidr16_bid_adm / r16_bid_mob(集采招标管理)硬冲突
/api/admin/storage/api/mobile/storager16_stor_adm(仓储物流管理)硬冲突
/api/admin/expert/api/mobile/expertr16_expert_adm / r16_expert_mob硬冲突
/api/admin/bulk_tradea_bulk_adm(大宗交易-后台)近似冲突
/api/admin/machine_*(农机)a_machine_adm(农机飞防租赁-后台)近似冲突
/api/admin/seed_*(种子)a_seed_adm(种子种苗商城-后台)近似冲突
/api/admin/warehousea_wh_adm(仓储库存管理-后台)近似冲突
关键结论:这 13 组里,绝大多数模块我们这边已经有了(同族模块,只是前缀和实现方式不同)。按王先生定的规矩——「已有的不动,只把没有的加进来」——那么本轮真正需要"新加"的后端模块,可能接近零。若强行挂载,会出现同一业务两套接口并存,前端不知调哪个,正是最容易踩的坑。

三、A 移动端页:全部"只读不写",且是独立单体

坑位实测影响
页面只 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> 为「药材谷|仓储物流」等命名待统一

四、C 数据库模型:两处源码级硬伤

1db_model_process.py —— 语法错误,直接 SyntaxError

raw_material: str = Column(String(128))

这是 Pydantic 的字段写法混进了 SQLAlchemy 的模型类。SQLAlchemy Column 不能带类型注解,这一行会让该文件连导入都做不到。

正确写法:raw_material = Column(String(128))

2全组空转:12 个 C 模型文件没有一个能被加载

12 个 db_model_*.py 每个都各自 Base = declarative_base(),但全工程没有 db_service.py 提供 engine / SessionLocal,也没有任何地方调用 Base.metadata.create_all()。

结论:这 12 个模型文件目前是"写完就躺着"的装饰品——建不了表、连不了库、查不了数。

另外两处需注意(非致命)

五、一句话结论与建议

新稿整体评价:结构完整、模板统一、上链思路一致——作为"设计参考"价值很高;但作为"可运行代码"接入本工程,会立刻踩三大类坑。

坑类数量级别说明
缺失底层依赖5 个模块 + 36 个模型类致命后端 import 即崩
路由前缀冲突3 硬冲突 + 4 近似冲突致命同业务两套接口并存
源码级硬伤2 处(process 语法错误、trace/bid 类型不符)严重文件无法导入 / 运行时类型错
A 页不可用13 页中等只读不渲染、无适配层、导航死键

我按你的规矩给出的处置建议(不自行执行,等你拍板):

纪律留痕:本轮严格按死命令执行——先归档(已完成)→ 再对照(已完成)→ 全绿才并(待你拍板)。全程未对现有工程做任何修改,现有 196 页、198 个后端模块零影响。