Skip to content

42 v1 development task packages

技术老胡 edited this page Jul 30, 2026 · 1 revision

SmartFarm V1 开发任务包

状态:开发启动前排期基线,尚未授权编写业务代码

本文档把 SmartFarm V1 已冻结的业务、页面、接口、事件、状态、数据库和文件蓝图转换为可直接排期、领取、评审和验收的工作包。任务卡是实施入口,不替代专题契约;发生冲突时按本文“输入与优先级”回到来源文档处理,不在开发过程中临时发明规则。

一、执行边界

  1. 26-pre-development-master-checklist.mdG1-G5 全部通过、完成开发启动评审并冻结五个项目基线提交后,实施任务才可从“计划中”转为“可领取”。
  2. 在开发启动评审前,只允许继续评审文档、Figma、测试方案和发布方案;不得依据本文提前修改业务代码、数据库业务数据或演示配置。
  3. 首批开发顺序固定为“契约与技术骨架 → migration → 支撑层 → CRMEB 交易适配 → 垂直业务切片 → 四端联调 → 发布演练”。
  4. 所有数据库变更只通过版本化 migration;所有状态、金额、库存、权益和余额变化只通过领域命令;禁止手工 SQL 修业务事实。
  5. 一张任务卡只有一个直接负责人。跨端工作用相互依赖的任务卡协作,不用多人共同拥有一张无法验收的大卡。
  6. 本文中的文件均为计划文件。N/M/R 不表示当前已经存在或已经完成。

二、输入与优先级

每张任务卡必须至少读取其“输入文档”栏。全局事实优先级如下:

  1. 12-v1-business-decisions-and-glossary.md:业务规则和术语。
  2. 24-g3-g4-decision-register.md:技术与 UI 决策状态。
  3. 31-v1-write-operation-contract-registry.md:写操作、事务、锁、幂等和返回。
  4. 33-v1-state-exception-transaction-matrix.md:状态迁移、异常和反向处理。
  5. 34-v1-database-field-dictionary.md:物理表、字段、索引和迁移分组。
  6. 37-v1-api-field-contract-registry.md:请求/响应 DTO 和禁止字段。
  7. 19-v1-api-contract-draft.md32-v1-event-job-operation-registry.md:路由、事件、Job 和调度。
  8. 30-v1-p0-page-matrix.md35-v1-page-api-file-trace.md:页面字段、动作、API 和代码落点。
  9. 21-v1-code-change-blueprint.md:文件边界与 CRMEB 扩展点。
  10. 05-v1-scope-prd.md18-v1-page-and-prototype-spec.md28-v1-requirement-traceability-matrix.md29-g3-technical-spike-report.md36-v1-er-diagrams.md38-41 四类使用手册:范围、原型、追踪、源码证据、关系和真实操作口径。

同一规则发生冲突时,任务负责人暂停该任务,把冲突提交给产品负责人和技术负责人;修正权威来源后再继续。禁止只改当前实现或只在 PR 评论中决定。

三、任务卡约定

1. 路径与变更标记

标记 含义
N 新建文件、目录、测试、Figma Frame/组件或部署配置
M 修改现有文件;必须保留普通 CRMEB 行为并列出回归
R 直接复用或仅参考;不得复制后形成第二套基础能力

路径均相对于工作区根目录:

代号 项目目录
BE smartfarm/
ADM smartfarm_admin/
MER smartfarm_mer/
USR smartfarm_user/
SVC smartfarm_service/
QA scripts/qa/

文件清单中的 {A,B,C}.php 表示精确的三个文件,不是开放式通配符;<Entity> 仅在同一行同时给出完整实体集合时使用。任务执行前把花括号展开到领取单,遗漏任一展开文件视为范围缺失。

为避免重复列出数百个持久化文件,本文使用以下两个严格记法:

  • P3(cloud; {CloudSupply,CloudBatch}) 精确展开为 smartfarm/app/common/model/farm/cloud/{CloudSupply,CloudBatch}.phpsmartfarm/app/common/dao/farm/cloud/{CloudSupplyDao,CloudBatchDao}.phpsmartfarm/app/common/repositories/farm/cloud/{CloudSupplyRepository,CloudBatchRepository}.php
  • TJ({CloudActivityStatus,CloudUnpaidRelease}) 精确展开为 smartfarm/crmeb/listens/farm/timer/{CloudActivityStatusListen,CloudUnpaidReleaseListen}.phpsmartfarm/crmeb/jobs/farm/{CloudActivityStatusJob,CloudUnpaidReleaseJob}.php。监听器与 Job 名不一致时,任务卡必须单独列出,不使用 TJ

路径继承规则同样固定:后端卡中以 app/crmeb/route/config/install/ 开头的路径位于 smartfarm/;平台、商户、服务卡中的 src/ 分别位于 smartfarm_admin/smartfarm_mer/smartfarm_service/;用户卡中的 api/pages/components/ 位于 smartfarm_user/。任务导入系统时应展开为完整工作区相对路径。

2. 工期口径

  • 1 PD 为一名熟悉对应技术栈的工程师一个完整工作日,不含等待外部评审时间。
  • 建议工期是“实现 + 自测 + 修订 + 代码评审”的范围,不含任务前置未完成的等待。
  • 首次参与 CRMEB/ThinkPHP、Vue 2 或 uni-app 的成员,估算乘以 1.3~1.6
  • 高风险迁移、支付、退款、库存、账本和权限任务不得用加班压缩双人复核。

3. 状态

计划中 → 待澄清 → Ready → In Progress → Review → Verify → Done
                     ↘ Blocked
  • Ready:Definition of Ready 全部满足。
  • Review:实现和负责人自测完成,等待代码/设计评审。
  • Verify:已合并到集成分支,等待 QA、迁移或跨端验证。
  • Done:Definition of Done 全部满足;“代码写完”不等于 Done。
  • 每人同时最多一张 In Progress 主任务;评审工作不计入该上限。

四、阶段与里程碑

里程碑 目标 主要任务 进入条件 退出证据
M0 设计与启动冻结 完成人工低保真评审、高保真和开发基线 DES-*,G1-G6 评审 108 页面、15 Flow 已有低保真 G1-G6 通过、基线 SHA、Figma 交接和 Ready 队列
M1 契约与技术骨架 建立常量、错误、路由壳、测试和迁移骨架 BE-FND-001~004QA-FND-001OPS-001 M0 契约检查、全新库空迁移、四队列空跑、无业务页面
M2 CRMEB 交易适配 先解决订单组策略、支付、取消、退款和正式入账边界 BE-CRM-001~002QA-CRM-001 M1 普通/云仓首次/云仓二次三类策略回归通过
M3 云仓供货与活动切片 从商品农业资料到验收、活动发布和库存闭合 BE-CW-001~003ADM-CW-001MER-CW-001QA-CW-001 M2 商户供货 → 平台验收 → 活动发布 → 未抢库存闭合演示
M4 云仓首次购买与去向切片 完成抢购、付款后稍后选择、邮寄、自提、代销 BE-CW-004~005ADM-CW-002USR-CW-001~002 M3 付款后继续抢购、待选找回、三种去向和超时竞态演示
M5 云仓二次销售与财务切片 完成真实二次销售、三种结算、商户货款和回购 BE-CW-006~008ADM-CW-003MER-CW-002USR-CW-003QA-CW-002 M4 25/50/75/100 节点、退款冲减、日结单、入账和到期回购闭环
M6 农业资产与权益切片 完成主数据、租地/认养套餐、下单和真实分配 BE-AG-001~002ADM-AG-001~002USR-AG-001QA-AG-001 前半 M2 用户购买 → 5 分钟预留 → 真实地块/资产/份额确认
M7 生产、产出与履约切片 完成任务、现场记录、产出、邮寄、异常和溯源 BE-AG-003~005ADM-AG-003USR-AG-002SVC-*QA-AG-001 M6 生产任务 → 产出验收 → 权益分配 → 邮寄 → 溯源/异常闭环
M8 全端集成与非功能验证 108 页面、15 Flow、权限、并发、故障和普通商城回归 QA-E2E-001QA-REL-001OPS-002 M5M7 UAT、性能、安全、可观测性、故障恢复和构建矩阵通过
M9 发布演练与交接 在全新库和升级副本完成可回退发布 OPS-003 M8 发布记录、回退边界、监控值班、四类教程和签字

M3~M5M6~M7 可在 M2 后由两支后端小组并行,但共享的 CRMEB 交易适配、Outbox、权限、资金入账和测试环境仍只能有一套。

五、依赖图与关键路径

flowchart LR
    M0["M0 设计与 G6 启动冻结"] --> FND["BE-FND-001~004<br/>QA-FND-001 / OPS-001"]
    FND --> CRM["BE-CRM-001~002<br/>QA-CRM-001"]
    CRM --> CWS["云仓供货与活动<br/>BE-CW-001~003"]
    CWS --> CWO["首次购买与去向<br/>BE-CW-004~005"]
    CWO --> CWR["二次销售<br/>BE-CW-006"]
    CWR --> CWF["结算/商户货款/回购<br/>BE-CW-007~008"]
    CRM --> AGA["农业资产与权益<br/>BE-AG-001~002"]
    AGA --> AGP["生产/产出/履约<br/>BE-AG-003~004"]
    AGP --> AGT["异常/溯源<br/>BE-AG-005"]
    CWS --> FECW["平台/商户/用户云仓前端"]
    CWO --> FECW
    CWF --> FECW
    AGA --> FEAG["平台/用户农业前端"]
    AGP --> FESVC["服务/现场端"]
    AGT --> FEAG
    CWF --> INT["M8 全端集成"]
    AGT --> INT
    FECW --> INT
    FEAG --> INT
    FESVC --> INT
    INT --> REL["QA-REL-001 / OPS-003"]
Loading

关键路径

主关键路径固定为:

M0
→ BE-FND-001
→ BE-FND-002
→ BE-FND-003
→ BE-CRM-001
→ BE-CRM-002
→ BE-CW-001
→ BE-CW-002
→ BE-CW-003
→ BE-CW-004
→ BE-CW-005
→ BE-CW-006
→ BE-CW-007/008
→ QA-CW-002
→ QA-E2E-001
→ QA-REL-001
→ OPS-003

次关键路径为 BE-FND-003 → BE-CRM-002 → BE-AG-001~005 → QA-AG-001 → QA-E2E-001。任何关键路径任务延期,项目经理必须在当日重算里程碑;不得通过跳过测试、迁移验证或双人评审隐藏延期。

前端可以在对应 API DTO、错误码、Figma 高保真和 Mock 固定后并行启动,不必等待后端全部完成;但后端集成和契约快照未通过前,前端任务不能进入 Done。

六、团队、排期与领取方式

1. 建议团队

角色 建议人数 说明
产品负责人/业务验收 1 冻结规则、验收主流程,不兼任最终财务代码审核
技术负责人/架构 1 负责交易适配、数据和跨端契约
后端 4~5 支撑/CRMEB、云仓、农业至少三条明确责任线
平台/商户前端 2 共用 CRMEB 管理端风格但分仓库交付
uni-app 用户端 1~2 H5/小程序双端回归
服务/现场端前端 1 Vue 2 桌面与移动布局、设备测试
QA 2~3 契约/接口/并发与 E2E 分工
UI/UX 1 Figma、组件状态和交付标注
运维/DBA 0.5~1 队列、迁移、监控和发布演练

少于 8 人时不要同时打开云仓和农业两条主线;先完成一个可演示闭环,再复用基础设施进入下一条。

2. 工作量总览

分包 任务数 建议工作量
设计 4 26~40 PD
后端 19 251~369 PD
平台端 7 84~125 PD
商户端 3 26~39 PD
用户端 6 67~100 PD
服务/现场端 4 54~80 PD
测试 7 113~168 PD
运维 3 28~42 PD
合计 53 649~963 PD

推荐 12~14 人按双周迭代排期,预计 30~42 周;首次组建团队建议保留 20%~30% 学习、返工和环境缓冲,按 36~48 周管理承诺。该区间在任务完成拆分和团队能力评估后滚动修正,不作为销售承诺。

3. 无团队经验时的固定节奏

节奏 时长 必须产物
双周迭代计划 每两周首日上午 90 分钟 Ready 任务、负责人、评审人、容量和演示目标
每日站会 15 分钟 昨日证据、今日动作、阻塞;不现场讨论方案
契约同步 每周二/四各 30 分钟 API/表/事件/页面差异和冻结结果
中期集成 每周三 合并到集成环境,提前发现跨仓库问题
PR 评审时段 每工作日固定两次 评审不超过 1 个工作日积压
周演示 每周五 45 分钟 使用真实角色和真实状态演示垂直切片
迭代评审/复盘 双周末 90 分钟 验收结果、缺陷、估算偏差和下一轮改进

任务领取步骤:

  1. 领取人逐项检查 DoR,在任务系统粘贴本卡链接和输入版本。
  2. 指定一名代码/设计评审人和一名 QA 验收人。
  3. 记录涉及五个仓库的基线 SHA、Figma 节点和 Mock/环境。
  4. 创建一个主任务分支;跨仓库工作分别创建同 ID 分支并互相链接。
  5. 每天只更新状态、证据和阻塞,不在聊天中改变业务规则。

七、Definition of Ready

任务进入 Ready 前必须全部满足:

  • 任务 ID、目标、唯一负责人、评审人和 QA 已确定。
  • 前置任务均 Done,或提供经技术负责人批准的稳定 Mock。
  • 输入文档版本、业务决策、页面编号和 Figma 节点已固定。
  • API 路由、DTO、错误码、幂等键和版本字段已固定。
  • 写任务的事务写集、锁顺序、状态迁移、事件和补偿已固定。
  • 表、列、索引、唯一键和 migration 分组已固定。
  • 文件 N/M/R 清单已展开,不存在“开发时再找文件”。
  • 权限码、平台/商户/用户/服务数据范围和 PII 裁剪已固定。
  • 正常、空、加载、错误、无权限、并发和关键异常验收已写出。
  • 测试数据、依赖服务、环境变量和第三方降级路径可用。
  • 估算不超过一个双周迭代;超过则按可独立验收结果继续拆卡。

八、Definition of Done

