叁强鲜配项目的需求.md叁强鲜配功能点梳理.mddocs/sql/sanqiang.sqldocs/原型图/(并参考已有的 docs/原型图/原型图完整性比对报告.md)docs/sql/sanqiang.sql 中的 CREATE TABLE 表清单与 backend/app/models/models.py 的 __tablename__/ORM Model 定义是否一致。*_his ORM Model;若 ORM Model 缺失,则说明“历史表复制/更新留痕”逻辑无法落地。UI 侧:参考 docs/原型图/原型图完整性比对报告.md,其结论为 Web 与小程序页面均已覆盖核心原型页面。
代码侧(严重问题):存在影响关键业务的“数据库历史表留痕机制”缺口。
docs/sql/sanqiang.sql 中大量业务表都带 *_his 历史表,但在 backend/app/models/models.py 中仅实现了部分历史表 ORM Model(例如 sys_user_his、sys_region_his、bas_product_his、biz_deliverer_review_his、biz_delivery_warning_his 等)。
同时,多处 CRUD/业务逻辑在导入或创建历史表时引用了缺失的 Biz*His Model(例如 BizPriceListHis、BizInquiryHis、BizQuotationHis、BizDeliveryTaskHis、BizOrderHis、BizOrderAdjustHis、BizSettlementHis、BizRefundHis 等)。因此这些“更新留痕/删除留痕/历史复制”路径在当前代码状态下无法正确运行(至少会在导入阶段或历史写入阶段触发 ImportError/AttributeError)。
说明:下表的“实现情况”以“代码结构是否具备落地路径”为准;若依赖
*_hisORM Model 缺失,则标记为“未完成/风险”。
基础数据管理(区域/商品/单位码表/基础资料)
backend/app/api/admin.py、backend/app/crud/region.py、backend/app/crud/product.py、backend/app/crud/unit.py、backend/app/crud/address.py)_his Model 在 backend/app/models/models.py 中可找到(如 BasProductHis、BasProductCategoryHis、BasProductUnitHis、BasAddressHis 等)账号与登录安全管理(创建/加密存储/修改密码/重置密码/登录日志)
backend/app/api/public.py 已实现 Web 登录、Refresh/Logout/Current User 等登录链路sys_password_history_his、sys_login_log_his 等在 backend/app/models/models.py 中可找到角色与区域权限管理(角色 + 区域过滤、越权禁止)
/web/admin、/supplier、/client、/deliver 等)询价管理(运营发布询价;供应商查看;状态/进度)
backend/app/crud/inquiry.py 引入了 BizInquiryHis、BizInquiryItemHisbackend/app/models/models.py 中未找到 BizInquiryHis / BizInquiryItemHis 等历史 ORM Model供应商报价管理(供应商提交报价;运营比价/对比/审核)
backend/app/crud/quotation.py 引入了 BizQuotationHis、BizQuotationItemHisbackend/app/models/models.py 中未找到 BizQuotationHis / BizQuotationItemHis 等历史 ORM Model区域定价与价格发布管理(版本管理;发布/失效;订单冻结价格版本)
backend/app/crud/price_list.py 引入了 BizPriceListHisbackend/app/models/models.py 中未找到 BizPriceListHis(以及价格清单项历史 Model 的 _his 相关定义)客户下单与支付管理(线上微信/线下;订单列表与详情)
backend/app/crud/order.py 提供订单创建/列表/取消/状态变更等能力backend/app/crud/order.py 引入了 BizOrderHis,但 backend/app/models/models.py 未找到 BizOrderHis(订单历史/更新留痕不完整)订单审核与状态流转管理(取消审核、状态锁定/留痕、状态机约束)
BizOrderHis 等缺失)配送任务管理(运营分配配送;配送员取货/送达任务;1小时预警)
backend/app/crud/delivery.py 引入了 BizDeliveryTaskHisbackend/app/models/models.py 未找到 BizDeliveryTaskHis(同时配送任务明细历史 Model 也缺失)配送凭证与备注管理(取货/送达图片凭证 + 备注)
backend/app/api/deliver.py、backend/app/api/upload.py、backend/app/api/attachment.py)_his Model 缺失(docs/sql/sanqiang.sql 有 biz_attachment_his,但 backend/app/models/models.py 未找到 BizAttachmentHis)异常订单处理(部分送达;订单行减量/替代;重算应收;退款/冲销依据差异)
backend/app/crud/order_adjust.py 引入 BizOrderAdjustHisbackend/app/models/models.py 未找到 BizOrderAdjustHis结算与退款管理(微信退款;线下结算列表/确认;失败异常标记)
backend/app/crud/settlement.py 引入 BizSettlementHis、BizRefundHisbackend/app/models/models.py 未找到 BizSettlementHis / BizRefundHis附件与单据管理(业务单据关联附件上传与查看)
backend/app/api/attachment.py、backend/app/api/upload.py 存在附件上传与查询能力biz_attachment_his 的历史 ORM 未实现审计日志与运营追踪(账号创建与重置、价格发布、订单审核、异常调整、结算确认、退款处理等)
sys_audit_log_his 在 backend/app/models/models.py 中可找到多端应用支持(Web 管理端 + 微信小程序端)
web-admin/src/views/**、miniprogram/src/pages/** 等页面实现对比:docs/sql/sanqiang.sql 的表清单(包含 *_his) vs backend/app/models/models.py 的 __tablename__ 定义。
发现:docs/sql/sanqiang.sql 中存在以下历史表,但在 backend/app/models/models.py 中未找到对应历史 ORM Model(导致 CRUD 中的 history 写入/复制逻辑无法落地):
biz_attachment_hisbiz_delivery_task_hisbiz_delivery_task_item_hisbiz_inquiry_hisbiz_inquiry_item_hisbiz_order_adjust_hisbiz_order_hisbiz_order_item_hisbiz_price_list_hisbiz_price_list_item_hisbiz_quotation_hisbiz_quotation_item_hisbiz_refund_hisbiz_settlement_hisbiz_wechat_pay_his(注:本次对比以 ORM 是否存在为准;不代表数据库表一定“没有”,SQL 文档中这些表是存在的。)
以下 CRUD 明确导入了缺失的历史 Model(在 backend/app/models/models.py 中找不到对应 class),属于“编译/运行时高风险”:
backend/app/crud/price_list.py 导入 BizPriceListHisbackend/app/crud/inquiry.py 导入 BizInquiryHis、BizInquiryItemHisbackend/app/crud/quotation.py 导入 BizQuotationHis、BizQuotationItemHisbackend/app/crud/order.py 导入 BizOrderHisbackend/app/crud/delivery.py 导入 BizDeliveryTaskHisbackend/app/crud/order_adjust.py 使用 BizOrderAdjustHisbackend/app/crud/settlement.py 导入 BizSettlementHis、BizRefundHisdocs/原型图/原型图完整性比对报告.md 结论为 Web/小程序页面均已完成覆盖。
本次“代码层面”额外发现了关键后端历史留痕链路的 ORM 缺口,二者并不必然互斥:原型覆盖可以指“页面与接口骨架存在”,但“业务可运行的留痕/历史复制”仍可能缺失或在特定路径失败。
docs/原型图/原型图完整性比对报告.md 的比对依据中引用了 docs/sql/sanqiang_init.sql,但当前仓库中未发现该文件(仅存在 docs/sql/sanqiang.sql)。我尝试在当前环境中 import backend/app/crud/* 相关模块进行快速校验,结果存在直接失败点(属于更高优先级的问题):
app.crud.price_list 导入失败,错误信息显示:Mapper[SysUserHis(sys_user_his)] could not assemble any primary key columns for mapped table 'sys_user_his'
backend/app/models/models.py 中 SysUserHis 的主键配置不满足 SQLAlchemy 映射要求(历史表 ORM 即使类存在,也可能无法正常工作)。