原稿留底/待验收_组133-144_20261006/第二批与新稿第一批(组 39~51)同病同源:结构完整、模板统一、上链思路一致,作为设计参考价值高;但作为可运行代码直接搬进本工程,依然会立刻踩三大类坑——底层依赖全缺、ORM 模型全缺、前缀硬冲突。
好消息:本批 C 文件已无第一批那种 raw_material: str = Column(String(128)) 的 Pydantic/SQLAlchemy 混写语法错误(12/12 通过 ast.parse,B 侧 12/12 亦通过)。
新稿 B 路由的 import 头部统一依赖 5 个模块,本工程一个都没有:
| 依赖模块 | 用途 | 本工程状态 |
|---|---|---|
db_service | SQLAlchemy Session 提供者 get_db | 缺失 |
db_model | ORM Base 与全部模型类 | 缺失 |
auth_service | JWT 鉴权 require_admin / require_user | 缺失 |
agent_global_monitor | 全局监督 Agent | 缺失 |
live_community_master_api | 模块开关 get_single_switch | 缺失 |
后端路由/routes/,FastAPI 启动即 ImportError,整个后端起不来(不是单个模块坏,是全站 8979 挂掉)。
本工程的真实地基是:JSON 文件落盘 + SHA256 上链(chain_hash/prev_hash)+ write_operate_log 操作日志 + module_switches.json 总控开关,模块各自独立,不用 SQLAlchemy、不用 JWT。
新稿 B 的 from db_model import ... 共引用 44 个 ORM 类,本工程 grep "^class XXX" 全库比对结果:44 / 44 全部无命中。
| 组 | 模块 | 引用的模型类 |
|---|---|---|
| 133 | 种子种苗资源库 | SeedItem, SeedSupplier, SeedOrder, SeedChain |
| 134 | 农机与飞防租赁 | MachineDevice, MachineProvider, MachineOrder, MachineChain |
| 135 | 中药材仓储管理 | WarehouseInfo, WarehouseStock, WarehouseInOut, WarehouseChain |
| 136 | 中药材质检报告 | QcApply, QcReport, QcChain |
| 137 | 大宗药材撮合 | BulkSupply, BulkDemand, BulkOrder, BulkTradeChain |
| 138 | 产地地图 | OriginRegion, OriginBase, OriginChain |
| 139 | 集采招标 | BidProject, BidApply, BidFile, BidChain |
| 140 | 产业资讯行情 | IndustryNews, HerbPrice, NewsChain |
| 141 | 直播溯源带货 | LiveRoom, LiveRecord, LiveOrder, LiveChain |
| 142 | 气象预警 | FarmBase, WeatherRecord, WeatherAlert, WeatherChain |
| 143 | 专家问诊 AI | ExpertInfo, ConsultSession, ConsultMsg, ConsultChain |
| 144 | 产业大数据看板 | DashMetric, DashSnapshot, DashChain |
declarative_base(),但全工程无 engine / 无 SessionLocal / 无 create_all()——即便强行 import 成功,也是空转,建不了表。
处置建议:C 文件作字段设计参考(字段命名、注释、String 长度都很规范),不入库、不 import。
本工程 44 个已挂载前缀 vs 新稿 24 个前缀,完全同名 8 个:
| 冲突前缀 | 本工程现有承载文件 | 新稿组 | 端点重叠 | 判定 |
|---|---|---|---|---|
| /api/admin/bid /api/mobile/bid | routes/admin_bid.py (第十六轮收编·组30 集采招标) | 组139 | 2+1 条 | 硬冲突 |
| /api/admin/machine /api/mobile/machine | routes/admin_machine_service.py (农机飞防服务) | 组134 | 1+0 条 | 硬冲突 |
| /api/admin/seed /api/mobile/seed | routes/admin_seed_mall.py (种子种苗商城) | 组133 | 1+0 条 | 硬冲突 |
| /api/admin/warehouse /api/mobile/warehouse | routes/admin_warehouse.py (仓储库存管理) | 组135 | 1+0 条 | 硬冲突 |
| 方法 | 完整端点 | 本工程现有 | 新稿 |
|---|---|---|---|
| GET | /api/admin/bid/project/list | 有 | 撞 |
| GET | /api/admin/bid/stat | 有 | 撞 |
| GET | /api/mobile/bid/list | 有 | 撞 |
| GET | /api/admin/machine/stat | 有 | 撞 |
| GET | /api/admin/seed/stat | 有 | 撞 |
| GET | /api/admin/warehouse/stat | 有 | 撞 |
/api/admin/bid/stat、/api/mobile/bid/list 等 实测 HTTP 200(已有真实实现)。/api/admin/qc/list、/api/admin/bulk/list 等 8 个 实测 404(本工程确无)。/api/admin|mobile/qc(质检) /api/admin|mobile/bulk(大宗撮合) /api/admin|mobile/origin(产地地图) /api/admin|mobile/news(资讯行情) /api/admin|mobile/live(直播带货) /api/admin|mobile/weather(气象预警) /api/admin|mobile/consult(专家问诊) /api/admin|mobile/dashboard(大数据看板)
注:本工程已有 /api/admin/quality、/api/admin/bulk_trade(_v2)、/api/admin/live_trade、/api/admin/plant_weather、/api/admin/expert(_chat)、/api/admin/data_screen 等同主题不同名前缀 —— 属「功能重叠」而非前缀冲突,需逐个人工判定是否值得并存。
| 检查项 | 新稿 A 页(12 个) | 本工程标准 |
|---|---|---|
| 数据接入 | 仅 console.log 拿到数据不渲染 | B2 真数据适配层(真 fetch 优先 + 种子兜底) |
| 筛选交互 | 无筛选 | window.onFilterTag 真筛选 |
| 底部导航 | 死 <div class="nav-item">,无 href | 可跳转 + 全局一致 |
| 埋点 | visitTracker → /api/track/visit(本工程无此端点) | 本工程用 write_operate_log |
| 配色 | 统一绿系(--green-deep:#365247) | 本工程已收敛配色(≤4 色) |
结论:A 页视觉模板统一、结构完整,可作视觉参考;若认可其版式,应由我按本工程 B2 标准重制(真数据 + 筛选 + 活导航),而非直接搬入。
| # | 项目 | 建议 | 理由 |
|---|---|---|---|
| 1 | 整包 36 个文件 | 不并入 | 5 依赖 + 44 模型全缺,include 即后端全挂 |
| 2 | C 12 个模型 | 作字段参考 | 字段命名/注释/String 长度规范,可指导本项目 JSON 结构设计 |
| 3 | 「我们没有的能力」 | 抽取重做 | 用本工程方式(JSON 落盘 + 上链 + B2 适配层)实现,另起文件、绝不复用同名前缀 |
| 4 | A 页视觉 | 认可即重制 | 按 B2 标准重制,保证 100% UX 一致性 |
| 5 | 8 个硬冲突前缀 | 禁 include | 若日后确需接入,必须换前缀(如 /api/admin/qc_v2) |