任务只有同时满足以下条件才可 Done:

  • 实际改动与 N/M/R 清单一致;新增文件、路由、菜单、权限和配置没有孤儿。
  • Controller 只编排 DTO;状态、金额、库存和分配由 Service/Repository 完成。
  • migration 在全新库和升级副本执行 verify_before → up → verify_after;适用时验证 down 边界。
  • 单元、Repository、API、契约、事件/Job、并发和回归测试按风险完成。
  • 幂等重放、版本冲突、权限越界、冻结状态和失败补偿有稳定结果。
  • 普通 CRMEB 商品、订单、支付、退款、财务、营销和客服回归无退化。
  • 前端完成加载、空、错误、无权限、冲突、长文案和移动安全区状态。
  • 日志、指标、告警、审计、Outbox 和操作号能定位失败。
  • 代码评审通过;迁移/交易/库存/财务/权限任务获得两名合格评审人批准。
  • 集成环境演示 Given/When/Then 验收,截图或自动化报告已链接。
  • API/表/事件/页面发生合法变化时已先更新权威契约并重新评审。
  • 没有账号、密码、Token、第三方 Key、用户完整隐私或生产数据进入代码、日志和测试附件。

九、分支、提交与评审规则

  1. 五个独立仓库均保护 main/master 和发布分支,不允许直接 push。
  2. 建议集成分支统一为 develop/smartfarm-v1;任务分支为 feature/<TASK-ID>-short-name,修复为 fix/<TASK-ID>-short-name,发布为 release/smartfarm-v1-rc.N
  3. 同一任务跨仓库时使用相同任务 ID,例如五个仓库都使用 feature/USR-CW-001-cloud-order,PR 相互链接。
  4. Commit 使用 <TASK-ID>: 动词 + 结果;migration、生成锁文件和格式化改动单独提交。
  5. 一个 PR 只交付一个可验收目标。建议生产代码不超过 500 行净变更;超出时按 migration、持久化、领域服务、接口或页面状态拆分。
  6. 任何 PR 不得夹带无关重构、依赖升级、格式化全仓或用户已有改动。
  7. 普通任务至少一名同方向评审人;CRMEB 核心适配、migration、余额、账本、回购、退款、权限范围至少两名评审人,其中一名为技术负责人。
  8. 提交者不能批准自己的高风险审核逻辑;活动编辑/发布、账本审核/执行、回购审核/执行的职责分离也要体现在测试账号中。
  9. CI 必须先通过静态检查、契约检查、单元/接口测试、前端构建和 migration 空库验证,再允许合并。
  10. 合并后由 QA 在集成环境 Verify;失败回到原任务,不另开一张掩盖未完成工作的“联调卡”。
  11. 业务规则变更先走变更单,更新 12/24/31/33/34/37 和受影响任务,再改代码。已完成任务重新评估,不静默扩大范围。

十、设计任务包

DES-001 四端视觉基线与正式参考补齐

  • 目标:用当前 CRMEB 真实页面固定平台、商户、用户 uni-app、服务/现场端的字体、间距、表格、表单、导航、状态和移动安全区,不重做整套视觉。
  • 前置:无;属于 M0
  • 输入文档182325263038-41
  • 文件/节点M Figma 正式文件 01 References02 Components & TokensR smartfarm_admin/src/smartfarm_mer/src/smartfarm_user/components/smartfarm_service/src/ 的真实登录态页面和现有组件。
  • 接口/表/事件/权限:只读检查;不得写数据库、接口或演示配置;截图必须标页面编号、版本、时间和脱敏状态。
  • 验收:四端至少各 3 个代表页面;桌面列表/详情/编辑、用户 H5/小程序、服务桌面/移动均有标注;明确 R/E/N 组件结论。
  • 测试:Figma 节点重名、尺寸、溢出、敏感信息自动检查;人工对照真实页面。
  • 风险:使用未登录空壳或社区模板导致风格漂移;截图泄露个人信息。
  • 角色/工期:UI/UX 主责,产品和各端前端评审,3~5 PD

DES-002 共享组件、高保真状态与交付标注

  • 目标:建立不脱离 CRMEB 的共享组件变量、状态矩阵和开发标注,覆盖正常、加载、空、错误、无权限、版本冲突、冻结和长文案。
  • 前置DES-001
  • 输入文档1830333537
  • 文件/节点M Figma 02 Components & TokensN HF/Desktop ListHF/Desktop DetailHF/Desktop FormHF/Mobile PageHF/State Panel 组件集;R 低保真四类母版。
  • 接口/表/事件/权限:绑定 statusallowed_actionswarningsversion 和字段来源;不把视觉文案变成新状态码。
  • 验收:颜色、字号、间距、表格密度、按钮层级、金额/数量、确认弹窗和状态标签均有 token;组件注明对应现有组件或新文件。
  • 测试:375/390/430 移动宽度与 1366/1440/1920 桌面宽度;最长编号、金额、中文状态和错误文案不溢出。
  • 风险:组件过度抽象、卡片套卡片、用户端与后台端强行同一布局。
  • 角色/工期:UI/UX 主责,各端前端评审,5~8 PD

DES-CW-001 云仓全链路高保真与交互交接

  • 目标:完成供货、活动、抢购、付款后继续抢购、稍后选去向、二次销售、结算和回购的跨端高保真。
  • 前置DES-002BE-FND-001 契约草案可供标注。
  • 输入文档0518-2130-3537-40
  • 文件/节点M Figma 中 ADM-CW-*ADM-FN-*MER-CW-*MER-FN-*USR-CW-* 共 44 个页面 Frame 及相应 FLOW-*N 发布预检、迟到支付退款、部分核销、批次冻结、跨节点和回购审核子 Frame。
  • 接口/表/事件/权限:标注 farm/cloud/*farm_financial_posting、关键事件和编辑/发布、审核/执行分权;金额和进度只读。
  • 验收:每个 Frame 对应 30/35 页面编号;三种结算模式和 25/50/75/100 节点能被用户理解;一条明细只选一种去向。
  • 测试:Prototype 从商户供货到用户回购闭环;断网、库存不足、版本冲突、超时和退款回跳均有返回路径。
  • 风险:把云仓误画成普通秒杀、商户代销或平台手工进度。
  • 角色/工期:UI/UX 主责,产品、云仓后端、三端前端和 QA 评审,8~12 PD

DES-AG-001 农业与现场全链路高保真及交接

  • 目标:完成农场资产、租地、认养、真实分配、生产、产出、邮寄、异常、溯源和现场作业高保真。
  • 前置DES-002BE-FND-001 契约草案可供标注。
  • 输入文档0518-2130-37384041
  • 文件/节点M Figma 中 ADM-AG/LA/AD/PD/TR-*USR-AG/LA/AD/PD/TR-*SVC-* 共 64 个页面 Frame 及相应 FLOW-*N 5 分钟预留、份额容量、离线草稿、异常确认、分包邮寄和地图降级子 Frame。
  • 接口/表/事件/权限:标注 farm/agriculture|land|adoption|production|output|fulfillment|exception|trace/*、职责权限码和对象范围;租地/认养产出只邮寄。
  • 验收:真实地块/资产/份额、权益、任务、产出、包裹和溯源关系可追;服务桌面与移动作业不混成同一布局。
  • 测试:H5/小程序和移动浏览器尺寸;拒绝定位、拒绝相机、离线、范围变化、数量方程失败和异常超时均有降级。
  • 风险:把示意图当 GIS 面积、把候选当正式占用、把现场建议画成最终审批。
  • 角色/工期:UI/UX 主责,农业产品、平台/用户/服务端前端和 QA 评审,10~15 PD

十一、后端任务包

BE-FND-001 契约、常量、路由与错误骨架

  • 目标:在不实现业务写入的前提下建立统一路由、DTO 验证边界、稳定状态/错误常量和四端异步操作详情壳。
  • 前置M0、G6 通过。
  • 输入文档19-2131-333537
  • 文件N smartfarm/route/admin/{farm_cloud,farm_agriculture}.phproute/merchant/farm_cloud.phproute/api/farm.phpM route/service.phpN crmeb/services/farm/constants/{CloudActivityStatus,CloudBatchStatus,CloudDisposition,CloudInventoryPool,CloudSettlementMode,CloudLedgerStatus,FarmOrderStatus,ProductionStatus,TracePublishStatus,FarmCoordinateSystem,FarmErrorCode}.phpN app/controller/admin/farm/support/FarmOperation.phpapp/controller/merchant/farm/support/FarmOperation.phpapp/controller/api/farm/support/FarmOperation.phpapp/controller/service/farm/FarmOperation.phpR 现有 route/Validate/response 基类。
  • 接口/表/事件/权限:注册 19/37 路由名、CommandMeta/VersionedCommand/ReasonCommand;仅接 eb_farm_async_operation 的后续接口,不提前建表;每个写路由预留唯一权限 route name。
  • 验收:路由静态扫描无冲突;公开、登录、平台、商户和服务中间件分组正确;所有未实现写接口明确返回开发期禁用错误,不返回假成功。
  • 测试:路由清单与 19/35/37 双向比对;DTO 禁止字段和错误码快照;普通路由回归。
  • 风险:先写空 Controller 后被误当完成;路由顺序吞掉服务端静态路由。
  • 角色/工期:后端技术负责人主责,QA/安全评审,6~9 PD

BE-FND-002 migration、索引与验证基线

  • 目标:按 M01~M12 建立 90 张农业表、CRMEB 必要兼容扩容、索引、菜单和配置的可验证升级包。
  • 前置BE-FND-001;数据库字段字典冻结。
  • 输入文档212931-37
  • 文件N smartfarm/install/upgrade/farm_v1/{000_preflight_normalize.sql,001_schema_up.sql,001_schema_down.sql,002_indexes_up.sql,002_indexes_down.sql,003_menu_seed.sql,004_config_seed.sql,verify_before.sql,verify_after.sql,README.md}N smartfarm/install/upgrade/farm_v1/process/supervisor-farm.conf.exampleM smartfarm/config/queue.php.example.envDockerfileN smartfarm/config/farm.phpM config/swoole.php 仅在部署评审选择 Swoole task 消费时执行;R 现有安装 SQL 和 system_menu 结构。
  • 接口/表/事件/权限:创建 34 的 90 张 eb_farm_* 表;扩容 eb_user/eb_user_bill/eb_merchant/eb_financial_record 金额列;规范化并建立 uk_service_account;种子覆盖 20 权限和 004 配置键。
  • 验收:全新库和脱敏升级副本均通过 preflight/up/verify;非空重复客服账号阻断而非自动合并;有业务事实后的 down 明确拒绝。
  • 测试:表/列/索引集合与 34/36 自动比对;每个唯一键、扫描索引 EXPLAIN;菜单 route name 与路由静态比对;up/down/up 空库演练。
  • 风险:无正式迁移框架、长表锁、金额回缩、客服账号冲突、菜单重复。
  • 角色/工期:资深后端主责,DBA 和技术负责人双审,12~18 PD

BE-FND-003 支撑持久化与可靠性服务

  • 目标:先落幂等、Outbox、消费日志、任务运行、审计、状态迁移、异步操作、范围、证据和正式入账的通用能力。
  • 前置BE-FND-002
  • 输入文档202131-37
  • 文件N P3(support; {FarmOrderBinding,FarmIdempotencyRecord,FarmDomainOutbox,FarmEventConsumeLog,FarmJobRun,FarmNotificationLog,FarmAuditLog,FarmStateTransition,FarmAsyncOperation,FarmAdminScope,FarmServiceProfile,FarmServiceScope,FarmEvidenceAttachment,FarmFinancialPosting})N crmeb/services/farm/support/{FarmIdempotencyService,FarmOutboxService,FarmAuditService,FarmNotificationService,FarmMoneyService,FarmStateMachineService,FarmAsyncOperationService,FarmAdminScopeService,FarmEvidenceAttachmentService}.phpR UploadService、Attachment Repository 和现有事务工具。
  • 接口/表/事件/权限:表为 eb_farm_order_bindingidempotency_recorddomain_outboxevent_consume_logjob_runnotification_logaudit_logstate_transitionasync_operationadmin_scopeservice_profile/scopeevidence_attachmentfinancial_posting;事件 farm.admin.scope.changed;权限 FARM_ADMIN_SCOPE_SAVEfarm.evidence.upload
  • 验收:HTTP 幂等同请求同响应、异请求冲突;Outbox 与业务事务同成败;范围越界对外 not found;附件从临时到原子绑定;状态迁移不可绕过。
  • 测试:唯一键重放、租约抢占、两消费者并发、范围全量替换版本冲突、附件过期/越界、金额与最大余数算例。
  • 风险:错误的“通用 Repository”泄漏租户;Model 事件隐式写余额;Outbox 提交前投递。
  • 角色/工期:资深后端主责,安全/QA/技术负责人评审,12~18 PD

BE-FND-004 事件、队列、定时与通知骨架

  • 目标:建立四队列、Outbox 分发、Timer Listen → Job → Service 三层骨架和稳定运行记录,不在监听器中直接写领域状态。
  • 前置BE-FND-003OPS-001
  • 输入文档20213234
  • 文件M smartfarm/app/event.phpN crmeb/listens/farm/domain/{CloudActivityDomainListen,CloudSupplyDomainListen,CloudPrimaryOrderDomainListen,CloudResaleDomainListen,CloudBatchDomainListen,FarmFinanceDomainListen,FarmRightsDomainListen,FarmProductionDomainListen,FarmFulfillmentDomainListen,FarmExceptionDomainListen,FarmTraceDomainListen,FarmAuditProjectionListen}.phpN crmeb/jobs/farm/{PublishFarmDomainEventJob,SendFarmNotificationJob,FarmFailedJobAlertJob}.phpN crmeb/listens/farm/timer/{FarmOutboxDispatchListen,FarmFailedJobAlertListen}.phpR 现有 TimerServiceJobInterface 和队列连接。
  • 接口/表/事件/权限:读取 eb_farm_domain_outbox/job_run/event_consume_log/notification_log;初始事件覆盖 32 的 envelope;队列为 farm-critical/business/notification/maintenance;无用户接口。
  • 验收:同一 event_id + consumer_name 只产生一个结果;失败保留游标、错误、下次重试和告警;监听器只抢占与投递。
  • 测试:队列不可用、worker 崩溃、租约过期、重复投递、乱序、未知事件版本、通知去重和死任务告警。
  • 风险:Timer 批量执行领域逻辑、异常被吞、所有任务挤入默认队列。
  • 角色/工期:后端基础设施工程师主责,运维和 QA 评审,10~15 PD

BE-CRM-001 订单绑定、订单组策略与创建适配

  • 目标:把 CRMEB 订单安全地声明为 normal/cloud_primary/cloud_resale/land/adoption,保证同一订单组单一财务策略并在创建事务内绑定。
  • 前置BE-FND-003
  • 输入文档19-2129313437
  • 文件N smartfarm/crmeb/services/farm/support/FarmOrderPolicyResolver.phpM app/common/repositories/store/order/{StoreOrderCreateRepository,MerchantOrderCreateRepository,PointsOrderCreateRepository}.phpN crmeb/services/farm/cloud/{CloudSourceSkuMatcher,CloudResaleAllocationService}.php 的接口骨架;R StoreOrderProductRepository.php、Product/ProductAttrValue Repository。
  • 接口/表/事件/权限:操作 CRM_ORDER_GROUP_POLICY_CHECKCW_CART_FINANCE_POLICY_MIXED;写 eb_farm_order_binding,二次订单预留后续写 cloud_resale_allocationcloud_only 禁止商户代客下单和积分兑换。
  • 验收:混合 finance policy 在确认/创建阶段拒绝;普通 SKU 不增加全表查询;映射 SKU 创建失败时普通订单和 FEFO 预留一起回滚。
  • 测试:普通单、多商户普通单、云仓首次、二次 SKU、混合购物车、重复创建、批量插入明细回查和 SQL 基线。
  • 风险:只按子订单校验导致组级副作用串线;把 value_id 当稳定业务主键。
  • 角色/工期:技术负责人主责,订单域后端和 QA 双审,10~15 PD

BE-CRM-002 支付、取消、退款与正式账户适配

  • 目标:在 CRMEB 核心事务发生错误普通副作用前完成策略分流,并提供用户/商户正式入账和冲正服务。
  • 前置BE-CRM-001BE-FND-004
  • 输入文档20212931-3437
  • 文件N crmeb/services/farm/support/{FarmOrderPaymentAdapter,FarmOrderCancelAdapter,FarmOrderRefundAdapter,FarmUserBalancePostingService,FarmMerchantBalancePostingService,FarmFinancialReversalService}.phpM app/common/repositories/store/order/{StoreOrderRepository,StoreRefundOrderRepository}.phpcrmeb/jobs/CancelGroupOrderJob.phpapp/common/repositories/user/UserBillRepository.phpapp/common/repositories/system/merchant/FinancialRecordRepository.phpR UserRepository.phpMerchantRepository.php
  • 接口/表/事件/权限:操作 CRM_ORDER_PAID_ADAPT/CRM_ORDER_CANCEL_ADAPT/CRM_REFUND_PREPARE_ADAPT/CRM_REFUND_AFTER_ADAPT;表 order_binding/financial_posting 和领域影响表;事件 farm.cloud.order.paidfarm.cloud.primary.refundedfarm.cloud.resale.reversedfarm.financial_posting.*
  • 验收:普通订单保持原副作用;云仓两类订单跳过普通商户财务、佣金、积分和履约;取消/退款只恢复正确库存源;重复回调不重复入账。
  • 测试:支付/取消/退款三策略矩阵、三个退款申请入口、拒绝/取消、部分/全额退款、余额并发、posting 重试与反向记录。
  • 风险:适配时点过晚先扣商户锁定款;重复恢复库存;账户丢更新。
  • 角色/工期:技术负责人主责,财务后端、订单后端和 QA 双审,15~22 PD

BE-CW-001 商品农业资料与来源 SKU 诊断

  • 目标:完成平台/商户商品农业资料、材料审核、供货资格和稳定活动 SKU 来源诊断。
  • 前置BE-FND-003BE-CRM-001
  • 输入文档18-2130-3537-39
  • 文件N P3(catalog; {ProductAgricultureProfile,ProductMaterial})N crmeb/services/farm/agriculture/{ProductAgricultureService,ProductMaterialExpiryService}.phpcrmeb/services/farm/cloud/CloudSourceSkuMatcher.phpN app/controller/{admin,merchant}/farm/catalog/ProductAgriculture.phpapp/validate/{admin,merchant}/farm/catalog/{ProductAgricultureValidate,ProductMaterialValidate}.phpN crmeb/jobs/farm/ProductMaterialExpiryJob.phpcrmeb/listens/farm/timer/ProductMaterialExpiryListen.phpM app/controller/api/store/product/StoreProduct.phpR Product/ProductAttrValue/Attachment Repository。
  • 接口/表/事件/权限:API farm/agriculture/product_profile/*farm/catalog/product_agriculture/*;操作 PRODUCT_AGRI_*PRODUCT_MATERIAL_EXPIRY_APPLYCW_SOURCE_CHECK_*;表 eb_farm_product_agriculture_profile/product_material;事件 farm.product.agriculture.*farm.product.material.*;编辑/审核分权。
  • 验收:审核资料不自动创建供货;已批准资料修改回 draft 但不改历史快照;来源返回 matched/changed/missing/ambiguous/unresolved。
  • 测试:平台/商户归属、材料到期、规格重建、已发布快照只读、未配置普通商品响应兼容。
  • 风险:覆盖商品描述 JSON、静默重绑 SKU、材料过期改历史订单。
  • 角色/工期:云仓后端主责,商品域后端和 QA 评审,8~12 PD

BE-CW-002 单 SKU 供货、交付、验收、退回与平台承接

  • 目标:实现商户/平台单 SKU 供货数量生命周期、三类责任快照和严格库存守恒。
  • 前置BE-CW-001BE-FND-004
  • 输入文档1319-2131-3738-39
  • 文件N P3(cloud; {CloudSupply,CloudSupplyDelivery,CloudSupplyInspection,CloudSupplyMaterial,CloudSupplyReturn,CloudSupplyAcquisition})N crmeb/services/farm/cloud/{CloudSupplyLifecycleService,CloudSupplyResponsibilityService}.phpN app/controller/admin/farm/cloud/CloudSupply.phpapp/controller/merchant/farm/cloud/{CloudSupply,CloudSupplyRecord}.phpN app/validate/admin/farm/cloud/{CloudSupplyValidate,CloudPlatformSupplyValidate}.phpapp/validate/merchant/farm/cloud/{CloudSupplyValidate,CloudSupplySubmitValidate,CloudSupplyDeliveryValidate,CloudSupplyReturnValidate}.phpN crmeb/listens/farm/domain/CloudSupplyDomainListen.phpTJ({CloudSupplyInventoryReconcile})
  • 接口/表/事件/权限:操作 CW_SUPPLY_*CW_PLATFORM_SUPPLY_CREATECW_SUPPLY_DELIVERY_*CW_SUPPLY_RECEIVECW_SUPPLY_INSPECTION_*CW_SUPPLY_RETURN_*CW_SUPPLY_ACQUIRE_*;表为同名六类供货表和 cloud_inventory_flow;事件 farm.cloud.supply.*;供货审核、验收、承接复核/执行分权。
  • 验收:草稿/提交不占库存,批准才预留;实收/短少/待检/合格/拒收闭合;退回待办完成后才恢复来源;承接原子转平台库存。
  • 测试:数量方程、平台自营来源、重复运单、并发审核库存、部分交付/验收、退回争议、承接执行失败重试。
  • 风险:用单一 available_qty、实物未退先恢复库存、平台供货只写农业表未扣来源。
  • 角色/工期:云仓后端主责,库存后端/QA/财务评审,12~18 PD

BE-CW-003 云仓活动发布、批次草稿与未抢库存闭合

  • 目标:按秒杀信息架构实现独立云仓活动,但使用独立规则、供货库存、批次和发布快照。
  • 前置BE-CW-002
  • 输入文档081318-2131-373840
  • 文件N P3(cloud; {CloudActivity,CloudActivityProduct,CloudActivitySku,CloudUserQuota,CloudBatch,CloudBatchPoolBalance,CloudInventoryFlow})N crmeb/services/farm/cloud/{CloudActivityPublishService,CloudActivityInventoryCloseService}.phpN app/controller/admin/farm/cloud/{CloudActivity,CloudActivityProduct,CloudBatch}.phpapp/validate/admin/farm/cloud/{CloudActivityValidate,CloudActivityProductValidate}.phpN TJ({CloudActivityStatus,CloudActivityInventoryClose,CloudUnpaidRelease})
  • 接口/表/事件/权限:操作 CW_ACTIVITY_*CW_ACTIVITY_PRODUCT_*CW_ACTIVITY_SKU_UPDATESYS_CW_ACTIVITY_ADVANCE/INVENTORY_CLOSE/UNPAID_RELEASE;表为 activity/product/sku/quota/batch/pool/flow;事件 farm.cloud.activity.*farm.cloud.batch.ready;活动编辑与发布/关闭分权。
  • 验收:每场活动每个 SKU 一批次;发布校验来源 matched、库存、规则、resale map;未抢库存按归属释放/退回待办/平台承接闭合。
  • 测试:发布并发、规则快照、三种结算模式字段、时间推进、有付款禁止取消、未支付释放后再闭合、恒等式。
  • 风险:复制普通秒杀状态机、发布后覆盖快照、活动结束直接启动批次。
  • 角色/工期:云仓后端主责,库存/营销后端和 QA 评审,12~18 PD

BE-CW-004 首次抢购、付款事实与待选去向

  • 目标:实现一单一活动 SKU 的抢购、限购、库存锁定、CRMEB 订单创建和付款后待选状态。
  • 前置BE-CW-003BE-CRM-002
  • 输入文档081319-2131-3740
  • 文件N P3(cloud; {CloudOrderItem,CloudPrimaryRefundImpact})N crmeb/services/farm/cloud/{CloudOrderCreateService,CloudOrderPaidService}.phpN app/controller/api/farm/cloud/{CloudActivity,CloudOrder}.phpapp/controller/admin/farm/cloud/CloudOrder.phpapp/validate/api/farm/cloud/{CloudOrderValidate,CloudRefundValidate}.phpN crmeb/listens/farm/{CloudOrderPaidListener,CloudOrderClosedListener}.phpTJ({CloudPaidRepair,CloudChoiceReminder})
  • 接口/表/事件/权限:API farm/cloud/activity/*order/check|create|pay_result|lst|detail|action_count|refund;操作 CW_ORDER_CHECK/CREATECRM_ORDER_PAID_ADAPTCW_PRIMARY_REFUND_*;表 cloud_order_item/user_quota/primary_refund_impact/order_binding;事件 farm.cloud.order.created/paid/pay_expired
  • 验收:V1 不使用券、积分、会员价和分销;付款后进入 paid_pending_choice,返回立即选择/继续抢购/稍后选择;action_count 可找回待选。
  • 测试:库存/限购并发、重复创建/支付、支付超时、付款与取消争锁、首次退款与批次冻结争锁。
  • 风险:支付页直接认定成功、把首次订单当普通商品履约、一个订单含多个活动 SKU。
  • 角色/工期:云仓交易后端主责,订单域后端和 QA 双审,10~15 PD

BE-CW-005 去向、补运费、自提与首次退款

  • 目标:完成整条明细邮寄/自提/代销唯一去向、独立运费支付与迟到退款、分次核销和逾期协同。
  • 前置BE-CW-004
  • 输入文档081319-2131-373840-41
  • 文件N P3(cloud; {CloudFreightOrder,CloudFreightRefund,CloudPickup,CloudPickupVerification,CloudHolding})N crmeb/services/farm/cloud/{CloudDispositionService,CloudFreightQuoteService,CloudFreightPaymentService,CloudFreightRefundService,CloudPickupService}.phpN app/controller/api/farm/cloud/{CloudDisposition,CloudFreight,CloudPickup}.phpapp/controller/admin/farm/cloud/CloudPickup.phpapp/controller/service/farm/CloudPickup.phpN app/validate/api/farm/cloud/{CloudDispositionValidate,CloudFreightValidate,CloudRefundValidate}.phpapp/validate/admin/farm/cloud/CloudPickupValidate.phpapp/validate/service/farm/CloudPickupVerifyValidate.phpM crmeb/services/AlipayService.phpapp/event.phpN crmeb/listens/pay/CloudFreightPaySuccessListen.phpTJ({CloudChoiceExpire,CloudFreightExpire,CloudFreightPaymentRepair,CloudPickupOverdue})crmeb/jobs/farm/RefundCloudFreightJob.php
  • 接口/表/事件/权限:操作 CW_CHOICE_*CW_FREIGHT_*CW_PICKUP_VERIFY/OVERDUE_RESOLVESYS_CW_CHOICE_EXPIRE/FREIGHT_*/PICKUP_OVERDUE;表 freight/refund/pickup/verification/holding;事件 farm.cloud.choice.*farm.cloud.freight.*farm.cloud.primary.quantity_completed;核销需 farm.pickup.verify 和网点范围。
  • 验收:一条明细只能一种去向;需补运费时邮寄未提前生效;迟到支付只原路全退;自提每次有不可变记录,剩余量进入明确方案。
  • 测试:确认与自动代销双线程、运费成功与超时双线程、余额/在线支付、迟到回调、部分核销、重复码、逾期四种方案、退款冻结。
  • 风险:用原商品订单改价、补运费成功抢回已代销去向、部分核销误标整单完成。
  • 角色/工期:资深云仓后端主责,支付/仓储/QA 双审,15~22 PD

BE-CW-006 批次启动、二次库存桥接、FEFO 与真实进度

  • 目标:把代销持仓发布到 cloud_only 二次 SKU,普通商城真实订单按 FEFO 分配并在售后观察后形成有效销售进度。
  • 前置BE-CW-005BE-CRM-001~002
  • 输入文档081319-2131-3740
  • 文件N P3(cloud; {CloudResaleStock,CloudResaleAllocation,CloudResaleRefundAllocation,CloudBatchProgress})N crmeb/services/farm/cloud/{CloudBatchStartService,CloudResaleStockService,CloudResaleAllocationService,CloudProgressService}.phpN app/controller/admin/farm/cloud/CloudResale.phpN crmeb/listens/farm/{CloudResaleOrderPaidListener,CloudResaleOrderCompletedListener,CloudRefundCompletedListener}.phpTJ({CloudBatchStart,CloudResaleAllocationRepair,CloudResaleRelease,CloudResaleEffective,CloudRefundSync,CloudMilestone})
  • 接口/表/事件/权限:操作 CW_RESALE_SKU_MAPSYS_CW_BATCH_START/RESALE_ALLOCATE/RESALE_RELEASE/RESALE_EFFECTIVE/CW_REFUND_SYNC/CW_MILESTONE;表 resale stock/allocation/refund/progress、batch/pool/flow;事件 farm.cloud.batch.startedfarm.cloud.resale.*farm.cloud.milestone.reached
  • 验收:活动、未付、未抢和选择窗口闭合后才启动;普通订单创建时分配、支付不换批次;进度只计观察期后的净有效数量;回购不伪造 100%。
  • 测试:FEFO 并发、订单创建回滚、未支付释放、完成/退款乱序、部分退款、跨多个节点只取最高新节点、整数库存与六位经济等价。
  • 风险:普通库存与云仓池混算、付款后重挑批次、进度由运营手填。
  • 角色/工期:资深库存/订单后端主责,技术负责人和 QA 双审,15~22 PD

BE-CW-007 用户三种结算、正式入账与到期回购

  • 目标:实现三种累计差额结算、最大余数分钱、正常退款抵扣、正式余额 posting 和人工审核回购。
  • 前置BE-CW-006BE-CRM-002
  • 输入文档081319-2131-373840
  • 文件N P3(cloud; {CloudUserLedger,CloudBuyback,CloudLedgerAdjustment})N crmeb/services/farm/cloud/{CloudUserSettlementService,CloudBuybackService}.phpN app/controller/admin/farm/cloud/{CloudUserLedger,CloudBuyback,FarmFinancialPosting}.phpapp/controller/api/farm/cloud/{CloudHolding,CloudLedger}.phpN app/validate/admin/farm/cloud/{CloudBuybackValidate,CloudLedgerAdjustValidate,FarmFinancialPostingValidate}.phpN TJ({CloudUserSettlement,CloudMaturity,CloudMaturityFinalize,FarmFinancialPostingRepair})crmeb/listens/farm/timer/CloudBuybackListen.phpcrmeb/jobs/farm/{PostFarmUserLedgerJob,ExecuteCloudBuybackJob}.php
  • 接口/表/事件/权限:操作 CW_USER_LEDGER_REVIEW/CW_USER_POSTING/CW_LEDGER_ADJUST_*CW_BUYBACK_*CW_FINANCIAL_POSTING_RETRYSYS_CW_USER_SETTLE/MATURITY_*/BUYBACK_EXECUTE/FIN_POST_REPAIR;表 user ledger/buyback/adjustment/posting/holding;事件 farm.cloud.user_ledger.*farm.cloud.buyback.*farm.financial_posting.*;审核/执行分权。
  • 验收:A 到期统一、B 分期收益到期本金、C 分期本息按真实累计差额计算;一次跨节点只生成最高新节点一组账本;回购库存、账本、状态和 Outbox 原子。
  • 测试:金额黄金算例、尾差、重复节点、退款在入账前后、余额并发、阈值审核、回购审核失效/重试/冲正。
  • 风险:把预计收益当应付、直接扣负余额、回购先转库存后入账。
  • 角色/工期:财务后端主责,技术负责人、QA 和财务业务双审,18~25 PD

BE-CW-008 商户货款、自然日结单与五段对账

  • 目标:按固定供货价和首次完成资格生成商户货款、02:00 自然日结单、正式商户入账和可审核对账修复。
  • 前置BE-CW-006BE-CRM-002;与 BE-CW-007 并行。
  • 输入文档081319-2131-39
  • 文件N P3(cloud; {MerchantSupplyLedger,MerchantSupplyStatement,MerchantSupplyStatementItem})N crmeb/services/farm/cloud/{MerchantSupplySettlementService,MerchantSupplyStatementService,CloudReconciliationService}.phpN app/controller/admin/farm/cloud/{CloudMerchantLedger,CloudMerchantStatement,CloudReconciliation}.phpapp/controller/merchant/farm/cloud/{CloudSupplyLedger,CloudSupplyStatement}.phpN app/validate/admin/farm/cloud/CloudMerchantStatementValidate.phpapp/validate/merchant/farm/cloud/CloudLedgerExceptionValidate.phpN TJ({CloudMerchantEligibility,CloudMerchantStatement,CloudMerchantPosting,CloudReconciliation})crmeb/jobs/farm/{GenerateMerchantSupplyStatementJob,PostMerchantSupplyStatementJob}.php
  • 接口/表/事件/权限:操作 CW_MERCHANT_STATEMENT_*CW_MERCHANT_POSTING*CW_RECONCILIATION_*CW_LEDGER_DISPUTE/CW_STATEMENT_DISPUTE;表 merchant ledger/statement/item/posting/async operation;事件 farm.cloud.merchant_ledger.*farm.cloud.merchant_statement.generated;结单审核/执行、对账预演/审核/执行分权。
  • 验收:资格同时满足验收、首次完成、观察期和无冻结;二次售完不影响固定货款;结单明细不可变;五段对账只按预演和原结果键修复。
  • 测试:邮寄/自提/代销资格时间、首次退款、跨日时区、重复结单、入账重试、商户异议、对账差异与修复权限。
  • 风险:把首次抢购价或二次售价当供货价、结单生成误当到账、直接改余额修差异。
  • 角色/工期:财务后端主责,商户域后端、DBA 和 QA 双审,15~22 PD

BE-AG-001 农业主数据、地图与管理员范围

  • 目标:完成农场、区域、地块、仓库/库位、自提点、作物、品种、栏舍、动物、养殖批次和平台对象范围。
  • 前置BE-FND-003BE-CRM-002
  • 输入文档1418-2129-373841
  • 文件N P3(agriculture; {Farm,Zone,Plot,Warehouse,WarehouseLocation,PickupPoint,Crop,AdoptionCategory,Breed,Enclosure,AnimalAsset,BreedingBatch})N app/controller/admin/farm/asset/{Farm,Zone,Plot,Warehouse,PickupPoint,FarmDashboard,Enclosure,AnimalAsset,BreedingBatch}.phpapp/controller/admin/farm/catalog/{Crop,Breed}.phpapp/controller/admin/farm/support/{FarmMap,FarmAdminScope}.phpN app/validate/admin/farm/agriculture/{FarmAssetValidate,WarehouseValidate,PickupPointValidate,AnimalImportValidate,BreedingBatchValidate}.phpapp/validate/admin/farm/support/{FarmMapQueryValidate,GeoPointValidate,FarmAdminScopeValidate}.phpN crmeb/services/farm/support/map/{GeoPoint,MapProviderInterface,TencentMapProvider,FarmMapService}.phpcrmeb/jobs/farm/{ValidateAnimalImportJob,ConfirmAnimalImportJob}.phpM app/controller/api/Common.phproute/api/notLogin.phpR 腾讯 GL JS 和项目 HTTP 客户端。
  • 接口/表/事件/权限:API farm/agriculture/{farm|zone|plot|warehouse|warehouse_location|pickup_point|crop|enclosure|breed|animal|breeding_batch}/*farm/map/*farm/support/admin_scope/*;操作 FARM_*_CREATE/UPDATE/STATUSANIMAL_IMPORT_*FARM_ADMIN_SCOPE_SAVE;表为对应主数据与范围表;地图统一 GCJ02。
  • 验收:列表先范围后分页;详情/写事务重断言归属;坐标成对且启用对象有真实点位;动物三段导入确认前不写资产。
  • 测试:主数据停用引用、范围越界、坐标/Key 降级、动物导入哈希/版本/全批回滚、旧 /api/lbs/* 回归。
  • 风险:专业 GIS 扩张、服务端 Key 下发、超级管理员散落 ID 特判、自由文本仓库。
  • 角色/工期:农业后端主责,安全/地图/DBA/QA 评审,15~22 PD

BE-AG-002 租地/认养套餐、权益订单与真实分配

  • 目标:实现发布版本、CRMEB 单商品权益订单、支付后 5 分钟预留和真实地块/个体/份额原子分配。
  • 前置BE-AG-001BE-CRM-002
  • 输入文档121418-2131-373840
  • 文件N P3(agriculture; {PlotOccupancy,LandPlan,LandPlanCrop,LandOrder,AdoptionPlan,AdoptionOrder,AdoptionAllocation,AssetReplacement})N crmeb/services/farm/agriculture/{LandOrderCreateService,PlotAllocationService,AdoptionOrderCreateService,AdoptionAllocationService}.phpN app/controller/admin/farm/land/{LandPlan,LandOrder,LandAllocation}.phpapp/controller/admin/farm/adoption/{AdoptionPlan,AdoptionOrder,AdoptionAllocation}.phpapp/controller/api/farm/land/{LandPlan,LandOrder}.phpapp/controller/api/farm/adoption/{AdoptionPlan,AdoptionOrder}.phpN app/validate/admin/farm/agriculture/{LandPlanValidate,AdoptionPlanValidate,AllocationValidate}.phpapp/validate/api/farm/agriculture/{LandOrderValidate,AdoptionOrderValidate}.phpN crmeb/listens/farm/{LandOrderPaidListener,AdoptionOrderPaidListener}.phpTJ({FarmAllocationRepair,FarmAllocationReservationExpire})
  • 接口/表/事件/权限:操作 LAND_PLAN_*LAND_ORDER_*LAND_ALLOCATION_*ADOPTION_PLAN_*ADOPTION_ORDER_*ADOPTION_ALLOCATION_*SYS_FARM_ALLOC_REPAIR/RESERVE_EXPIRE;表 plan/order/occupancy/allocation/replacement/order_binding;事件 farm.land.*farm.adoption.*
  • 验收:套餐价值拆分、产出和延期快照固定;候选不占用;预留 5 分钟;确认锁资源重查冲突;份额不超容量;支付后分配失败进入待办而非假对象。
  • 测试:同地块重叠、同动物双分配、份额超卖、预留超时/释放、支付与分配重试、替换链、退款基数。
  • 风险:下单前承诺具体资产、只靠普通索引防时间重叠、替换删除历史。
  • 角色/工期:农业权益后端主责,订单/DBA/QA 双审,18~26 PD

BE-AG-003 生产批次、任务、过程版本与现场证据

  • 目标:把权益与种植/养殖生产批次关联,完成任务分派、现场记录、审核版本和范围化证据。
  • 前置BE-AG-002BE-FND-004
  • 输入文档1418-2131-373841
  • 文件N P3(agriculture; {ProductionBatch,ProductionPlantDetail,ProductionLivestockDetail,ProductionRightLink,FarmTask,FarmTaskAssignment,ProductionEvent,ProductionEventVersion})N crmeb/services/farm/agriculture/{ProductionBatchService,FarmTaskService,ProductionEventPublishService}.phpN app/controller/admin/farm/production/{ProductionBatch,FarmTask,ProductionEvent}.phpapp/controller/service/farm/{FarmTask,ProductionEvent,AssetHealth,FarmAttachment}.phpN app/validate/admin/farm/agriculture/{ProductionBatchValidate,ProductionEventValidate,FarmTaskValidate}.phpapp/validate/service/farm/{ProductionEventValidate,FarmAttachmentValidate}.phpN TJ({FarmTaskReminder})crmeb/listens/farm/timer/FarmUnboundAttachmentCleanupListen.phpcrmeb/jobs/farm/CleanupFarmUnboundAttachmentJob.php
  • 接口/表/事件/权限:操作 PRODUCTION_BATCH_*FARM_TASK_*PRODUCTION_EVENT_*FARM_ASSET_HEALTH_CREATE/FARM_ATTACHMENT_UPLOAD;表 production/detail/right/task/assignment/event/version/evidence;事件 farm.production.*farm.task.*;服务权限 farm.task.*farm.production.event.writefarm.asset.health.writefarm.evidence.upload
  • 验收:任务只由当前有效执行人开始/完成;已完成现场事实不因审核驳回被覆盖;新版本保留历史;附件业务提交时原子绑定。
  • 测试:转派/旧 scope 竞态、同一 request 重放、任务完成数量与证据、审核本人/越界、附件过期清理。
  • 风险:任务完成等同内容发布、URL 当证据、审核人修改原始记录。
  • 角色/工期:农业生产后端主责,服务端后端/安全/QA 评审,15~22 PD

BE-AG-004 产出、权益分配、邮寄履约与退款

  • 目标:完成产出质量、库存流水、按权益分配、地址确认、分包邮寄、独立运费和未履约退款。
  • 前置BE-AG-003
  • 输入文档1418-2131-373840-41
  • 文件N P3(agriculture; {OutputBatch,OutputInventoryFlow,OutputAllocation,FarmFulfillment,FarmFulfillmentItem,FarmFulfillmentPackage,FarmFulfillmentPackageItem,FarmFulfillmentFreightOrder})N crmeb/services/farm/agriculture/{OutputAllocationService,FarmFulfillmentService,FarmFulfillmentFreightService,FarmDeliveryRefundService}.phpN app/controller/admin/farm/production/OutputBatch.phpapp/controller/admin/farm/fulfillment/FarmFulfillment.phpapp/controller/api/farm/fulfillment/FarmFulfillment.phpapp/controller/service/farm/{OutputBatch,Warehouse,FarmFulfillment}.phpN app/validate/admin/farm/agriculture/{OutputBatchValidate,OutputAllocationValidate}.phpapp/validate/api/farm/agriculture/{FarmFulfillmentAddressValidate,FarmFulfillmentFreightValidate,FarmFulfillmentRefundValidate}.phpapp/validate/service/farm/{OutputBatchValidate,WarehouseReceiveValidate,FarmFulfillmentValidate}.phpN TJ({FarmOutputAllocation,FarmFulfillmentReminder})crmeb/listens/farm/timer/FarmFulfillmentFreightRepairListen.phpcrmeb/jobs/farm/RepairFarmFulfillmentFreightJob.php
  • 接口/表/事件/权限:操作 OUTPUT_*FULFILLMENT_*FARM_WAREHOUSE_RECEIVESYS_FARM_OUTPUT_ALLOCATE/FULFILLMENT_*/FREIGHT_REPAIR;表 output/flow/allocation/fulfillment/items/packages/freight;事件 farm.output.*farm.fulfillment.*;服务权限 farm.output.*farm.warehouse.receivefarm.fulfillment.pack/ship
  • 验收:总量方程成立;合格量不超分;平台主动分批不重复收费;每次发货确认地址;租地/认养只邮寄;退款按累计未履约和价值拆分后端计算。
  • 测试:质量部分验收、最大余数分配、并发分配、包裹拆分、重复运单、迟到运费、部分发货退款和库存反向。
  • 风险:农业产出进入云仓自提/代销、前端提交退款金额、已出库库存回滚。
  • 角色/工期:农业履约后端主责,库存/支付/QA 双审,18~26 PD

BE-AG-005 统一农业异常、溯源与通知闭环

  • 目标:实现异常影响/方案/审核/用户确认/步骤执行和溯源不可变发布,把关键事实转为去重通知。
  • 前置BE-AG-004
  • 输入文档1418-2131-3840-41
  • 文件N P3(agriculture; {FarmExceptionEvent,FarmExceptionImpact,FarmExceptionPlanVersion,FarmExceptionExecutionStep,TraceArchive,TraceVersion,TraceMaterial,TraceLink})N crmeb/services/farm/agriculture/{FarmExceptionService,FarmExceptionExecutionService,TracePublishService}.phpN app/controller/admin/farm/exception/FarmException.phpapp/controller/admin/farm/trace/{TraceArchive,TraceMaterial,TraceLink}.phpapp/controller/api/farm/exception/FarmException.phpapp/controller/api/farm/trace/Trace.phpapp/controller/service/farm/{FarmException,FarmReview}.phpN app/validate/admin/farm/agriculture/{FarmExceptionPlanValidate,TraceVersionValidate,TraceMaterialValidate,TraceLinkValidate}.phpapp/validate/api/farm/agriculture/FarmExceptionConfirmValidate.phpapp/validate/service/farm/{FarmExceptionValidate,FarmReviewValidate}.phpN crmeb/listens/farm/timer/{FarmExceptionExecutionListen,FarmExceptionConfirmationExpireListen,FarmExceptionSlaListen,TraceMaterialExpiryListen,TracePublicCacheRepairListen}.phpcrmeb/jobs/farm/{ExecuteFarmExceptionStepJob,FarmExceptionConfirmationExpireJob,FarmExceptionSlaJob,TraceMaterialExpiryJob,TracePublicCacheRepairJob,GenerateTraceQrCodeJob}.php
  • 接口/表/事件/权限:操作 FARM_EXCEPTION_*TRACE_*SYS_FARM_EXCEPTION_*SYS_TRACE_*;表 exception/impact/plan/step、trace/archive/version/material/link;事件 farm.exception.*farm.trace.*;异常审核/执行、溯源审核/发布/撤回分权。
  • 验收:方案版本不可覆盖;只允许白名单 step_code;完全等价未超容忍期可超时接受,减量/降级/补款超时转退款;公开码不可枚举且只读当前发布版本。
  • 测试:影响重算、用户确认竞态、步骤部分失败/原键重试、替换/延期/退款方案、溯源审核发布分离、撤回和材料到期。
  • 风险:把类名/SQL 当执行步骤、异常直接改余额/库存、撤回删除历史。
  • 角色/工期:农业异常后端主责,安全/财务/QA 双审,15~22 PD

十二、平台管理端任务包

ADM-FND-001 平台路由、API、共用组件与现有页面扩展

  • 目标:建立平台农业路由/API/共用展示基础,并在现有商品、管理员、财务和地图页面做最小兼容扩展。
  • 前置DES-002BE-FND-001;Mock 契约稳定。
  • 输入文档18-2123303537-38
  • 文件N smartfarm_admin/src/router/modules/agriculture.jssrc/api/farm/{cloud,agriculture,production,trace,finance,map,support}.jssrc/components/farm/{StatusTag,RuleSnapshot,BatchProgress,InventoryPoolTable,LedgerFormula,TraceTimeline,VersionHistory,FarmMapPicker,FarmAdminScopeDrawer}.vuesrc/utils/farm/{format,constants,actionGuard}.jsM src/router/modules/{marketing,accounts}.jssrc/router/index.jssrc/api/product.jssrc/views/product/productExamine/{index,info,proDetails}.vuesrc/views/setting/systemAdmin/index.vuesrc/components/map/{Map.vue,index.js}src/filters/commFilter.jssrc/views/accounts/capitalFlow/index.vueR 现有 request、权限指令、上传、导出、表格、分页和商品选择器。
  • 接口/表/事件/权限:页面 ADM-CM-001/002 和范围抽屉;接口 product profile/admin scope/map/operation;状态、金额、比例、ID 严格按 37 格式;按钮只根据 allowed_actions 和 route permission 显示。
  • 验收:新增路由在原动态路由机制中可达;现有商品两类筛选共用同页;管理员范围不侵入原管理员编辑表单;地图失败有手工降级。
  • 测试:路由/菜单权限、API 参数、版本冲突、无范围、长字段、普通商品审核和原财务跳转回归;生产构建通过。
  • 风险:只建菜单无本地路由、复制第二套商品页、组件封装业务状态机。
  • 角色/工期:平台前端负责人主责,UI/后端/QA 评审,6~9 PD

ADM-CW-001 云仓活动与供货工作台

  • 目标:交付活动创建/商品规则/发布预检、供货审核/收货/质检/退回/承接的首个平台垂直切片。
  • 前置ADM-FND-001DES-CW-001BE-CW-001~003 契约可联调。
  • 输入文档18-2130-3537-38
  • 文件N smartfarm_admin/src/views/marketing/cloud/activity/{index,edit,detail}.vueactivity/components/{ActivityBaseForm,ActivitySkuRuleTable}.vuesupply/{index,detail}.vueR src/views/marketing/seckill/store_seckill/**seckillGoods/** 仅参考;M 无额外现有业务页。
  • 接口/表/事件/权限:页面 ADM-CW-001~006;API activity/product/SKU/supply;展示 activity/supply/batch/flow 表投影;活动编辑/发布、供货审核/验收/承接审核执行拆权。
  • 验收:发布预检逐项定位来源、库存、规则和 resale map;供货详情展示完整 15 段数量链、责任快照和不可变流水;不允许输入最终库存。
  • 测试:草稿/预检/发布/关闭、来源失配、部分收货/验收、退回待办、平台承接、空/错误/无权限/版本冲突。
  • 风险:直接复制秒杀页面、隐藏后端错误、供货详情用一个“可用量”掩盖差异。
  • 角色/工期:平台前端主责,云仓后端、UI 和 QA 评审,12~18 PD

ADM-CW-002 云仓订单、去向、批次与二次零售

  • 目标:交付首次订单/待选/自提、批次池、库存流水、真实二次分配和冻结恢复工作台。
  • 前置ADM-FND-001DES-CW-001BE-CW-004~006
  • 输入文档18-2130-3537-3840-41
  • 文件N smartfarm_admin/src/views/marketing/cloud/order/{index,detail}.vuependingChoice/index.vuepickup/index.vuebatch/{index,detail}.vueresale/{index,detail}.vueR 共用 StatusTag/RuleSnapshot/BatchProgress/InventoryPoolTableM 无普通订单页面改造。
  • 接口/表/事件/权限:页面 ADM-CW-007~010;API order/pending/remind/pickup/batch/flows/freeze/resume/reconciliation/resale;投影 order item/freight/pickup/holding/batch/pools/allocations。
  • 验收:从订单可追到去向和持仓;从二次订单可追到 FEFO 批次;批次详情显示恒等式、真实进度、在途和回购量,不提供手工设 100%。
  • 测试:待选截止、迟到运费、部分核销、退款冻结、批次暂停、对账差异预览、超长订单号和大量流水分页。
  • 风险:把用户隐私全量展示、把批次重算按钮当直接覆盖、列表在前端内存过滤范围。
  • 角色/工期:平台前端主责,云仓后端和 QA 评审,12~18 PD

ADM-CW-003 云仓财务、回购、对账与异常

  • 目标:交付用户账本、商户货款/结单、正式入账、回购、五段对账、调整和云仓异常的高风险平台界面。
  • 前置ADM-CW-002BE-CW-007~008DES-CW-001
  • 输入文档0818-2130-3537-40
  • 文件N smartfarm_admin/src/views/marketing/cloud/buyback/{index,detail}.vueexception/{index,detail}.vuesrc/views/accounts/farm/userLedger/{index,detail}.vuemerchantLedger/{index,detail}.vuemerchantStatement/{index,detail}.vuefinancialPosting/detail.vuereconciliation/index.vueadjustment/index.vueR LedgerFormula.vue、现有财务筛选/导出;M 已由 ADM-FND-001 管理的 capitalFlow/filter 文件。
  • 接口/表/事件/权限:页面 ADM-CW-011/012ADM-FN-001~005;API buyback/ledger/statement/posting/reconciliation/adjustment/exception;审核与执行、申请与复核严格分权。
  • 验收:公式输入、累计应结、历史账本、当前差额、尾差、风险承担和 posting 均可追;所有执行按钮只提交来源 ID/版本/原因,不接受最终金额。
  • 测试:自动阈值、超限审核、重复执行、入账失败重试、回购预检失效、冲正、对账异步进度、PII 脱敏和导出权限。
  • 风险:页面提供改余额/改金额输入、把“已生成结单”标成“已到账”、审核人执行自己的申请。
  • 角色/工期:资深平台前端主责,财务后端、产品和 QA 双审,12~18 PD

ADM-AG-001 农业资产、目录、地图与范围页面

  • 目标:交付农业工作台、农场/区域/地块/仓储/自提点、栏舍/动物/批次、作物/品种和管理员农业范围。
  • 前置ADM-FND-001DES-AG-001BE-AG-001
  • 输入文档18-212329-3537-38
  • 文件N smartfarm_admin/src/views/farm/dashboard/index.vueasset/farm/{index,edit}.vueasset/farm/components/{WarehouseTab,WarehouseLocationDrawer}.vueasset/zone/index.vueasset/plot/{index,edit,map}.vueasset/pickupPoint/{index,edit}.vueasset/enclosure/index.vueasset/animal/index.vueasset/breedingBatch/index.vuecatalog/crop/index.vuecatalog/breed/index.vueR FarmMapPicker.vue、现有上传/导入/表格;M 无额外文件。
  • 接口/表/事件/权限:页面 ADM-AG-001~012ADM-LA-001ADM-AD-001;API agriculture master/map/import/admin scope;对象范围在列表、选项和详情一致。
  • 验收:农场详情内维护仓库/库位而不增加 P0 页面;地块占用日历不伪造 GIS;动物导入三段式显示错误文件和异步进度;停用显示引用阻断。
  • 测试:地图无 Key/失败、坐标校验、范围变化、导入大文件/冲突、空仓库/库位、移动窗口表单和 1366 桌面密度。
  • 风险:在商户端复制资产页、地图成为交易强依赖、导入确认直接上传行数据。
  • 角色/工期:平台农业前端主责,UI/农业后端/QA 评审,15~22 PD

ADM-AG-002 租地与认养套餐、订单和分配工作台

  • 目标:交付两类套餐版本、订单详情、候选、5 分钟预留和原子确认分配。
  • 前置ADM-AG-001BE-AG-002DES-AG-001
  • 输入文档1418-2130-3537-3840
  • 文件N smartfarm_admin/src/views/farm/land/plan/{index,edit}.vueland/order/{index,detail}.vueland/allocation/index.vueadoption/plan/{index,edit}.vueadoption/order/{index,detail}.vueadoption/allocation/index.vueR 现有商品/套餐表单基础控件、RuleSnapshot.vueVersionHistory.vueM 无。
  • 接口/表/事件/权限:页面 ADM-LA-002~006ADM-AD-002~006;API plan/order/allocation candidates/reserve/confirm/release;显示 plan/order/occupancy/allocation/replacement。
  • 验收:价格价值拆分、承诺产出、延期容忍和只邮寄规则发布前可预检;候选不显示为已占用;倒计时结束刷新;冲突不提供强制覆盖。
  • 测试:套餐版本、容量不足、预留过期、两人同资源、单体/份额模式、资产替换历史、无权限和版本冲突。
  • 风险:套餐页直接选择具体动物、前端倒计时作为锁真相、租地/认养出现代销或自提。
  • 角色/工期:平台农业前端主责,权益后端、UI 和 QA 评审,12~18 PD

ADM-AG-003 生产、产出、履约、异常与溯源平台工作台

  • 目标:交付生产批次/任务、过程审核、产出质量与分配、邮寄履约、异常方案和溯源版本。
  • 前置ADM-AG-002BE-AG-003~005DES-AG-001
  • 输入文档1418-2130-3840-41
  • 文件N smartfarm_admin/src/views/farm/production/batch/{index,detail}.vueproduction/event/review.vueoutput/batch/{index,detail}.vuefulfillment/{index,detail}.vueexception/{index,detail}.vuetrace/archive/{index,edit}.vuetrace/review/index.vuetrace/material/index.vuetrace/link/index.vueR TraceTimeline/VersionHistory/LedgerFormula 和现有物流组件;M 无。
  • 接口/表/事件/权限:页面 ADM-PD-001~008ADM-TR-001~004;API production/task/event/output/fulfillment/exception/trace;过程审核/发布、异常审核/执行、溯源审核/发布/撤回分权。
  • 验收:任务、过程、产出、包裹、异常和溯源均可从权益订单追踪;数量方程实时提示但后端为准;历史版本只读;执行失败显示步骤和操作号。
  • 测试:任务转派、过程驳回、部分质量/分配/发货、异常用户确认、步骤失败重试、溯源撤回、材料到期和物流空态。
  • 风险:一个巨型详情页无清晰标签、审核页允许编辑原事实、异常页面直接执行自由动作。
  • 角色/工期:资深平台农业前端主责,农业后端、UI 和 QA 评审,15~22 PD

十三、商户端任务包

MER-FND-001 商户路由/API、经营工作台和商品农业资料

  • 目标:建立商户云仓基础入口,并在现有首页、商品、财务页面展示当前商户的农业资料、供货资格和待办。
  • 前置DES-CW-001BE-CW-001BE-FND-001
  • 输入文档18-2130353739
  • 文件N smartfarm_mer/src/api/farm/{cloud,finance}.jsM src/router/modules/{marketing,accounts}.jssrc/views/dashboard/index.vuesrc/views/product/productList/index.vuesrc/views/product/addProduct/index.vuesrc/filters/commFilter.jssrc/views/accounts/capitalFlow/index.vueR src/api/product.js、商品/SKU 选择、上传、表格和商户权限组件。
  • 接口/表/事件/权限:页面 MER-HM-001MER-CM-001/002;API dashboard/product agriculture/operation;所有请求从登录态取 mer_id,页面不提交商户 ID 作为授权。
  • 验收:商品资料审核与供货申请是两个状态;工作台只聚合当前商户和当前员工动作;普通商品编辑/上下架无退化。
  • 测试:商户隔离、员工角色、材料缺失/到期、商品规格变化、首页空态、财务流水原跳转和生产构建。
  • 风险:只在前端过滤商户、把活动规则开放给商户、首页堆叠过量大卡。
  • 角色/工期:商户前端主责,商户后端和 QA 评审,6~9 PD

MER-CW-001 商户供货申请、记录与数量链

  • 目标:交付单 SKU 供货草稿/提交、发运、平台收货/质检结果、退回和平台承接只读追踪。
  • 前置MER-FND-001BE-CW-002ADM-CW-001 接口一致。
  • 输入文档1318-2130-3537-39
  • 文件N smartfarm_mer/src/views/marketing/cloudSupply/application/{index,edit}.vuerecord/{index,detail}.vueR 现有商品选择、上传、物流、表格/分页;M 无。
  • 接口/表/事件/权限:页面 MER-CW-001~004;API supply/product_candidates/delivery/inspection/return;显示供货、交付、验收、材料、退回、承接和库存流水。
  • 验收:一张申请仅一个 SKU,多选生成多草稿;商户只提交责任建议;详情完整显示 proposed 到 platform_acquired 数量链和守恒告警。
  • 测试:草稿/驳回补充/提交、部分发运、重复运单、短缺/拒收、退回确认争议、跨商户 ID 探测。
  • 风险:提交即扣库存、商户覆盖平台责任快照、活动结束直接恢复实物仍在平台的库存。
  • 角色/工期:商户前端主责,云仓后端、UI 和 QA 评审,10~15 PD

MER-CW-002 商户履约、货款、结单与异议

  • 目标:交付责任快照下的发货/物流/证据/退回协同,以及固定供货价货款、日结单、入账和异议。
  • 前置MER-CW-001BE-CW-008
  • 输入文档081318-2130-3537-39
  • 文件N smartfarm_mer/src/views/marketing/cloudSupply/fulfillment/{index,detail}.vuesrc/views/accounts/farm/supplyLedger/{index,detail}.vuesupplyStatement/{index,detail}.vuereconciliation/index.vueR 现有物流、售后、导出、转账/提现能力;M capitalFlow/index.vue 已由 MER-FND-001 接入专属详情。
  • 接口/表/事件/权限:页面 MER-CW-005MER-FN-001/002;API fulfillment/ledger/statement/dispute;按责任快照与员工角色返回 allowed_actions。
  • 验收:只展示本商户责任任务;货款明确“待条件/可入单/已入单/入账中/已入账”;二次销售进度不改变商户固定货款。
  • 测试:发货与物流更正、证据绑定、退回实收、责任不归商户、结单跨日、入账失败、已入账异议和导出脱敏。
  • 风险:商户执行云仓自提核销、把用户收益当商户佣金、把结单生成当余额到账。
  • 角色/工期:资深商户前端主责,财务后端和 QA 评审,10~15 PD

十四、用户端任务包

USR-FND-001 uni-app 基线修复、分包、支付回跳与农业 API

  • 目标:在不重构现有用户端的前提下建立两个分包、六个 API 模块和安全支付回跳,并先修复会阻断复用的基线缺陷。
  • 前置DES-002BE-FND-001
  • 输入文档18212529-303537
  • 文件N smartfarm_user/api/{farmAgriculture,farmCloud,farmLand,farmAdoption,farmException,farmTrace}.jsM pages.jsonpages/user/index.vuecomponents/payment/index.vuepages/order_pay_back/index.vuelibs/login.jslibs/order.jspages/activity/goods_seckill_details/index.vuepages/users/order_confirm/index.vuestore/modules/location.jsutils/util.jsmanifest.json 的客户端 Key 配置;R api/order.js、地址/物流/退款、base_container/base_nav_bar/priceFormat/easyLoadimage/countDown/emptyPage/Loading/productConSwiper/jyf-parser/uni-popup/uni-datetime-picker
  • 接口/表/事件/权限:注册 pages/cloudWarehousepages/farm;API 使用现有 request/login;支付 returnPath 只接受白名单,结果页重新查询 PayResult
  • 验收:普通订单默认回跳不变;农业分包可独立加载;H5/小程序登录、支付、位置和普通秒杀基线缺陷有独立回归记录。
  • 测试:构建矩阵、分包体积、登录拦截、微信/支付宝/余额回跳、非法 returnPath、拒绝定位、普通确认页无 debugger。
  • 风险:顺手升级 uni-app 或全局改坐标、支付组件写入云仓状态机、服务端 Key 进入客户端。
  • 角色/工期:uni-app 负责人主责,支付后端和 QA 双审,8~12 PD

USR-CW-001 云仓活动、商品、抢购与支付结果

  • 目标:交付独立云仓场次/商品/确认/支付结果,支持付款后立即选择、继续抢购或稍后选择。
  • 前置USR-FND-001DES-CW-001BE-CW-003~004
  • 输入文档0818-212530-353740
  • 文件N smartfarm_user/pages/cloudWarehouse/{index,detail,order_confirm,pay_result,order_list}.vueR components/productWindow/index.vue 的 SKU/数量交互、倒计时、价格、图片、骨架;M 不改普通秒杀页面。
  • 接口/表/事件/权限:页面 USR-CW-001~005;API activity current/products/detail、order check/create/pay_result/list/detail/action_count/refund;只读活动 SKU/批次规则快照。
  • 验收:购买前展示周期、模式、分成、回购、去向和售后;确认页无券/积分/会员价/分销;支付成功继续抢购保留活动位置;订单中心找回待选。
  • 测试:未开始/进行/结束、库存/限购、规则变化、重复提交、支付处理中/失败/成功、继续抢购、空订单和登录失效。
  • 风险:复用普通秒杀业务 API、前端支付回调直接置成功、把预计收益写成保证收益。
  • 角色/工期:uni-app 负责人主责,云仓后端、UI 和 QA 评审,10~15 PD

USR-CW-002 云仓去向、补运费与自提凭证

  • 目标:交付整条明细唯一去向、邮寄报价/支付/迟到退款和可分次核销的自提凭证。
  • 前置USR-CW-001BE-CW-005
  • 输入文档0818-212530-353740-41
  • 文件N smartfarm_user/pages/cloudWarehouse/{disposition,freight_pay,pickup}.vuecomponents/farm/{CloudRuleSummary,CloudDispositionSelector}.vueR 地址选择、支付弹层、倒计时、地图/导航和物流基础组件。
  • 接口/表/事件/权限:页面 USR-CW-006~008;API disposition preview/confirm、freight detail/pay/pay_result/cancel/refund_result、pickup voucher;本人资源和 allowed_actions。
  • 验收:不提供拆数量;最终选择后不可改;补运费支付中轮询本地状态;迟到支付明确显示退款;自提展示应提/已提/剩余和每次核销。
  • 测试:选择截止、邮寄不支持/地址不可达、支付超时/迟到、自动代销竞态、二维码脱敏、部分核销/逾期方案、返回路径。
  • 风险:本地倒计时直接决定状态、超时后重复建运费单、自提码泄露或截图长期有效。
  • 角色/工期:uni-app 负责人主责,支付/仓储后端和 QA 双审,12~18 PD

USR-CW-003 我的云仓、真实进度与账本

  • 目标:交付持仓列表/详情、真实二次销售进度、三种结算结果、到期宽限/回购和用户账本。
  • 前置USR-CW-002BE-CW-006~007
  • 输入文档0818-212530-353740
  • 文件N smartfarm_user/pages/cloudWarehouse/{holding_list,holding_detail,ledger,ledger_detail}.vuecomponents/farm/{CloudSettlementTimeline,CloudBatchProgress}.vueR priceFormat、时间线、加载/空态组件。
  • 接口/表/事件/权限:页面 USR-CW-009~012;API holding list/detail/progress、ledger list/detail;只返回本人 holding/ledger/posting 摘要。
  • 验收:真实进度与回购量分开;预计/待结算/待审核/入账中/已入账/冲正分开;公式可解释本金、收益、尾差、退款抵扣和平台风险承担。
  • 测试:三种模式黄金数据、跨节点、到期宽限、未售回购、批次冻结、账本重试/冲正、金额长文本和空持仓。
  • 风险:用活动抢购进度代替二次销售、显示他人持仓、把业务账本当可提现余额。
  • 角色/工期:uni-app 负责人主责,财务后端、产品和 QA 评审,10~15 PD

USR-AG-001 农场、租地、认养与我的权益

  • 目标:交付公开农场、地图、租地/认养目录、下单和真实权益详情。
  • 前置USR-FND-001DES-AG-001BE-AG-001~002
  • 输入文档1418-212530-353740
  • 文件N smartfarm_user/pages/farm/{index,farm_detail,farm_location}.vuepages/farm/land/{index,detail,order_confirm,my_list,order_detail}.vuepages/farm/adoption/{index,detail,order_confirm,my_list,order_detail}.vuecomponents/farm/{ProductionTimeline,FarmLocationCard}.vueR 商品轮播、富文本、支付、地址、uni.openLocation
  • 接口/表/事件/权限:页面 USR-AG-001~003USR-LA-001~005USR-AD-001~005;API public farm/plan、order check/create/pay_result/list/detail、exception plan read/confirm。
  • 验收:公开页不暴露内部容量/联系人;支付后显示待分配而非假地块/动物;详情追踪真实地块或个体/份额、生产、产出和异常;只邮寄。
  • 测试:公开/登录边界、容量不足、支付后待分配、单体/份额、地图拒权/失败、范围撤销后的本人历史可读、异常待确认。
  • 风险:把候选资源展示为已拥有、租地/认养出现云仓按钮、请求用户当前位置阻断查看农场。
  • 角色/工期:uni-app 农业前端主责,农业后端、UI 和 QA 评审,15~22 PD

USR-AG-002 农业产出邮寄、异常确认、溯源与商城扩展

  • 目标:交付共享农业履约、地址/运费/包裹/售后、异常方案确认、溯源公开页和普通商品/订单农业摘要。
  • 前置USR-AG-001BE-AG-004~005
  • 输入文档1418-212530-353740
  • 文件N smartfarm_user/pages/farm/fulfillment/detail.vuepages/farm/trace/detail.vuecomponents/farm/{OutputShipmentCard,TraceArchive}.vueM pages/goods_details/index.vuepages/order_details/index.vuepages/users/order_list/index.vueR api/order.js、地址/物流/退款组件。
  • 接口/表/事件/权限:页面 USR-PD-001USR-TR-001USR-CM-001/002;API fulfillment address/freight/package/take/refund、exception detail/confirm、trace public/target;普通页面只显示摘要和专属入口。
  • 验收:每次发货前确认地址;分包和运费承担清楚;退款显示承诺/已交/历史已退/处理中/本次后端金额;撤回溯源显示说明,不泄露草稿。
  • 测试:包邮/用户主动拆包、部分发货、物流异常、异常确认超时、溯源撤回/材料过期、无农业资料普通商品完全兼容。
  • 风险:把全部农业状态塞进普通订单页、前端计算退款金额、公开未审核过程材料。
  • 角色/工期:uni-app 农业前端主责,履约/溯源后端和 QA 评审,12~18 PD

十五、服务/现场端任务包

SVC-FND-001 服务身份加固、职责范围与双工作区骨架

  • 目标:复用现有客服身份,修复越权读取,建立农业职责/对象范围、静态路由、桌面/移动布局和上下文。
  • 前置BE-FND-003DES-AG-001
  • 输入文档18-2129-353741
  • 文件M smartfarm/app/common/middleware/ServiceTokenMiddleware.phpapp/controller/admin/system/service/StoreService.phpapp/common/repositories/store/service/StoreServiceRepository.phpapp/validate/merchant/StoreServiceValidate.phpapp/controller/service/Service.phproute/service.phpN app/common/middleware/FarmServicePermissionMiddleware.phpcrmeb/services/farm/support/FarmServicePolicy.phpapp/controller/service/farm/Common.phpM smartfarm_service/src/router/index.jssrc/permission.jssrc/store/getters.jssrc/api/request.jssrc/views/login/index.vueN src/router/farm.jssrc/store/modules/farmContext.jssrc/api/{farm,farmReview,farmAttachment}.jssrc/views/entry/index.vuesrc/views/farm/profile/index.vuesrc/layout/farmDesktop/index.vuesrc/layout/farmMobile/index.vueR src/utils/auth.jssrc/views/kefu/pc/index.vue
  • 接口/表/事件/权限:页面 SVC-AU-001~003;API farm/context/me;表 service profile/scope;权限 farm.workspace.access/context.read;中间件顺序固定 Token → FarmPermission → Controller。
  • 验收:无农业档案旧账号仍进原客服页;禁用账号每请求失效;列表先范围后分页;六个旧按 ID 接口越界按不存在;桌面/移动入口按 context 决定。
  • 测试:账号空/重复、状态关闭、Token、商户/平台范围、scope_version 变化、401 与 permission 错误不误清 Token、原三栏客服回归。
  • 风险:建立第二套账号/JWT、动态路由晚于通配、前端守卫代替后端范围。
  • 角色/工期:服务端全栈负责人主责,安全/后端/QA 双审,12~18 PD

SVC-DESK-001 农业桌面查询、异常协同与审核

  • 目标:交付 PC/平板农业订单、云仓订单、异常建议和生产/产出审核桌面。
  • 前置SVC-FND-001BE-CW-004~008 只读契约、BE-AG-003~005
  • 输入文档18-2130-353741
  • 文件N smartfarm/app/controller/service/farm/{FarmOrder,CloudOrder,CloudException}.phpR smartfarm/app/controller/service/farm/FarmReview.phpapp/validate/service/farm/{FarmExceptionValidate,FarmReviewValidate}.php(由 BE-AG-005 交付);N smartfarm_service/src/layout/farmDesktop/components/{FarmSidebar,FarmHeader}.vuesrc/views/farm/desk/order/{index,detail}.vuesrc/views/farm/desk/cloud/{index,detail}.vuesrc/views/farm/desk/exception/{index,detail}.vuesrc/views/farm/desk/review/{index,detail}.vueR Element UI 表格、表单、抽屉、分页和原客服联系能力。
  • 接口/表/事件/权限:页面 SVC-CM-001SVC-CW-001/002SVC-PD-007;API order/cloud order/exception/review;权限 farm.order.readfarm.cloud.order.readfarm.exception.read/proposefarm.production.reviewfarm.output.review
  • 验收:订单关系可追但 PII 默认脱敏;客服只能事实补充/建议;审核人查看原记录和历史,不编辑内容;对象越界统一未找到。
  • 测试:平台/商户客服范围、PII 权限审计、异常建议幂等、审核本人/越界/旧版本、桌面 1366 宽度和无权限菜单。
  • 风险:客服直接改去向/金额/进度、桌面复制平台高风险执行能力。
  • 角色/工期:服务端全栈主责,安全/农业后端/QA 评审,12~18 PD

SVC-WORK-001 移动任务、扫码、证据与离线草稿

  • 目标:建立移动任务入口、二维码解析、范围化附件和“离线草稿但不离线提交”。
  • 前置SVC-FND-001BE-AG-003;扫码依赖兼容 Spike 通过或启用降级方案。
  • 输入文档18212429-353741
  • 文件N smartfarm/app/controller/service/farm/FarmScan.phpapp/validate/service/farm/FarmScanValidate.phpR smartfarm/app/controller/service/farm/{FarmTask,FarmAttachment}.phpapp/validate/service/farm/FarmAttachmentValidate.php(由 BE-AG-003 交付);N smartfarm_service/src/layout/farmMobile/components/{FarmMobileHeader,FarmMobileTabbar,FarmStickyActions}.vuesrc/views/farm/work/task/{index,detail}.vuesrc/views/farm/work/scan/index.vuesrc/views/farm/work/draft/index.vuesrc/views/farm/work/profile/index.vuesrc/components/farm/{FarmObjectSummary,FarmTaskStatus,FarmEvidenceUploader,FarmQrScanner,FarmLocationSummary,FarmScopeChanged}.vuesrc/utils/{tencentMapLoader,farmDraft}.jsM package.jsonpackage-lock.json,精确锁定 @zxing/browser@0.1.5@zxing/library@0.21.3R 原 Token、上传、Iconfont、原生日期/数量控件。
  • 接口/表/事件/权限:页面 SVC-PD-001/002/008、移动 SVC-AU-003;API task/scan/attachment/context;表 task/assignment/evidence;权限 farm.task.read/executefarm.scan.resolvefarm.evidence.upload
  • 验收:摄像头、图片和手工码三路;卸载释放视频流;草稿按账号/对象/schema 隔离 IndexedDB JSON/Blob;恢复时重查 scope/version/task。
  • 测试:Vue 2/Webpack 4 构建、HTTPS 前后摄像头、拒权/无摄像头、图片识别、包体积、账号切换、离线/恢复、存储容量和附件过期。
  • 风险:扫码依赖升级整个项目、离线草稿显示已提交、登出后泄露其他账号草稿。
  • 角色/工期:服务移动前端主责,后端、安全和真机 QA 双审,15~22 PD

SVC-WORK-002 现场生产、产出、仓储、履约、核销与异常

  • 目标:交付过程/健康记录、产出录入、入库、打包、发货、云仓核销和异常上报的移动闭环。
  • 前置SVC-WORK-001BE-CW-005BE-AG-003~005
  • 输入文档1418-2130-353741
  • 文件R smartfarm/app/controller/service/farm/{ProductionEvent,OutputBatch,AssetHealth,Warehouse,CloudPickup,FarmFulfillment,FarmException}.phpapp/validate/service/farm/{CloudPickupVerifyValidate,ProductionEventValidate,OutputBatchValidate,WarehouseReceiveValidate,FarmFulfillmentValidate,FarmExceptionValidate}.php(由 BE-CW-005BE-AG-003~005 交付);N smartfarm_service/src/views/farm/work/production/event.vuesrc/views/farm/work/output/edit.vuesrc/views/farm/work/warehouse/{index,receive}.vuesrc/views/farm/work/fulfillment/{pack,ship}.vuesrc/views/farm/work/pickup/verify.vuesrc/views/farm/work/exception/edit.vuesrc/components/farm/FarmQuantityEquation.vueR FarmEvidenceUploader/FarmQrScanner/FarmObjectSummary
  • 接口/表/事件/权限:页面 SVC-PD-003~006;API event/health/output/warehouse/fulfillment/pickup/exception;权限 farm.production.event.writefarm.asset.health.writefarm.output.writefarm.warehouse.receivefarm.fulfillment.pack/shipfarm.pickup.verifyfarm.exception.report
  • 验收:每个提交绑定任务/对象/范围/版本;数量方程可见;出库和核销生成不可变事实;现场人员只能上报事实和建议,不执行最终退款/回购/账本。
  • 测试:任务转派中提交、范围变化、附件失败、总量不闭合、重复运单、部分核销、离线恢复冲突、严重异常幂等和移动安全区。
  • 风险:现场表单允许自由目标 ID、农业产出进入云仓核销、错误时伪造完成任务。
  • 角色/工期:服务移动前端主责,农业/仓储后端和真机 QA 评审,15~22 PD

十六、测试任务包

QA-FND-001 自动化测试、契约与迁移验证骨架

  • 目标:在业务实现前建立后端单测/集成、接口契约、前端单测和 Playwright E2E 的统一入口及报告。
  • 前置M0BE-FND-001~002 文件契约。
  • 输入文档19-222630-37
  • 文件M smartfarm/composer.jsoncomposer.lock,仅增加与 PHP 8/ThinkPHP 8 兼容并锁定的测试依赖;N smartfarm/phpunit.xmltests/farm/{bootstrap.php,Contract/RouteContractTest.php,Contract/DtoContractTest.php,Migration/SchemaDictionaryTest.php}M smartfarm_admin/package.jsonsmartfarm_mer/package.jsonsmartfarm_service/package.json 的测试脚本,不升级生产依赖;N scripts/qa/{package.json,package-lock.json,playwright.config.js,README.md}scripts/qa/fixtures/{actors,seed-contracts}.jsonscripts/qa/helpers/{api,auth,db-readonly}.jsR 三个管理前端现有 Jest 配置。
  • 接口/表/事件/权限:契约自动比较 19/31/32/34/35/37 的路由、操作、事件、表和页面集合;测试账号覆盖平台高风险拆权、商户员工、用户、六种服务职责。
  • 验收:一条命令可产出单元/契约/E2E 报告;失败返回非零;测试数据可重置;密钥由环境注入;普通项目构建不依赖测试服务。
  • 测试:测试骨架自身故意制造一次路由/字段/表漂移并确认阻断;Windows 与发布 Linux/容器入口均可执行。
  • 风险:测试框架版本与旧前端不兼容、测试直接写共享演示库、报告成功但实际未发现用例。
  • 角色/工期:QA 自动化负责人主责,技术负责人和运维评审,8~12 PD

QA-CRM-001 CRMEB 核心交易与普通商城回归

  • 目标:证明订单策略适配没有破坏普通商品、营销、支付、取消、退款、余额、商户财务和客服。
  • 前置QA-FND-001BE-CRM-001~002
  • 输入文档21 第八节、2931-34
  • 文件N smartfarm/tests/farm/CrmAdapter/{OrderPolicyTest,OrderCreateAdapterTest,PaymentAdapterTest,CancelAdapterTest,RefundAdapterTest,UserPostingTest,MerchantPostingTest}.phpN scripts/qa/tests/crm/{normal-order.spec,mixed-policy.spec,payment-side-effects.spec,cancel-restore.spec,refund-lifecycle.spec,normal-marketing-regression.spec}.jsR CRMEB 现有普通商城接口和测试数据。
  • 接口/表/事件/权限:覆盖 CRM_ORDER_*CRM_REFUND_*、order binding/posting;三策略支付副作用矩阵;普通券/积分/会员/佣金/打印/通知保持原行为。
  • 验收:普通未映射 SKU SQL 和结果无明显退化;混合组前置拒绝;云仓恢复不重复;余额/商户入账幂等。
  • 测试:正常、多商户、普通秒杀/拼团/预售/积分、云仓首次/二次、部分/全额退款、回调重入和账户并发。
  • 风险:只测 HTTP 200、不核对余额/库存/流水;用 Mock 绕开真实 CRMEB Repository。
  • 角色/工期:资深 QA 主责,订单/财务后端评审,15~22 PD

QA-CW-001 云仓供货、活动、首次订单与去向验收

  • 目标:验证从商品资料、供货、活动发布到抢购、付款后待选、三种去向和首次退款的完整切片。
  • 前置QA-FND-001BE-CW-001~005 和对应前端进入 Verify。
  • 输入文档081318-2030-40
  • 文件N smartfarm/tests/farm/Cloud/{ProductAgricultureTest,SupplyLifecycleTest,ActivityPublishTest,PrimaryOrderTest,DispositionRaceTest,FreightRaceTest,PickupVerificationTest}.phpN scripts/qa/tests/cloud/{supply-to-activity.spec,primary-order-pay.spec,continue-shopping.spec,shipping-freight.spec,pickup-partial.spec,auto-consign.spec,primary-refund.spec}.js
  • 接口/表/事件/权限:覆盖 CW-ACT/SUP/ORDER/DISP/FREIGHT/PICKUP/REFUND-*;核对 supply/activity/order/freight/pickup/holding/flow 和事件消费结果。
  • 验收:数量恒等式、付款后继续抢购、稍后选择、截止自动代销、迟到支付退款、部分核销和责任权限均符合契约。
  • 测试:成功、空、错误、无权限、版本冲突、重复请求、双线程争锁、队列延迟和通知去重。
  • 风险:只跑 happy path、没有真实支付回调标准化、活动时间测试依赖人工等待。
  • 角色/工期:云仓 QA 主责,三端前端和后端评审,18~26 PD

QA-CW-002 二次销售、结算、商户货款、回购与故障验证

  • 目标:验证真实二次销售、三种结算、二次退款、用户/商户入账、到期回购和五段对账。
  • 前置QA-CW-001BE-CW-006~008、对应财务前端进入 Verify。
  • 输入文档081320-2131-40
  • 文件N smartfarm/tests/farm/Cloud/{ResaleFefoTest,ProgressMilestoneTest,SettlementGoldenCaseTest,SecondaryRefundTest,BuybackAtomicityTest,MerchantEligibilityTest,StatementPostingTest,ReconciliationTest}.phpN scripts/qa/tests/cloud/{resale-observation.spec,settlement-mode-a.spec,settlement-mode-b.spec,settlement-mode-c.spec,buyback.spec,merchant-statement.spec,reconciliation-repair.spec}.jsN scripts/qa/fixtures/cloud-settlement-golden.json
  • 接口/表/事件/权限:覆盖 CW-SET/BUY/POST/MER-SET/CONC-*、financial posting、ledger、statement、buyback、resale allocation/progress;审核/执行分权。
  • 验收:黄金数据逐分一致;跨节点不重复;二次退款不把用户余额扣负;回购四类事实原子;五段对账能发现并安全修复差异。
  • 测试:FEFO 并发、乱序事件、worker 崩溃、posting 租约、阈值审核、账户并发、回购执行中断、对账原键重放。
  • 风险:只核对汇总不核对不可变流水;依赖浮点计算;为了通过测试直接改期望值。
  • 角色/工期:资深财务/并发 QA 主责,技术负责人和财务后端双审,20~30 PD

QA-AG-001 农业资产、权益、生产、履约、异常与溯源验收

  • 目标:验证租地/认养从真实资产到生产、产出、只邮寄、异常和溯源的完整闭环。
  • 前置QA-FND-001BE-AG-001~005 和对应前端进入 Verify。
  • 输入文档1418-2030-3840-41
  • 文件N smartfarm/tests/farm/Agriculture/{MasterDataScopeTest,LandAllocationRaceTest,AdoptionAllocationRaceTest,ProductionTaskTest,OutputEquationTest,OutputAllocationTest,FulfillmentTest,DeliveryRefundTest,ExceptionPlanTest,TraceVersionTest}.phpN scripts/qa/tests/agriculture/{land-e2e.spec,adoption-individual-e2e.spec,adoption-share-e2e.spec,field-production.spec,output-fulfillment.spec,exception-confirm.spec,trace-public.spec}.js
  • 接口/表/事件/权限:覆盖 LAND/ADOPT/PROD/OUTPUT/FUL/LAND-EX/ADOPT-EX/TRACE-*;核对资源占用、权益、任务、产出库存、履约、异常步骤和公开版本。
  • 验收:5 分钟预留无超卖;任务/证据有范围;产出方程和最大余数分配正确;农业只邮寄;异常方案和溯源版本不可覆盖。
  • 测试:地块时间重叠、动物排他、份额容量、预留超时、转派、减产/绝收/疾病/死亡、部分发货/退款、撤回和材料到期。
  • 风险:用后台直接造最终状态跳过流程、没有设备/移动场景、只测单体不测份额。
  • 角色/工期:农业 QA 主责,农业/服务端后端和各前端评审,20~30 PD

QA-E2E-001 108 页面、15 Flow 与四端构建验收

  • 目标:按页面矩阵和 Figma 逐页验证四端 108 个 P0 页面及 15 条跨端 Flow。
  • 前置QA-CW-002QA-AG-001、所有前端任务进入 Verify。
  • 输入文档18303538-41 和 Figma 高保真。
  • 文件N scripts/qa/tests/e2e/{platform-pages,merchant-pages,user-pages,service-pages,flows-01-15}.spec.jsN scripts/qa/fixtures/page-matrix.jsonscripts/qa/helpers/{visual,accessibility,network-fault}.jsM 四前端项目 package scripts 仅接入 CI 构建命令;R Figma 108 Frame/15 Flow。
  • 接口/表/事件/权限:逐页核对路由、API、权限、allowed_actions、空/加载/错误/无权限;跨端核对事件最终一致,不直接写库。
  • 验收:平台 55、商户 10、用户 29、服务 14 全覆盖;15 Flow 主路径和关键异常通过;桌面/移动截图与高保真在允许差异内。
  • 测试:1366/1440/1920、375/390/430;H5/小程序构建;摄像头/地图/网络降级;长文本、金额、编号、键盘和安全区。
  • 风险:视觉测试替代业务断言、只测 Chrome 桌面、页面编号与自动化用例漂移。
  • 角色/工期:E2E QA 主责,UI 和四端前端评审,20~30 PD

QA-REL-001 性能、安全、恢复与发布准入

  • 目标:完成发布前并发、性能、安全、可观测性、备份恢复、migration 和故障注入准入。
  • 前置QA-E2E-001OPS-002
  • 输入文档20-222631-3738-41
  • 文件N scripts/qa/tests/release/{load-cloud-order.js,load-allocation.js,load-posting.js,security-scope.spec.js,pii-redaction.spec.js,queue-recovery.spec.js,migration-rehearsal.spec.js}N scripts/qa/config/release-thresholds.jsonscripts/qa/reports/.gitkeepR install/upgrade/farm_v1/verify_*.sql 和运维监控。
  • 接口/表/事件/权限:重点为抢购库存、资源分配、FEFO、posting、范围越权、文件上传、Outbox/Job 租约和五段对账。
  • 验收:阈值由发布评审记录固定;无超卖/重复入账/越权;worker/Redis/支付/地图/存储短故障可恢复;升级副本和全新库结果一致。
  • 测试:并发峰值、慢 SQL、队列积压、进程中断、回调重放、附件恶意类型、ID 枚举、日志敏感信息、应用回退保留数据。
  • 风险:用生产库压测、只测平均响应、不验证失败后的账实一致。
  • 角色/工期:QA 负责人主责,运维/DBA/安全/技术负责人签字,12~18 PD

十七、运维任务包

OPS-001 环境、四队列、Worker 与密钥注入

  • 目标:建立开发/测试/预发布一致的农业开关、四队列 worker、超时、日志和地图/支付/存储密钥注入方式。
  • 前置BE-FND-002~004
  • 输入文档20-21293234
  • 文件M smartfarm/config/queue.phpconfig/farm.php.example.envDockerfileinstall/upgrade/farm_v1/process/supervisor-farm.conf.exampleM config/swoole.php 仅在部署决策选择该模式时;N scripts/qa/env/{development,test,staging}.env.exampleR 现有默认队列、Swoole 和配置读取能力。
  • 接口/表/事件/权限:四队列 farm-critical/business/notification/maintenance;环境只注入 provider key、队列连接、功能开关和阈值,不在 SQL/前端/仓库保存真实值。
  • 验收:四队列可独立扩缩容和停启;普通队列不受农业积压拖累;配置缺失时高风险写入口关闭并告警,公开只读按降级规则工作。
  • 测试:每队列投递/消费、进程重启、优雅停止、错误日志、无 Key 地图降级、配置掩码和密钥轮换。
  • 风险:所有 worker 共用一个进程、真实密钥入库/日志、Docker 与 supervisor 行为漂移。
  • 角色/工期:运维主责,后端基础设施和安全评审,8~12 PD

OPS-002 日志、指标、告警、对账与处置手册

  • 目标:让订单、库存、权益、账本、事件和任务失败可被发现、定位、重试和交班。
  • 前置OPS-001BE-CW-008BE-AG-005
  • 输入文档202232-3438-41
  • 文件M smartfarm/config/farm.phpinstall/upgrade/farm_v1/README.mdN smartfarm/scripts/farm_v1/{health_check.php,queue_lag_check.php,posting_recovery_check.php,reconciliation_check.php}N scripts/qa/runbooks/{queue-backlog,posting-failure,inventory-difference,payment-late-callback,allocation-conflict,trace-withdrawal}.mdR 现有日志、Redis、数据库监控和通知渠道。
  • 接口/表/事件/权限:指标至少覆盖 Outbox 待发/最老时长、消费失败、Job 租约、队列积压、支付/退款修复、posting、库存/权益恒等式、异常 SLA;只读脚本不直接修复数据。
  • 验收:每个 P0 告警有阈值、责任人、操作号查询、止损、恢复、复核和升级路径;日志带 trace_id/event_id/run_key/posting_key 且 PII 脱敏。
  • 测试:人工注入队列积压、posting 失败、库存差异、地图/存储超时;值班人员仅按手册可定位并安全转交。
  • 风险:告警只发不闭环、脚本兼具查询和修改、日志记录支付/用户敏感信息。
  • 角色/工期:运维主责,QA/技术负责人/业务值班评审,10~15 PD

OPS-003 migration、发布、应用回退与交接演练

  • 目标:在全新库和脱敏升级副本执行完整发布,验证应用回退但保留业务表的生产边界。
  • 前置QA-REL-001、所有里程碑验收通过。
  • 输入文档21-22263438-41
  • 文件M smartfarm/install/upgrade/farm_v1/README.mdverify_before.sqlverify_after.sqlN scripts/qa/runbooks/{release-checklist,migration-rollback-boundary,application-rollback,post-release-hypercare}.mdscripts/qa/release/{capture-baseline.ps1,verify-deployment.ps1}R 五个仓库发布分支、备份系统和现有部署流程。
  • 接口/表/事件/权限:发布顺序为停写/备份/preflight/schema/index/menu/config/应用/worker/verify/开入口;业务事实产生后禁止 drop 回滚;入口可停用、worker 可暂停、数据保留。
  • 验收:记录五仓库 SHA、SQL 哈希、备份恢复点、执行人/复核人、耗时和验证结果;普通商城烟测、15 Flow 冒烟、队列追平、五段对账零差异。
  • 测试:升级中途失败、应用版本回退、worker 滚动重启、菜单重复执行、配置缺失、备份恢复抽查和 72 小时重点监控交接。
  • 风险:把 down SQL 当生产常规回退、多个仓库版本错配、发布成功但 worker 未启动。
  • 角色/工期:运维/DBA 主责,技术负责人、QA 和产品签字,10~15 PD

十八、垂直切片交付矩阵

每个垂直切片必须同时具备后端事实、至少一个真实操作端、一个结果查看端和自动化测试。只完成某一端的列表页或只创建数据库表不构成可演示切片。

切片 后端 平台端 商户端 用户端 服务端 QA 可演示完成定义
技术骨架 BE-FND-*BE-CRM-* ADM-FND-001 MER-FND-001 USR-FND-001 SVC-FND-001 QA-FND-001QA-CRM-001 普通商城回归、空 migration、四队列、五端鉴权与 Mock 契约
商品与供货 BE-CW-001/002 ADM-CW-001 MER-CW-001 商品农业资料只读 供货责任只读 QA-CW-001 商户资料/供货 → 平台审核/验收 → 数量链和责任快照
活动与首次购买 BE-CW-003/004 ADM-CW-001/002 供货活动占用只读 USR-CW-001 云仓订单只读 QA-CW-001 发布活动 → 用户抢购付款 → 继续抢购 → 订单中心待选
去向与首次履约 BE-CW-005 ADM-CW-002 MER-CW-002 责任履约 USR-CW-002 SVC-WORK-002 核销 QA-CW-001 邮寄/自提/代销三选一、迟到运费退款、部分核销
二次销售与用户收益 BE-CW-006/007 ADM-CW-002/003 货款只读 USR-CW-003 云仓查询 QA-CW-002 普通订单真实售出 → 观察期 → 进度 → 三种账本 → 入账
商户货款与回购 BE-CW-007/008 ADM-CW-003 MER-CW-002 USR-CW-003 异常协同 QA-CW-002 首次资格 → 日结单 → 商户余额;到期宽限 → 审核回购
农业资产与权益 BE-AG-001/002 ADM-AG-001/002 无业务入口 USR-AG-001 订单查询 QA-AG-001 套餐 → 支付 → 预留 → 真实地块/个体/份额
生产与产出 BE-AG-003/004 ADM-AG-003 无业务入口 权益详情时间线 SVC-WORK-001/002 QA-AG-001 任务 → 现场记录 → 审核 → 产出质量 → 权益分配
邮寄、异常与溯源 BE-AG-004/005 ADM-AG-003 无业务入口 USR-AG-002 SVC-DESK-001SVC-WORK-002 QA-AG-001 地址/包裹/退款、异常方案确认、不可变溯源公开

十九、建议双周迭代序列

下表是推荐排期模板,不依赖具体日期。项目经理根据实际到岗人数只调整并行度,不改变前置顺序和里程碑退出条件。

迭代 主目标 Ready 候选任务 集成/演示
S00 低保真人工评审与视觉基线 DES-001 四端真实参考页
S01 高保真母版、契约和 G6 DES-002BE-FND-001 的评审准备 启动评审,不写业务代码
S02 migration 与测试骨架 BE-FND-002QA-FND-001OPS-001 空库 up/down/up、契约检查
S03 支撑层与事件骨架 BE-FND-003/004 幂等、Outbox、队列故障恢复
S04 CRMEB 订单策略 BE-CRM-001/002QA-CRM-001 普通/首次/二次三策略回归
S05 前端基础与商品农业资料 ADM-FND-001MER-FND-001USR-FND-001SVC-FND-001BE-CW-001DES-CW-001 五端壳、商品资料审核
S06 云仓供货与农业主数据 BE-CW-002BE-AG-001ADM-AG-001MER-CW-001DES-AG-001 供货数量链、农场资产
S07 活动发布与权益套餐 BE-CW-003ADM-CW-001BE-AG-002ADM-AG-002 活动发布、租地/认养套餐
S08 首次抢购与用户农业权益 BE-CW-004USR-CW-001USR-AG-001 抢购付款稍后选择、真实权益待分配
S09 去向、运费、自提 BE-CW-005ADM-CW-002USR-CW-002 三种去向与竞态演示
S10 二次库存与现场任务 BE-CW-006BE-AG-003SVC-WORK-001 FEFO、任务/扫码/离线草稿
S11 用户结算与农业产出 BE-CW-007USR-CW-003BE-AG-004SVC-WORK-002 三种结算、产出与邮寄
S12 商户货款、回购与农业异常 BE-CW-008ADM-CW-003MER-CW-002BE-AG-005 日结单/回购、异常/溯源
S13 农业前端闭环 ADM-AG-003USR-AG-002SVC-DESK-001 生产到邮寄、异常和溯源
S14 云仓领域验收 QA-CW-001/002 云仓端到端及故障演练
S15 农业领域验收 QA-AG-001 租地、认养、生产、邮寄闭环
S16 108 页面与 15 Flow QA-E2E-001OPS-002 全端 UAT 和视觉/设备矩阵
S17 性能、安全和恢复 QA-REL-001 并发、越权、队列和 migration 演练
S18 RC1 发布演练 OPS-003 全新库、升级副本、应用回退
S19 缺陷收敛与正式候选 只接 P0 阻断缺陷 RC2、教程核对和签字

首次组建团队建议额外保留 S20~S23 四个缓冲迭代,但缓冲不能提前分配新范围;只用于学习曲线、真实设备、跨端返工和发布缺陷。

二十、跨仓库集成包

任一涉及多个项目的任务进入 Review 时,负责人必须提供一个“集成包”,至少包含:

项目 必填内容
基线 五个相关仓库的目标分支和基线 SHA
契约 API 路由、DTO schema、错误码、操作码和版本
数据 migration 组、测试数据创建方式、不可手工修改的事实
事件 事件名/版本、消费者、Job、运行键、重试和最终一致等待方式
权限 测试角色、route name/permission code、对象范围和预期拒绝
前端 页面编号、Figma 节点、路由、API 文件和状态清单
测试 自动化用例、人工 Given/When/Then、并发/故障场景
运行 环境变量名、队列、worker、日志检索键和告警
回归 受影响普通 CRMEB 功能和已执行结果

接口 Mock 只能来自已冻结 DTO,Mock 响应必须包含真实 status/version/allowed_actions/warnings。前端自造一个与后端不同的“临时字段”会使任务退回 Not Ready。

二十一、角色职责与升级路径

决策/问题 直接负责 必须参与 最终决定
业务规则、文案和验收 产品负责人 业务运营、QA、设计 产品负责人
API、事务、事件和状态 对应后端负责人 前端、QA、技术负责人 技术负责人
表、索引、migration 和回退边界 后端/DBA QA、运维 技术负责人 + DBA
Figma、交互和组件复用 UI/UX 对应前端、产品 产品负责人 + 前端负责人
权限、PII 和上传安全 安全评审人/技术负责人 后端、QA、运维 技术负责人
测试范围和发布准入 QA 负责人 全端、产品、运维 QA 负责人
部署、监控和故障处置 运维/DBA 技术负责人、QA 发布负责人

阻塞升级时限:

  • 影响当前任务但有替代工作:当天登记,下一次契约同步处理。
  • 影响关键路径、数据安全或普通商城:2 小时内通知技术负责人。
  • 发现超卖、重复入账、越权、数据丢失或生产密钥泄露:立即停相关入口和 worker,按事故流程处理,不等待站会。

二十二、变更控制

  1. 变更单必须写明旧规则、新规则、原因、受影响决策/页面/API/表/事件/文件/测试和已产生业务数据的兼容方案。
  2. 只改文案且不影响状态、字段和验收的变更,可由产品 + UI/前端确认。
  3. 影响金额、库存、权益、退款、状态迁移、权限、迁移或已发布快照的变更,必须由产品、技术负责人、QA 和对应业务负责人共同批准。
  4. 进入 M8 后原则上冻结 P0 范围;新增功能进入下一版本。只接受阻断上线、数据错误、安全或监管必需的变更。
  5. 已合并 migration 不改历史文件语义;新增前滚脚本。已发布 API/事件不原地改变含义;增加版本或兼容字段。
  6. 任何“临时直接改库”都不是修复方案。先止损、生成异常/调整/冲正或前滚修复,再留下审计和验证证据。

二十三、任务领取模板

在任务系统创建卡片时直接复制以下模板:

任务 ID:
目标:
负责人:
代码/设计评审人:
QA:
里程碑/迭代:
前置任务:
输入文档版本:
页面/Figma:
N 文件:
M 文件:
R 文件:
API/操作码:
表/字段/索引:
事件/Job/Timer:
权限/数据范围:
正常验收 Given/When/Then:
异常/并发/故障验收:
普通 CRMEB 回归:
测试文件与命令:
环境/第三方依赖:
预计 PD:
实际 PD:
风险与回退:
证据链接:

任务拆分后,父任务只做进度汇总,不直接标 Done;所有子任务 Done 且垂直切片验收后父任务才关闭。

二十四、开发启动前最后检查

以下项目仍以 26 的实时状态为准;任一未完成时,本文中的业务实现任务保持“计划中”:

  • G1-G5 已完成 Codex 自主预审,不再是“草案完成”或“进行中”。
  • 108 个低保真页面和 15 条 Flow 已完成人工业务评审。
  • CRMEB 风格高保真、组件复用和交接标注完成,见 45 和 Figma RC-1。
  • 19/31/32/33/34/37 的集合和命名自动比对无漂移。
  • 90 表 migration 已通过 DBA 设计评审,但尚未写入生产业务数据。
  • 第三方地图、支付、物流、存储的测试环境、Key 用途和降级已确认。
  • 五个仓库冻结基线 SHA,已有变更已归属且不被本项目覆盖。
  • 测试账号角色和对象范围、测试数据工厂、脱敏升级副本可用。
  • 队列、Redis、对象存储、日志和预发布环境容量可用。
  • 53 张任务卡已导入任务系统,负责人/评审人/QA 和第一迭代容量已确认。
  • 开发启动评审有会议记录、结论和签字。

法律、税务和正式会计科目不作为当前开发启动阻塞项;上线运营前另行完成,不在开发中临时扩展本文范围。

二十五、覆盖与完成审计

审计项 基线 本文落点
P0 页面 108 平台 55、商户 10、用户 29、服务 14,分别进入前端任务和 QA-E2E-001
跨端 Flow 15 DES-CW-001DES-AG-001QA-E2E-001
农业业务表 90 BE-FND-002 migration;各领域后端卡负责 Model/DAO/Repository 和事务
migration 分组 12 BE-FND-002OPS-003
写操作 31 唯一集合为准 分配至 BE-CRM/CW/AG-*,由 QA-FND-001 静态比对
事件/Job/Timer 32 唯一集合为准 BE-FND-004 和领域后端卡,OPS-002 监控
端/职能分包 8 设计、后端、平台、商户、用户、服务、测试、运维
可领取任务 53 每张均有唯一 ID、前置、输入、文件、契约、验收、测试、风险、角色和 PD

最终完成判定:

  1. 53 张任务卡全部 Done 或由正式变更单移出 V1。
  2. 所有里程碑退出证据齐全,关键路径没有跳过项。
  3. 108 页面、15 Flow、90 表、全部写操作和事件任务的自动覆盖检查为零缺口。
  4. 普通商城回归、五段对账、全新库/升级副本 migration、应用回退和故障恢复均通过。
  5. 平台管理员、商户、用户、客服/现场四类手册已用正式页面复核并完成交接。

Clone this wiki locally