-
Notifications
You must be signed in to change notification settings - Fork 0
42 v1 development task packages
状态:开发启动前排期基线,尚未授权编写业务代码
本文档把 SmartFarm V1 已冻结的业务、页面、接口、事件、状态、数据库和文件蓝图转换为可直接排期、领取、评审和验收的工作包。任务卡是实施入口,不替代专题契约;发生冲突时按本文“输入与优先级”回到来源文档处理,不在开发过程中临时发明规则。
-
26-pre-development-master-checklist.md中G1-G5全部通过、完成开发启动评审并冻结五个项目基线提交后,实施任务才可从“计划中”转为“可领取”。 - 在开发启动评审前,只允许继续评审文档、Figma、测试方案和发布方案;不得依据本文提前修改业务代码、数据库业务数据或演示配置。
- 首批开发顺序固定为“契约与技术骨架 → migration → 支撑层 → CRMEB 交易适配 → 垂直业务切片 → 四端联调 → 发布演练”。
- 所有数据库变更只通过版本化 migration;所有状态、金额、库存、权益和余额变化只通过领域命令;禁止手工 SQL 修业务事实。
- 一张任务卡只有一个直接负责人。跨端工作用相互依赖的任务卡协作,不用多人共同拥有一张无法验收的大卡。
- 本文中的文件均为计划文件。
N/M/R不表示当前已经存在或已经完成。
每张任务卡必须至少读取其“输入文档”栏。全局事实优先级如下:
-
12-v1-business-decisions-and-glossary.md:业务规则和术语。 -
24-g3-g4-decision-register.md:技术与 UI 决策状态。 -
31-v1-write-operation-contract-registry.md:写操作、事务、锁、幂等和返回。 -
33-v1-state-exception-transaction-matrix.md:状态迁移、异常和反向处理。 -
34-v1-database-field-dictionary.md:物理表、字段、索引和迁移分组。 -
37-v1-api-field-contract-registry.md:请求/响应 DTO 和禁止字段。 -
19-v1-api-contract-draft.md、32-v1-event-job-operation-registry.md:路由、事件、Job 和调度。 -
30-v1-p0-page-matrix.md、35-v1-page-api-file-trace.md:页面字段、动作、API 和代码落点。 -
21-v1-code-change-blueprint.md:文件边界与 CRMEB 扩展点。 -
05-v1-scope-prd.md、18-v1-page-and-prototype-spec.md、28-v1-requirement-traceability-matrix.md、29-g3-technical-spike-report.md、36-v1-er-diagrams.md、38-41四类使用手册:范围、原型、追踪、源码证据、关系和真实操作口径。
同一规则发生冲突时,任务负责人暂停该任务,把冲突提交给产品负责人和技术负责人;修正权威来源后再继续。禁止只改当前实现或只在 PR 评论中决定。
| 标记 | 含义 |
|---|---|
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}.php、smartfarm/app/common/dao/farm/cloud/{CloudSupplyDao,CloudBatchDao}.php、smartfarm/app/common/repositories/farm/cloud/{CloudSupplyRepository,CloudBatchRepository}.php。 -
TJ({CloudActivityStatus,CloudUnpaidRelease})精确展开为smartfarm/crmeb/listens/farm/timer/{CloudActivityStatusListen,CloudUnpaidReleaseListen}.php和smartfarm/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/。任务导入系统时应展开为完整工作区相对路径。
-
1 PD为一名熟悉对应技术栈的工程师一个完整工作日,不含等待外部评审时间。 - 建议工期是“实现 + 自测 + 修订 + 代码评审”的范围,不含任务前置未完成的等待。
- 首次参与 CRMEB/ThinkPHP、Vue 2 或 uni-app 的成员,估算乘以
1.3~1.6。 - 高风险迁移、支付、退款、库存、账本和权限任务不得用加班压缩双人复核。
计划中 → 待澄清 → 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~004、QA-FND-001、OPS-001
|
M0 |
契约检查、全新库空迁移、四队列空跑、无业务页面 |
M2 CRMEB 交易适配 |
先解决订单组策略、支付、取消、退款和正式入账边界 |
BE-CRM-001~002、QA-CRM-001
|
M1 |
普通/云仓首次/云仓二次三类策略回归通过 |
M3 云仓供货与活动切片 |
从商品农业资料到验收、活动发布和库存闭合 |
BE-CW-001~003、ADM-CW-001、MER-CW-001、QA-CW-001
|
M2 |
商户供货 → 平台验收 → 活动发布 → 未抢库存闭合演示 |
M4 云仓首次购买与去向切片 |
完成抢购、付款后稍后选择、邮寄、自提、代销 |
BE-CW-004~005、ADM-CW-002、USR-CW-001~002
|
M3 |
付款后继续抢购、待选找回、三种去向和超时竞态演示 |
M5 云仓二次销售与财务切片 |
完成真实二次销售、三种结算、商户货款和回购 |
BE-CW-006~008、ADM-CW-003、MER-CW-002、USR-CW-003、QA-CW-002
|
M4 |
25/50/75/100 节点、退款冲减、日结单、入账和到期回购闭环 |
M6 农业资产与权益切片 |
完成主数据、租地/认养套餐、下单和真实分配 |
BE-AG-001~002、ADM-AG-001~002、USR-AG-001、QA-AG-001 前半 |
M2 |
用户购买 → 5 分钟预留 → 真实地块/资产/份额确认 |
M7 生产、产出与履约切片 |
完成任务、现场记录、产出、邮寄、异常和溯源 |
BE-AG-003~005、ADM-AG-003、USR-AG-002、SVC-*、QA-AG-001
|
M6 |
生产任务 → 产出验收 → 权益分配 → 邮寄 → 溯源/异常闭环 |
M8 全端集成与非功能验证 |
108 页面、15 Flow、权限、并发、故障和普通商城回归 |
QA-E2E-001、QA-REL-001、OPS-002
|
M5、M7
|
UAT、性能、安全、可观测性、故障恢复和构建矩阵通过 |
M9 发布演练与交接 |
在全新库和升级副本完成可回退发布 | OPS-003 |
M8 |
发布记录、回退边界、监控值班、四类教程和签字 |
M3~M5 与 M6~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"]
主关键路径固定为:
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 | 负责交易适配、数据和跨端契约 |
| 后端 | 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 人时不要同时打开云仓和农业两条主线;先完成一个可演示闭环,再复用基础设施进入下一条。
| 分包 | 任务数 | 建议工作量 |
|---|---|---|
| 设计 | 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 周管理承诺。该区间在任务完成拆分和团队能力评估后滚动修正,不作为销售承诺。
| 节奏 | 时长 | 必须产物 |
|---|---|---|
| 双周迭代计划 | 每两周首日上午 90 分钟 | Ready 任务、负责人、评审人、容量和演示目标 |
| 每日站会 | 15 分钟 | 昨日证据、今日动作、阻塞;不现场讨论方案 |
| 契约同步 | 每周二/四各 30 分钟 | API/表/事件/页面差异和冻结结果 |
| 中期集成 | 每周三 | 合并到集成环境,提前发现跨仓库问题 |
| PR 评审时段 | 每工作日固定两次 | 评审不超过 1 个工作日积压 |
| 周演示 | 每周五 45 分钟 | 使用真实角色和真实状态演示垂直切片 |
| 迭代评审/复盘 | 双周末 90 分钟 | 验收结果、缺陷、估算偏差和下一轮改进 |
任务领取步骤:
- 领取人逐项检查 DoR,在任务系统粘贴本卡链接和输入版本。
- 指定一名代码/设计评审人和一名 QA 验收人。
- 记录涉及五个仓库的基线 SHA、Figma 节点和 Mock/环境。
- 创建一个主任务分支;跨仓库工作分别创建同 ID 分支并互相链接。
- 每天只更新状态、证据和阻塞,不在聊天中改变业务规则。
任务进入 Ready 前必须全部满足:
- 任务 ID、目标、唯一负责人、评审人和 QA 已确定。
- 前置任务均 Done,或提供经技术负责人批准的稳定 Mock。
- 输入文档版本、业务决策、页面编号和 Figma 节点已固定。
- API 路由、DTO、错误码、幂等键和版本字段已固定。
- 写任务的事务写集、锁顺序、状态迁移、事件和补偿已固定。
- 表、列、索引、唯一键和 migration 分组已固定。
- 文件 N/M/R 清单已展开,不存在“开发时再找文件”。
- 权限码、平台/商户/用户/服务数据范围和 PII 裁剪已固定。
- 正常、空、加载、错误、无权限、并发和关键异常验收已写出。
- 测试数据、依赖服务、环境变量和第三方降级路径可用。
- 估算不超过一个双周迭代;超过则按可独立验收结果继续拆卡。
任务只有同时满足以下条件才可 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、用户完整隐私或生产数据进入代码、日志和测试附件。
- 五个独立仓库均保护
main/master和发布分支,不允许直接 push。 - 建议集成分支统一为
develop/smartfarm-v1;任务分支为feature/<TASK-ID>-short-name,修复为fix/<TASK-ID>-short-name,发布为release/smartfarm-v1-rc.N。 - 同一任务跨仓库时使用相同任务 ID,例如五个仓库都使用
feature/USR-CW-001-cloud-order,PR 相互链接。 - Commit 使用
<TASK-ID>: 动词 + 结果;migration、生成锁文件和格式化改动单独提交。 - 一个 PR 只交付一个可验收目标。建议生产代码不超过 500 行净变更;超出时按 migration、持久化、领域服务、接口或页面状态拆分。
- 任何 PR 不得夹带无关重构、依赖升级、格式化全仓或用户已有改动。
- 普通任务至少一名同方向评审人;CRMEB 核心适配、migration、余额、账本、回购、退款、权限范围至少两名评审人,其中一名为技术负责人。
- 提交者不能批准自己的高风险审核逻辑;活动编辑/发布、账本审核/执行、回购审核/执行的职责分离也要体现在测试账号中。
- CI 必须先通过静态检查、契约检查、单元/接口测试、前端构建和 migration 空库验证,再允许合并。
- 合并后由 QA 在集成环境 Verify;失败回到原任务,不另开一张掩盖未完成工作的“联调卡”。
- 业务规则变更先走变更单,更新
12/24/31/33/34/37和受影响任务,再改代码。已完成任务重新评估,不静默扩大范围。
- 目标:用当前 CRMEB 真实页面固定平台、商户、用户 uni-app、服务/现场端的字体、间距、表格、表单、导航、状态和移动安全区,不重做整套视觉。
-
前置:无;属于
M0。 -
输入文档:
18、23、25、26、30、38-41。 -
文件/节点:
MFigma 正式文件01 References、02 Components & Tokens;Rsmartfarm_admin/src/、smartfarm_mer/src/、smartfarm_user/components/、smartfarm_service/src/的真实登录态页面和现有组件。 - 接口/表/事件/权限:只读检查;不得写数据库、接口或演示配置;截图必须标页面编号、版本、时间和脱敏状态。
- 验收:四端至少各 3 个代表页面;桌面列表/详情/编辑、用户 H5/小程序、服务桌面/移动均有标注;明确 R/E/N 组件结论。
- 测试:Figma 节点重名、尺寸、溢出、敏感信息自动检查;人工对照真实页面。
- 风险:使用未登录空壳或社区模板导致风格漂移;截图泄露个人信息。
-
角色/工期:UI/UX 主责,产品和各端前端评审,
3~5 PD。
- 目标:建立不脱离 CRMEB 的共享组件变量、状态矩阵和开发标注,覆盖正常、加载、空、错误、无权限、版本冲突、冻结和长文案。
-
前置:
DES-001。 -
输入文档:
18、30、33、35、37。 -
文件/节点:
MFigma02 Components & Tokens;NHF/Desktop List、HF/Desktop Detail、HF/Desktop Form、HF/Mobile Page、HF/State Panel组件集;R低保真四类母版。 -
接口/表/事件/权限:绑定
status、allowed_actions、warnings、version和字段来源;不把视觉文案变成新状态码。 - 验收:颜色、字号、间距、表格密度、按钮层级、金额/数量、确认弹窗和状态标签均有 token;组件注明对应现有组件或新文件。
- 测试:375/390/430 移动宽度与 1366/1440/1920 桌面宽度;最长编号、金额、中文状态和错误文案不溢出。
- 风险:组件过度抽象、卡片套卡片、用户端与后台端强行同一布局。
-
角色/工期:UI/UX 主责,各端前端评审,
5~8 PD。
- 目标:完成供货、活动、抢购、付款后继续抢购、稍后选去向、二次销售、结算和回购的跨端高保真。
-
前置:
DES-002,BE-FND-001契约草案可供标注。 -
输入文档:
05、18-21、30-35、37-40。 -
文件/节点:
MFigma 中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-002,BE-FND-001契约草案可供标注。 -
输入文档:
05、18-21、30-37、38、40、41。 -
文件/节点:
MFigma 中ADM-AG/LA/AD/PD/TR-*、USR-AG/LA/AD/PD/TR-*、SVC-*共 64 个页面 Frame 及相应FLOW-*;N5 分钟预留、份额容量、离线草稿、异常确认、分包邮寄和地图降级子 Frame。 -
接口/表/事件/权限:标注
farm/agriculture|land|adoption|production|output|fulfillment|exception|trace/*、职责权限码和对象范围;租地/认养产出只邮寄。 - 验收:真实地块/资产/份额、权益、任务、产出、包裹和溯源关系可追;服务桌面与移动作业不混成同一布局。
- 测试:H5/小程序和移动浏览器尺寸;拒绝定位、拒绝相机、离线、范围变化、数量方程失败和异常超时均有降级。
- 风险:把示意图当 GIS 面积、把候选当正式占用、把现场建议画成最终审批。
-
角色/工期:UI/UX 主责,农业产品、平台/用户/服务端前端和 QA 评审,
10~15 PD。
- 目标:在不实现业务写入的前提下建立统一路由、DTO 验证边界、稳定状态/错误常量和四端异步操作详情壳。
-
前置:
M0、G6 通过。 -
输入文档:
19-21、31-33、35、37。 -
文件:
Nsmartfarm/route/admin/{farm_cloud,farm_agriculture}.php、route/merchant/farm_cloud.php、route/api/farm.php;Mroute/service.php;Ncrmeb/services/farm/constants/{CloudActivityStatus,CloudBatchStatus,CloudDisposition,CloudInventoryPool,CloudSettlementMode,CloudLedgerStatus,FarmOrderStatus,ProductionStatus,TracePublishStatus,FarmCoordinateSystem,FarmErrorCode}.php;Napp/controller/admin/farm/support/FarmOperation.php、app/controller/merchant/farm/support/FarmOperation.php、app/controller/api/farm/support/FarmOperation.php、app/controller/service/farm/FarmOperation.php;R现有 route/Validate/response 基类。 -
接口/表/事件/权限:注册
19/37路由名、CommandMeta/VersionedCommand/ReasonCommand;仅接eb_farm_async_operation的后续接口,不提前建表;每个写路由预留唯一权限 route name。 - 验收:路由静态扫描无冲突;公开、登录、平台、商户和服务中间件分组正确;所有未实现写接口明确返回开发期禁用错误,不返回假成功。
-
测试:路由清单与
19/35/37双向比对;DTO 禁止字段和错误码快照;普通路由回归。 - 风险:先写空 Controller 后被误当完成;路由顺序吞掉服务端静态路由。
-
角色/工期:后端技术负责人主责,QA/安全评审,
6~9 PD。
-
目标:按
M01~M12建立 90 张农业表、CRMEB 必要兼容扩容、索引、菜单和配置的可验证升级包。 -
前置:
BE-FND-001;数据库字段字典冻结。 -
输入文档:
21、29、31-37。 -
文件:
Nsmartfarm/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};Nsmartfarm/install/upgrade/farm_v1/process/supervisor-farm.conf.example;Msmartfarm/config/queue.php、.example.env、Dockerfile;Nsmartfarm/config/farm.php;Mconfig/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。
- 目标:先落幂等、Outbox、消费日志、任务运行、审计、状态迁移、异步操作、范围、证据和正式入账的通用能力。
-
前置:
BE-FND-002。 -
输入文档:
20、21、31-37。 -
文件:
NP3(support; {FarmOrderBinding,FarmIdempotencyRecord,FarmDomainOutbox,FarmEventConsumeLog,FarmJobRun,FarmNotificationLog,FarmAuditLog,FarmStateTransition,FarmAsyncOperation,FarmAdminScope,FarmServiceProfile,FarmServiceScope,FarmEvidenceAttachment,FarmFinancialPosting});Ncrmeb/services/farm/support/{FarmIdempotencyService,FarmOutboxService,FarmAuditService,FarmNotificationService,FarmMoneyService,FarmStateMachineService,FarmAsyncOperationService,FarmAdminScopeService,FarmEvidenceAttachmentService}.php;RUploadService、Attachment Repository 和现有事务工具。 -
接口/表/事件/权限:表为
eb_farm_order_binding、idempotency_record、domain_outbox、event_consume_log、job_run、notification_log、audit_log、state_transition、async_operation、admin_scope、service_profile/scope、evidence_attachment、financial_posting;事件farm.admin.scope.changed;权限FARM_ADMIN_SCOPE_SAVE、farm.evidence.upload。 - 验收:HTTP 幂等同请求同响应、异请求冲突;Outbox 与业务事务同成败;范围越界对外 not found;附件从临时到原子绑定;状态迁移不可绕过。
- 测试:唯一键重放、租约抢占、两消费者并发、范围全量替换版本冲突、附件过期/越界、金额与最大余数算例。
- 风险:错误的“通用 Repository”泄漏租户;Model 事件隐式写余额;Outbox 提交前投递。
-
角色/工期:资深后端主责,安全/QA/技术负责人评审,
12~18 PD。
- 目标:建立四队列、Outbox 分发、Timer Listen → Job → Service 三层骨架和稳定运行记录,不在监听器中直接写领域状态。
-
前置:
BE-FND-003、OPS-001。 -
输入文档:
20、21、32、34。 -
文件:
Msmartfarm/app/event.php;Ncrmeb/listens/farm/domain/{CloudActivityDomainListen,CloudSupplyDomainListen,CloudPrimaryOrderDomainListen,CloudResaleDomainListen,CloudBatchDomainListen,FarmFinanceDomainListen,FarmRightsDomainListen,FarmProductionDomainListen,FarmFulfillmentDomainListen,FarmExceptionDomainListen,FarmTraceDomainListen,FarmAuditProjectionListen}.php;Ncrmeb/jobs/farm/{PublishFarmDomainEventJob,SendFarmNotificationJob,FarmFailedJobAlertJob}.php;Ncrmeb/listens/farm/timer/{FarmOutboxDispatchListen,FarmFailedJobAlertListen}.php;R现有TimerService、JobInterface和队列连接。 -
接口/表/事件/权限:读取
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。
-
目标:把 CRMEB 订单安全地声明为
normal/cloud_primary/cloud_resale/land/adoption,保证同一订单组单一财务策略并在创建事务内绑定。 -
前置:
BE-FND-003。 -
输入文档:
19-21、29、31、34、37。 -
文件:
Nsmartfarm/crmeb/services/farm/support/FarmOrderPolicyResolver.php;Mapp/common/repositories/store/order/{StoreOrderCreateRepository,MerchantOrderCreateRepository,PointsOrderCreateRepository}.php;Ncrmeb/services/farm/cloud/{CloudSourceSkuMatcher,CloudResaleAllocationService}.php的接口骨架;RStoreOrderProductRepository.php、Product/ProductAttrValue Repository。 -
接口/表/事件/权限:操作
CRM_ORDER_GROUP_POLICY_CHECK、CW_CART_FINANCE_POLICY_MIXED;写eb_farm_order_binding,二次订单预留后续写cloud_resale_allocation;cloud_only禁止商户代客下单和积分兑换。 - 验收:混合 finance policy 在确认/创建阶段拒绝;普通 SKU 不增加全表查询;映射 SKU 创建失败时普通订单和 FEFO 预留一起回滚。
- 测试:普通单、多商户普通单、云仓首次、二次 SKU、混合购物车、重复创建、批量插入明细回查和 SQL 基线。
-
风险:只按子订单校验导致组级副作用串线;把
value_id当稳定业务主键。 -
角色/工期:技术负责人主责,订单域后端和 QA 双审,
10~15 PD。
- 目标:在 CRMEB 核心事务发生错误普通副作用前完成策略分流,并提供用户/商户正式入账和冲正服务。
-
前置:
BE-CRM-001、BE-FND-004。 -
输入文档:
20、21、29、31-34、37。 -
文件:
Ncrmeb/services/farm/support/{FarmOrderPaymentAdapter,FarmOrderCancelAdapter,FarmOrderRefundAdapter,FarmUserBalancePostingService,FarmMerchantBalancePostingService,FarmFinancialReversalService}.php;Mapp/common/repositories/store/order/{StoreOrderRepository,StoreRefundOrderRepository}.php、crmeb/jobs/CancelGroupOrderJob.php、app/common/repositories/user/UserBillRepository.php、app/common/repositories/system/merchant/FinancialRecordRepository.php;RUserRepository.php、MerchantRepository.php。 -
接口/表/事件/权限:操作
CRM_ORDER_PAID_ADAPT/CRM_ORDER_CANCEL_ADAPT/CRM_REFUND_PREPARE_ADAPT/CRM_REFUND_AFTER_ADAPT;表order_binding/financial_posting和领域影响表;事件farm.cloud.order.paid、farm.cloud.primary.refunded、farm.cloud.resale.reversed、farm.financial_posting.*。 - 验收:普通订单保持原副作用;云仓两类订单跳过普通商户财务、佣金、积分和履约;取消/退款只恢复正确库存源;重复回调不重复入账。
- 测试:支付/取消/退款三策略矩阵、三个退款申请入口、拒绝/取消、部分/全额退款、余额并发、posting 重试与反向记录。
- 风险:适配时点过晚先扣商户锁定款;重复恢复库存;账户丢更新。
-
角色/工期:技术负责人主责,财务后端、订单后端和 QA 双审,
15~22 PD。
- 目标:完成平台/商户商品农业资料、材料审核、供货资格和稳定活动 SKU 来源诊断。
-
前置:
BE-FND-003、BE-CRM-001。 -
输入文档:
18-21、30-35、37-39。 -
文件:
NP3(catalog; {ProductAgricultureProfile,ProductMaterial});Ncrmeb/services/farm/agriculture/{ProductAgricultureService,ProductMaterialExpiryService}.php、crmeb/services/farm/cloud/CloudSourceSkuMatcher.php;Napp/controller/{admin,merchant}/farm/catalog/ProductAgriculture.php、app/validate/{admin,merchant}/farm/catalog/{ProductAgricultureValidate,ProductMaterialValidate}.php;Ncrmeb/jobs/farm/ProductMaterialExpiryJob.php、crmeb/listens/farm/timer/ProductMaterialExpiryListen.php;Mapp/controller/api/store/product/StoreProduct.php;RProduct/ProductAttrValue/Attachment Repository。 -
接口/表/事件/权限:API
farm/agriculture/product_profile/*、farm/catalog/product_agriculture/*;操作PRODUCT_AGRI_*、PRODUCT_MATERIAL_EXPIRY_APPLY、CW_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。
- 目标:实现商户/平台单 SKU 供货数量生命周期、三类责任快照和严格库存守恒。
-
前置:
BE-CW-001、BE-FND-004。 -
输入文档:
13、19-21、31-37、38-39。 -
文件:
NP3(cloud; {CloudSupply,CloudSupplyDelivery,CloudSupplyInspection,CloudSupplyMaterial,CloudSupplyReturn,CloudSupplyAcquisition});Ncrmeb/services/farm/cloud/{CloudSupplyLifecycleService,CloudSupplyResponsibilityService}.php;Napp/controller/admin/farm/cloud/CloudSupply.php、app/controller/merchant/farm/cloud/{CloudSupply,CloudSupplyRecord}.php;Napp/validate/admin/farm/cloud/{CloudSupplyValidate,CloudPlatformSupplyValidate}.php、app/validate/merchant/farm/cloud/{CloudSupplyValidate,CloudSupplySubmitValidate,CloudSupplyDeliveryValidate,CloudSupplyReturnValidate}.php;Ncrmeb/listens/farm/domain/CloudSupplyDomainListen.php、TJ({CloudSupplyInventoryReconcile})。 -
接口/表/事件/权限:操作
CW_SUPPLY_*、CW_PLATFORM_SUPPLY_CREATE、CW_SUPPLY_DELIVERY_*、CW_SUPPLY_RECEIVE、CW_SUPPLY_INSPECTION_*、CW_SUPPLY_RETURN_*、CW_SUPPLY_ACQUIRE_*;表为同名六类供货表和cloud_inventory_flow;事件farm.cloud.supply.*;供货审核、验收、承接复核/执行分权。 - 验收:草稿/提交不占库存,批准才预留;实收/短少/待检/合格/拒收闭合;退回待办完成后才恢复来源;承接原子转平台库存。
- 测试:数量方程、平台自营来源、重复运单、并发审核库存、部分交付/验收、退回争议、承接执行失败重试。
- 风险:用单一 available_qty、实物未退先恢复库存、平台供货只写农业表未扣来源。
-
角色/工期:云仓后端主责,库存后端/QA/财务评审,
12~18 PD。
- 目标:按秒杀信息架构实现独立云仓活动,但使用独立规则、供货库存、批次和发布快照。
-
前置:
BE-CW-002。 -
输入文档:
08、13、18-21、31-37、38、40。 -
文件:
NP3(cloud; {CloudActivity,CloudActivityProduct,CloudActivitySku,CloudUserQuota,CloudBatch,CloudBatchPoolBalance,CloudInventoryFlow});Ncrmeb/services/farm/cloud/{CloudActivityPublishService,CloudActivityInventoryCloseService}.php;Napp/controller/admin/farm/cloud/{CloudActivity,CloudActivityProduct,CloudBatch}.php、app/validate/admin/farm/cloud/{CloudActivityValidate,CloudActivityProductValidate}.php;NTJ({CloudActivityStatus,CloudActivityInventoryClose,CloudUnpaidRelease})。 -
接口/表/事件/权限:操作
CW_ACTIVITY_*、CW_ACTIVITY_PRODUCT_*、CW_ACTIVITY_SKU_UPDATE、SYS_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。
- 目标:实现一单一活动 SKU 的抢购、限购、库存锁定、CRMEB 订单创建和付款后待选状态。
-
前置:
BE-CW-003、BE-CRM-002。 -
输入文档:
08、13、19-21、31-37、40。 -
文件:
NP3(cloud; {CloudOrderItem,CloudPrimaryRefundImpact});Ncrmeb/services/farm/cloud/{CloudOrderCreateService,CloudOrderPaidService}.php;Napp/controller/api/farm/cloud/{CloudActivity,CloudOrder}.php、app/controller/admin/farm/cloud/CloudOrder.php、app/validate/api/farm/cloud/{CloudOrderValidate,CloudRefundValidate}.php;Ncrmeb/listens/farm/{CloudOrderPaidListener,CloudOrderClosedListener}.php、TJ({CloudPaidRepair,CloudChoiceReminder})。 -
接口/表/事件/权限:API
farm/cloud/activity/*、order/check|create|pay_result|lst|detail|action_count|refund;操作CW_ORDER_CHECK/CREATE、CRM_ORDER_PAID_ADAPT、CW_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-004。 -
输入文档:
08、13、19-21、31-37、38、40-41。 -
文件:
NP3(cloud; {CloudFreightOrder,CloudFreightRefund,CloudPickup,CloudPickupVerification,CloudHolding});Ncrmeb/services/farm/cloud/{CloudDispositionService,CloudFreightQuoteService,CloudFreightPaymentService,CloudFreightRefundService,CloudPickupService}.php;Napp/controller/api/farm/cloud/{CloudDisposition,CloudFreight,CloudPickup}.php、app/controller/admin/farm/cloud/CloudPickup.php、app/controller/service/farm/CloudPickup.php;Napp/validate/api/farm/cloud/{CloudDispositionValidate,CloudFreightValidate,CloudRefundValidate}.php、app/validate/admin/farm/cloud/CloudPickupValidate.php、app/validate/service/farm/CloudPickupVerifyValidate.php;Mcrmeb/services/AlipayService.php、app/event.php;Ncrmeb/listens/pay/CloudFreightPaySuccessListen.php、TJ({CloudChoiceExpire,CloudFreightExpire,CloudFreightPaymentRepair,CloudPickupOverdue})、crmeb/jobs/farm/RefundCloudFreightJob.php。 -
接口/表/事件/权限:操作
CW_CHOICE_*、CW_FREIGHT_*、CW_PICKUP_VERIFY/OVERDUE_RESOLVE、SYS_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。
-
目标:把代销持仓发布到
cloud_only二次 SKU,普通商城真实订单按 FEFO 分配并在售后观察后形成有效销售进度。 -
前置:
BE-CW-005、BE-CRM-001~002。 -
输入文档:
08、13、19-21、31-37、40。 -
文件:
NP3(cloud; {CloudResaleStock,CloudResaleAllocation,CloudResaleRefundAllocation,CloudBatchProgress});Ncrmeb/services/farm/cloud/{CloudBatchStartService,CloudResaleStockService,CloudResaleAllocationService,CloudProgressService}.php;Napp/controller/admin/farm/cloud/CloudResale.php;Ncrmeb/listens/farm/{CloudResaleOrderPaidListener,CloudResaleOrderCompletedListener,CloudRefundCompletedListener}.php、TJ({CloudBatchStart,CloudResaleAllocationRepair,CloudResaleRelease,CloudResaleEffective,CloudRefundSync,CloudMilestone})。 -
接口/表/事件/权限:操作
CW_RESALE_SKU_MAP、SYS_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.started、farm.cloud.resale.*、farm.cloud.milestone.reached。 - 验收:活动、未付、未抢和选择窗口闭合后才启动;普通订单创建时分配、支付不换批次;进度只计观察期后的净有效数量;回购不伪造 100%。
- 测试:FEFO 并发、订单创建回滚、未支付释放、完成/退款乱序、部分退款、跨多个节点只取最高新节点、整数库存与六位经济等价。
- 风险:普通库存与云仓池混算、付款后重挑批次、进度由运营手填。
-
角色/工期:资深库存/订单后端主责,技术负责人和 QA 双审,
15~22 PD。
- 目标:实现三种累计差额结算、最大余数分钱、正常退款抵扣、正式余额 posting 和人工审核回购。
-
前置:
BE-CW-006、BE-CRM-002。 -
输入文档:
08、13、19-21、31-37、38、40。 -
文件:
NP3(cloud; {CloudUserLedger,CloudBuyback,CloudLedgerAdjustment});Ncrmeb/services/farm/cloud/{CloudUserSettlementService,CloudBuybackService}.php;Napp/controller/admin/farm/cloud/{CloudUserLedger,CloudBuyback,FarmFinancialPosting}.php、app/controller/api/farm/cloud/{CloudHolding,CloudLedger}.php;Napp/validate/admin/farm/cloud/{CloudBuybackValidate,CloudLedgerAdjustValidate,FarmFinancialPostingValidate}.php;NTJ({CloudUserSettlement,CloudMaturity,CloudMaturityFinalize,FarmFinancialPostingRepair})、crmeb/listens/farm/timer/CloudBuybackListen.php、crmeb/jobs/farm/{PostFarmUserLedgerJob,ExecuteCloudBuybackJob}.php。 -
接口/表/事件/权限:操作
CW_USER_LEDGER_REVIEW/CW_USER_POSTING/CW_LEDGER_ADJUST_*、CW_BUYBACK_*、CW_FINANCIAL_POSTING_RETRY、SYS_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。
- 目标:按固定供货价和首次完成资格生成商户货款、02:00 自然日结单、正式商户入账和可审核对账修复。
-
前置:
BE-CW-006、BE-CRM-002;与BE-CW-007并行。 -
输入文档:
08、13、19-21、31-39。 -
文件:
NP3(cloud; {MerchantSupplyLedger,MerchantSupplyStatement,MerchantSupplyStatementItem});Ncrmeb/services/farm/cloud/{MerchantSupplySettlementService,MerchantSupplyStatementService,CloudReconciliationService}.php;Napp/controller/admin/farm/cloud/{CloudMerchantLedger,CloudMerchantStatement,CloudReconciliation}.php、app/controller/merchant/farm/cloud/{CloudSupplyLedger,CloudSupplyStatement}.php;Napp/validate/admin/farm/cloud/CloudMerchantStatementValidate.php、app/validate/merchant/farm/cloud/CloudLedgerExceptionValidate.php;NTJ({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-FND-003、BE-CRM-002。 -
输入文档:
14、18-21、29-37、38、41。 -
文件:
NP3(agriculture; {Farm,Zone,Plot,Warehouse,WarehouseLocation,PickupPoint,Crop,AdoptionCategory,Breed,Enclosure,AnimalAsset,BreedingBatch});Napp/controller/admin/farm/asset/{Farm,Zone,Plot,Warehouse,PickupPoint,FarmDashboard,Enclosure,AnimalAsset,BreedingBatch}.php、app/controller/admin/farm/catalog/{Crop,Breed}.php、app/controller/admin/farm/support/{FarmMap,FarmAdminScope}.php;Napp/validate/admin/farm/agriculture/{FarmAssetValidate,WarehouseValidate,PickupPointValidate,AnimalImportValidate,BreedingBatchValidate}.php、app/validate/admin/farm/support/{FarmMapQueryValidate,GeoPointValidate,FarmAdminScopeValidate}.php;Ncrmeb/services/farm/support/map/{GeoPoint,MapProviderInterface,TencentMapProvider,FarmMapService}.php、crmeb/jobs/farm/{ValidateAnimalImportJob,ConfirmAnimalImportJob}.php;Mapp/controller/api/Common.php、route/api/notLogin.php;R腾讯 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/STATUS、ANIMAL_IMPORT_*、FARM_ADMIN_SCOPE_SAVE;表为对应主数据与范围表;地图统一 GCJ02。 - 验收:列表先范围后分页;详情/写事务重断言归属;坐标成对且启用对象有真实点位;动物三段导入确认前不写资产。
-
测试:主数据停用引用、范围越界、坐标/Key 降级、动物导入哈希/版本/全批回滚、旧
/api/lbs/*回归。 - 风险:专业 GIS 扩张、服务端 Key 下发、超级管理员散落 ID 特判、自由文本仓库。
-
角色/工期:农业后端主责,安全/地图/DBA/QA 评审,
15~22 PD。
- 目标:实现发布版本、CRMEB 单商品权益订单、支付后 5 分钟预留和真实地块/个体/份额原子分配。
-
前置:
BE-AG-001、BE-CRM-002。 -
输入文档:
12、14、18-21、31-37、38、40。 -
文件:
NP3(agriculture; {PlotOccupancy,LandPlan,LandPlanCrop,LandOrder,AdoptionPlan,AdoptionOrder,AdoptionAllocation,AssetReplacement});Ncrmeb/services/farm/agriculture/{LandOrderCreateService,PlotAllocationService,AdoptionOrderCreateService,AdoptionAllocationService}.php;Napp/controller/admin/farm/land/{LandPlan,LandOrder,LandAllocation}.php、app/controller/admin/farm/adoption/{AdoptionPlan,AdoptionOrder,AdoptionAllocation}.php、app/controller/api/farm/land/{LandPlan,LandOrder}.php、app/controller/api/farm/adoption/{AdoptionPlan,AdoptionOrder}.php;Napp/validate/admin/farm/agriculture/{LandPlanValidate,AdoptionPlanValidate,AllocationValidate}.php、app/validate/api/farm/agriculture/{LandOrderValidate,AdoptionOrderValidate}.php;Ncrmeb/listens/farm/{LandOrderPaidListener,AdoptionOrderPaidListener}.php、TJ({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-002、BE-FND-004。 -
输入文档:
14、18-21、31-37、38、41。 -
文件:
NP3(agriculture; {ProductionBatch,ProductionPlantDetail,ProductionLivestockDetail,ProductionRightLink,FarmTask,FarmTaskAssignment,ProductionEvent,ProductionEventVersion});Ncrmeb/services/farm/agriculture/{ProductionBatchService,FarmTaskService,ProductionEventPublishService}.php;Napp/controller/admin/farm/production/{ProductionBatch,FarmTask,ProductionEvent}.php、app/controller/service/farm/{FarmTask,ProductionEvent,AssetHealth,FarmAttachment}.php;Napp/validate/admin/farm/agriculture/{ProductionBatchValidate,ProductionEventValidate,FarmTaskValidate}.php、app/validate/service/farm/{ProductionEventValidate,FarmAttachmentValidate}.php;NTJ({FarmTaskReminder})、crmeb/listens/farm/timer/FarmUnboundAttachmentCleanupListen.php、crmeb/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.write、farm.asset.health.write、farm.evidence.upload。 - 验收:任务只由当前有效执行人开始/完成;已完成现场事实不因审核驳回被覆盖;新版本保留历史;附件业务提交时原子绑定。
- 测试:转派/旧 scope 竞态、同一 request 重放、任务完成数量与证据、审核本人/越界、附件过期清理。
- 风险:任务完成等同内容发布、URL 当证据、审核人修改原始记录。
-
角色/工期:农业生产后端主责,服务端后端/安全/QA 评审,
15~22 PD。
- 目标:完成产出质量、库存流水、按权益分配、地址确认、分包邮寄、独立运费和未履约退款。
-
前置:
BE-AG-003。 -
输入文档:
14、18-21、31-37、38、40-41。 -
文件:
NP3(agriculture; {OutputBatch,OutputInventoryFlow,OutputAllocation,FarmFulfillment,FarmFulfillmentItem,FarmFulfillmentPackage,FarmFulfillmentPackageItem,FarmFulfillmentFreightOrder});Ncrmeb/services/farm/agriculture/{OutputAllocationService,FarmFulfillmentService,FarmFulfillmentFreightService,FarmDeliveryRefundService}.php;Napp/controller/admin/farm/production/OutputBatch.php、app/controller/admin/farm/fulfillment/FarmFulfillment.php、app/controller/api/farm/fulfillment/FarmFulfillment.php、app/controller/service/farm/{OutputBatch,Warehouse,FarmFulfillment}.php;Napp/validate/admin/farm/agriculture/{OutputBatchValidate,OutputAllocationValidate}.php、app/validate/api/farm/agriculture/{FarmFulfillmentAddressValidate,FarmFulfillmentFreightValidate,FarmFulfillmentRefundValidate}.php、app/validate/service/farm/{OutputBatchValidate,WarehouseReceiveValidate,FarmFulfillmentValidate}.php;NTJ({FarmOutputAllocation,FarmFulfillmentReminder})、crmeb/listens/farm/timer/FarmFulfillmentFreightRepairListen.php、crmeb/jobs/farm/RepairFarmFulfillmentFreightJob.php。 -
接口/表/事件/权限:操作
OUTPUT_*、FULFILLMENT_*、FARM_WAREHOUSE_RECEIVE、SYS_FARM_OUTPUT_ALLOCATE/FULFILLMENT_*/FREIGHT_REPAIR;表 output/flow/allocation/fulfillment/items/packages/freight;事件farm.output.*、farm.fulfillment.*;服务权限farm.output.*、farm.warehouse.receive、farm.fulfillment.pack/ship。 - 验收:总量方程成立;合格量不超分;平台主动分批不重复收费;每次发货确认地址;租地/认养只邮寄;退款按累计未履约和价值拆分后端计算。
- 测试:质量部分验收、最大余数分配、并发分配、包裹拆分、重复运单、迟到运费、部分发货退款和库存反向。
- 风险:农业产出进入云仓自提/代销、前端提交退款金额、已出库库存回滚。
-
角色/工期:农业履约后端主责,库存/支付/QA 双审,
18~26 PD。
- 目标:实现异常影响/方案/审核/用户确认/步骤执行和溯源不可变发布,把关键事实转为去重通知。
-
前置:
BE-AG-004。 -
输入文档:
14、18-21、31-38、40-41。 -
文件:
NP3(agriculture; {FarmExceptionEvent,FarmExceptionImpact,FarmExceptionPlanVersion,FarmExceptionExecutionStep,TraceArchive,TraceVersion,TraceMaterial,TraceLink});Ncrmeb/services/farm/agriculture/{FarmExceptionService,FarmExceptionExecutionService,TracePublishService}.php;Napp/controller/admin/farm/exception/FarmException.php、app/controller/admin/farm/trace/{TraceArchive,TraceMaterial,TraceLink}.php、app/controller/api/farm/exception/FarmException.php、app/controller/api/farm/trace/Trace.php、app/controller/service/farm/{FarmException,FarmReview}.php;Napp/validate/admin/farm/agriculture/{FarmExceptionPlanValidate,TraceVersionValidate,TraceMaterialValidate,TraceLinkValidate}.php、app/validate/api/farm/agriculture/FarmExceptionConfirmValidate.php、app/validate/service/farm/{FarmExceptionValidate,FarmReviewValidate}.php;Ncrmeb/listens/farm/timer/{FarmExceptionExecutionListen,FarmExceptionConfirmationExpireListen,FarmExceptionSlaListen,TraceMaterialExpiryListen,TracePublicCacheRepairListen}.php、crmeb/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。
- 目标:建立平台农业路由/API/共用展示基础,并在现有商品、管理员、财务和地图页面做最小兼容扩展。
-
前置:
DES-002、BE-FND-001;Mock 契约稳定。 -
输入文档:
18-21、23、30、35、37-38。 -
文件:
Nsmartfarm_admin/src/router/modules/agriculture.js、src/api/farm/{cloud,agriculture,production,trace,finance,map,support}.js、src/components/farm/{StatusTag,RuleSnapshot,BatchProgress,InventoryPoolTable,LedgerFormula,TraceTimeline,VersionHistory,FarmMapPicker,FarmAdminScopeDrawer}.vue、src/utils/farm/{format,constants,actionGuard}.js;Msrc/router/modules/{marketing,accounts}.js、src/router/index.js、src/api/product.js、src/views/product/productExamine/{index,info,proDetails}.vue、src/views/setting/systemAdmin/index.vue、src/components/map/{Map.vue,index.js}、src/filters/commFilter.js、src/views/accounts/capitalFlow/index.vue;R现有 request、权限指令、上传、导出、表格、分页和商品选择器。 -
接口/表/事件/权限:页面
ADM-CM-001/002和范围抽屉;接口 product profile/admin scope/map/operation;状态、金额、比例、ID 严格按37格式;按钮只根据allowed_actions和 route permission 显示。 - 验收:新增路由在原动态路由机制中可达;现有商品两类筛选共用同页;管理员范围不侵入原管理员编辑表单;地图失败有手工降级。
- 测试:路由/菜单权限、API 参数、版本冲突、无范围、长字段、普通商品审核和原财务跳转回归;生产构建通过。
- 风险:只建菜单无本地路由、复制第二套商品页、组件封装业务状态机。
-
角色/工期:平台前端负责人主责,UI/后端/QA 评审,
6~9 PD。
- 目标:交付活动创建/商品规则/发布预检、供货审核/收货/质检/退回/承接的首个平台垂直切片。
-
前置:
ADM-FND-001、DES-CW-001、BE-CW-001~003契约可联调。 -
输入文档:
18-21、30-35、37-38。 -
文件:
Nsmartfarm_admin/src/views/marketing/cloud/activity/{index,edit,detail}.vue、activity/components/{ActivityBaseForm,ActivitySkuRuleTable}.vue、supply/{index,detail}.vue;Rsrc/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-FND-001、DES-CW-001、BE-CW-004~006。 -
输入文档:
18-21、30-35、37-38、40-41。 -
文件:
Nsmartfarm_admin/src/views/marketing/cloud/order/{index,detail}.vue、pendingChoice/index.vue、pickup/index.vue、batch/{index,detail}.vue、resale/{index,detail}.vue;R共用StatusTag/RuleSnapshot/BatchProgress/InventoryPoolTable;M无普通订单页面改造。 -
接口/表/事件/权限:页面
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-002、BE-CW-007~008、DES-CW-001。 -
输入文档:
08、18-21、30-35、37-40。 -
文件:
Nsmartfarm_admin/src/views/marketing/cloud/buyback/{index,detail}.vue、exception/{index,detail}.vue、src/views/accounts/farm/userLedger/{index,detail}.vue、merchantLedger/{index,detail}.vue、merchantStatement/{index,detail}.vue、financialPosting/detail.vue、reconciliation/index.vue、adjustment/index.vue;RLedgerFormula.vue、现有财务筛选/导出;M已由ADM-FND-001管理的 capitalFlow/filter 文件。 -
接口/表/事件/权限:页面
ADM-CW-011/012、ADM-FN-001~005;API buyback/ledger/statement/posting/reconciliation/adjustment/exception;审核与执行、申请与复核严格分权。 - 验收:公式输入、累计应结、历史账本、当前差额、尾差、风险承担和 posting 均可追;所有执行按钮只提交来源 ID/版本/原因,不接受最终金额。
- 测试:自动阈值、超限审核、重复执行、入账失败重试、回购预检失效、冲正、对账异步进度、PII 脱敏和导出权限。
- 风险:页面提供改余额/改金额输入、把“已生成结单”标成“已到账”、审核人执行自己的申请。
-
角色/工期:资深平台前端主责,财务后端、产品和 QA 双审,
12~18 PD。
- 目标:交付农业工作台、农场/区域/地块/仓储/自提点、栏舍/动物/批次、作物/品种和管理员农业范围。
-
前置:
ADM-FND-001、DES-AG-001、BE-AG-001。 -
输入文档:
18-21、23、29-35、37-38。 -
文件:
Nsmartfarm_admin/src/views/farm/dashboard/index.vue、asset/farm/{index,edit}.vue、asset/farm/components/{WarehouseTab,WarehouseLocationDrawer}.vue、asset/zone/index.vue、asset/plot/{index,edit,map}.vue、asset/pickupPoint/{index,edit}.vue、asset/enclosure/index.vue、asset/animal/index.vue、asset/breedingBatch/index.vue、catalog/crop/index.vue、catalog/breed/index.vue;RFarmMapPicker.vue、现有上传/导入/表格;M无额外文件。 -
接口/表/事件/权限:页面
ADM-AG-001~012、ADM-LA-001、ADM-AD-001;API agriculture master/map/import/admin scope;对象范围在列表、选项和详情一致。 - 验收:农场详情内维护仓库/库位而不增加 P0 页面;地块占用日历不伪造 GIS;动物导入三段式显示错误文件和异步进度;停用显示引用阻断。
- 测试:地图无 Key/失败、坐标校验、范围变化、导入大文件/冲突、空仓库/库位、移动窗口表单和 1366 桌面密度。
- 风险:在商户端复制资产页、地图成为交易强依赖、导入确认直接上传行数据。
-
角色/工期:平台农业前端主责,UI/农业后端/QA 评审,
15~22 PD。
- 目标:交付两类套餐版本、订单详情、候选、5 分钟预留和原子确认分配。
-
前置:
ADM-AG-001、BE-AG-002、DES-AG-001。 -
输入文档:
14、18-21、30-35、37-38、40。 -
文件:
Nsmartfarm_admin/src/views/farm/land/plan/{index,edit}.vue、land/order/{index,detail}.vue、land/allocation/index.vue、adoption/plan/{index,edit}.vue、adoption/order/{index,detail}.vue、adoption/allocation/index.vue;R现有商品/套餐表单基础控件、RuleSnapshot.vue、VersionHistory.vue;M无。 -
接口/表/事件/权限:页面
ADM-LA-002~006、ADM-AD-002~006;API plan/order/allocation candidates/reserve/confirm/release;显示 plan/order/occupancy/allocation/replacement。 - 验收:价格价值拆分、承诺产出、延期容忍和只邮寄规则发布前可预检;候选不显示为已占用;倒计时结束刷新;冲突不提供强制覆盖。
- 测试:套餐版本、容量不足、预留过期、两人同资源、单体/份额模式、资产替换历史、无权限和版本冲突。
- 风险:套餐页直接选择具体动物、前端倒计时作为锁真相、租地/认养出现代销或自提。
-
角色/工期:平台农业前端主责,权益后端、UI 和 QA 评审,
12~18 PD。
- 目标:交付生产批次/任务、过程审核、产出质量与分配、邮寄履约、异常方案和溯源版本。
-
前置:
ADM-AG-002、BE-AG-003~005、DES-AG-001。 -
输入文档:
14、18-21、30-38、40-41。 -
文件:
Nsmartfarm_admin/src/views/farm/production/batch/{index,detail}.vue、production/event/review.vue、output/batch/{index,detail}.vue、fulfillment/{index,detail}.vue、exception/{index,detail}.vue、trace/archive/{index,edit}.vue、trace/review/index.vue、trace/material/index.vue、trace/link/index.vue;RTraceTimeline/VersionHistory/LedgerFormula和现有物流组件;M无。 -
接口/表/事件/权限:页面
ADM-PD-001~008、ADM-TR-001~004;API production/task/event/output/fulfillment/exception/trace;过程审核/发布、异常审核/执行、溯源审核/发布/撤回分权。 - 验收:任务、过程、产出、包裹、异常和溯源均可从权益订单追踪;数量方程实时提示但后端为准;历史版本只读;执行失败显示步骤和操作号。
- 测试:任务转派、过程驳回、部分质量/分配/发货、异常用户确认、步骤失败重试、溯源撤回、材料到期和物流空态。
- 风险:一个巨型详情页无清晰标签、审核页允许编辑原事实、异常页面直接执行自由动作。
-
角色/工期:资深平台农业前端主责,农业后端、UI 和 QA 评审,
15~22 PD。
- 目标:建立商户云仓基础入口,并在现有首页、商品、财务页面展示当前商户的农业资料、供货资格和待办。
-
前置:
DES-CW-001、BE-CW-001、BE-FND-001。 -
输入文档:
18-21、30、35、37、39。 -
文件:
Nsmartfarm_mer/src/api/farm/{cloud,finance}.js;Msrc/router/modules/{marketing,accounts}.js、src/views/dashboard/index.vue、src/views/product/productList/index.vue、src/views/product/addProduct/index.vue、src/filters/commFilter.js、src/views/accounts/capitalFlow/index.vue;Rsrc/api/product.js、商品/SKU 选择、上传、表格和商户权限组件。 -
接口/表/事件/权限:页面
MER-HM-001、MER-CM-001/002;API dashboard/product agriculture/operation;所有请求从登录态取mer_id,页面不提交商户 ID 作为授权。 - 验收:商品资料审核与供货申请是两个状态;工作台只聚合当前商户和当前员工动作;普通商品编辑/上下架无退化。
- 测试:商户隔离、员工角色、材料缺失/到期、商品规格变化、首页空态、财务流水原跳转和生产构建。
- 风险:只在前端过滤商户、把活动规则开放给商户、首页堆叠过量大卡。
-
角色/工期:商户前端主责,商户后端和 QA 评审,
6~9 PD。
- 目标:交付单 SKU 供货草稿/提交、发运、平台收货/质检结果、退回和平台承接只读追踪。
-
前置:
MER-FND-001、BE-CW-002、ADM-CW-001接口一致。 -
输入文档:
13、18-21、30-35、37-39。 -
文件:
Nsmartfarm_mer/src/views/marketing/cloudSupply/application/{index,edit}.vue、record/{index,detail}.vue;R现有商品选择、上传、物流、表格/分页;M无。 -
接口/表/事件/权限:页面
MER-CW-001~004;API supply/product_candidates/delivery/inspection/return;显示供货、交付、验收、材料、退回、承接和库存流水。 - 验收:一张申请仅一个 SKU,多选生成多草稿;商户只提交责任建议;详情完整显示 proposed 到 platform_acquired 数量链和守恒告警。
- 测试:草稿/驳回补充/提交、部分发运、重复运单、短缺/拒收、退回确认争议、跨商户 ID 探测。
- 风险:提交即扣库存、商户覆盖平台责任快照、活动结束直接恢复实物仍在平台的库存。
-
角色/工期:商户前端主责,云仓后端、UI 和 QA 评审,
10~15 PD。
- 目标:交付责任快照下的发货/物流/证据/退回协同,以及固定供货价货款、日结单、入账和异议。
-
前置:
MER-CW-001、BE-CW-008。 -
输入文档:
08、13、18-21、30-35、37-39。 -
文件:
Nsmartfarm_mer/src/views/marketing/cloudSupply/fulfillment/{index,detail}.vue、src/views/accounts/farm/supplyLedger/{index,detail}.vue、supplyStatement/{index,detail}.vue、reconciliation/index.vue;R现有物流、售后、导出、转账/提现能力;McapitalFlow/index.vue已由MER-FND-001接入专属详情。 -
接口/表/事件/权限:页面
MER-CW-005、MER-FN-001/002;API fulfillment/ledger/statement/dispute;按责任快照与员工角色返回 allowed_actions。 - 验收:只展示本商户责任任务;货款明确“待条件/可入单/已入单/入账中/已入账”;二次销售进度不改变商户固定货款。
- 测试:发货与物流更正、证据绑定、退回实收、责任不归商户、结单跨日、入账失败、已入账异议和导出脱敏。
- 风险:商户执行云仓自提核销、把用户收益当商户佣金、把结单生成当余额到账。
-
角色/工期:资深商户前端主责,财务后端和 QA 评审,
10~15 PD。
- 目标:在不重构现有用户端的前提下建立两个分包、六个 API 模块和安全支付回跳,并先修复会阻断复用的基线缺陷。
-
前置:
DES-002、BE-FND-001。 -
输入文档:
18、21、25、29-30、35、37。 -
文件:
Nsmartfarm_user/api/{farmAgriculture,farmCloud,farmLand,farmAdoption,farmException,farmTrace}.js;Mpages.json、pages/user/index.vue、components/payment/index.vue、pages/order_pay_back/index.vue、libs/login.js、libs/order.js、pages/activity/goods_seckill_details/index.vue、pages/users/order_confirm/index.vue、store/modules/location.js、utils/util.js、manifest.json的客户端 Key 配置;Rapi/order.js、地址/物流/退款、base_container/base_nav_bar/priceFormat/easyLoadimage/countDown/emptyPage/Loading/productConSwiper/jyf-parser/uni-popup/uni-datetime-picker。 -
接口/表/事件/权限:注册
pages/cloudWarehouse与pages/farm;API 使用现有 request/login;支付returnPath只接受白名单,结果页重新查询PayResult。 - 验收:普通订单默认回跳不变;农业分包可独立加载;H5/小程序登录、支付、位置和普通秒杀基线缺陷有独立回归记录。
- 测试:构建矩阵、分包体积、登录拦截、微信/支付宝/余额回跳、非法 returnPath、拒绝定位、普通确认页无 debugger。
- 风险:顺手升级 uni-app 或全局改坐标、支付组件写入云仓状态机、服务端 Key 进入客户端。
-
角色/工期:uni-app 负责人主责,支付后端和 QA 双审,
8~12 PD。
- 目标:交付独立云仓场次/商品/确认/支付结果,支持付款后立即选择、继续抢购或稍后选择。
-
前置:
USR-FND-001、DES-CW-001、BE-CW-003~004。 -
输入文档:
08、18-21、25、30-35、37、40。 -
文件:
Nsmartfarm_user/pages/cloudWarehouse/{index,detail,order_confirm,pay_result,order_list}.vue;Rcomponents/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-001、BE-CW-005。 -
输入文档:
08、18-21、25、30-35、37、40-41。 -
文件:
Nsmartfarm_user/pages/cloudWarehouse/{disposition,freight_pay,pickup}.vue、components/farm/{CloudRuleSummary,CloudDispositionSelector}.vue;R地址选择、支付弹层、倒计时、地图/导航和物流基础组件。 -
接口/表/事件/权限:页面
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-002、BE-CW-006~007。 -
输入文档:
08、18-21、25、30-35、37、40。 -
文件:
Nsmartfarm_user/pages/cloudWarehouse/{holding_list,holding_detail,ledger,ledger_detail}.vue、components/farm/{CloudSettlementTimeline,CloudBatchProgress}.vue;RpriceFormat、时间线、加载/空态组件。 -
接口/表/事件/权限:页面
USR-CW-009~012;API holding list/detail/progress、ledger list/detail;只返回本人 holding/ledger/posting 摘要。 - 验收:真实进度与回购量分开;预计/待结算/待审核/入账中/已入账/冲正分开;公式可解释本金、收益、尾差、退款抵扣和平台风险承担。
- 测试:三种模式黄金数据、跨节点、到期宽限、未售回购、批次冻结、账本重试/冲正、金额长文本和空持仓。
- 风险:用活动抢购进度代替二次销售、显示他人持仓、把业务账本当可提现余额。
-
角色/工期:uni-app 负责人主责,财务后端、产品和 QA 评审,
10~15 PD。
- 目标:交付公开农场、地图、租地/认养目录、下单和真实权益详情。
-
前置:
USR-FND-001、DES-AG-001、BE-AG-001~002。 -
输入文档:
14、18-21、25、30-35、37、40。 -
文件:
Nsmartfarm_user/pages/farm/{index,farm_detail,farm_location}.vue、pages/farm/land/{index,detail,order_confirm,my_list,order_detail}.vue、pages/farm/adoption/{index,detail,order_confirm,my_list,order_detail}.vue、components/farm/{ProductionTimeline,FarmLocationCard}.vue;R商品轮播、富文本、支付、地址、uni.openLocation。 -
接口/表/事件/权限:页面
USR-AG-001~003、USR-LA-001~005、USR-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-001、BE-AG-004~005。 -
输入文档:
14、18-21、25、30-35、37、40。 -
文件:
Nsmartfarm_user/pages/farm/fulfillment/detail.vue、pages/farm/trace/detail.vue、components/farm/{OutputShipmentCard,TraceArchive}.vue;Mpages/goods_details/index.vue、pages/order_details/index.vue、pages/users/order_list/index.vue;Rapi/order.js、地址/物流/退款组件。 -
接口/表/事件/权限:页面
USR-PD-001、USR-TR-001、USR-CM-001/002;API fulfillment address/freight/package/take/refund、exception detail/confirm、trace public/target;普通页面只显示摘要和专属入口。 - 验收:每次发货前确认地址;分包和运费承担清楚;退款显示承诺/已交/历史已退/处理中/本次后端金额;撤回溯源显示说明,不泄露草稿。
- 测试:包邮/用户主动拆包、部分发货、物流异常、异常确认超时、溯源撤回/材料过期、无农业资料普通商品完全兼容。
- 风险:把全部农业状态塞进普通订单页、前端计算退款金额、公开未审核过程材料。
-
角色/工期:uni-app 农业前端主责,履约/溯源后端和 QA 评审,
12~18 PD。
- 目标:复用现有客服身份,修复越权读取,建立农业职责/对象范围、静态路由、桌面/移动布局和上下文。
-
前置:
BE-FND-003、DES-AG-001。 -
输入文档:
18-21、29-35、37、41。 -
文件:
Msmartfarm/app/common/middleware/ServiceTokenMiddleware.php、app/controller/admin/system/service/StoreService.php、app/common/repositories/store/service/StoreServiceRepository.php、app/validate/merchant/StoreServiceValidate.php、app/controller/service/Service.php、route/service.php;Napp/common/middleware/FarmServicePermissionMiddleware.php、crmeb/services/farm/support/FarmServicePolicy.php、app/controller/service/farm/Common.php;Msmartfarm_service/src/router/index.js、src/permission.js、src/store/getters.js、src/api/request.js、src/views/login/index.vue;Nsrc/router/farm.js、src/store/modules/farmContext.js、src/api/{farm,farmReview,farmAttachment}.js、src/views/entry/index.vue、src/views/farm/profile/index.vue、src/layout/farmDesktop/index.vue、src/layout/farmMobile/index.vue;Rsrc/utils/auth.js、src/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。
- 目标:交付 PC/平板农业订单、云仓订单、异常建议和生产/产出审核桌面。
-
前置:
SVC-FND-001、BE-CW-004~008只读契约、BE-AG-003~005。 -
输入文档:
18-21、30-35、37、41。 -
文件:
Nsmartfarm/app/controller/service/farm/{FarmOrder,CloudOrder,CloudException}.php;Rsmartfarm/app/controller/service/farm/FarmReview.php、app/validate/service/farm/{FarmExceptionValidate,FarmReviewValidate}.php(由BE-AG-005交付);Nsmartfarm_service/src/layout/farmDesktop/components/{FarmSidebar,FarmHeader}.vue、src/views/farm/desk/order/{index,detail}.vue、src/views/farm/desk/cloud/{index,detail}.vue、src/views/farm/desk/exception/{index,detail}.vue、src/views/farm/desk/review/{index,detail}.vue;RElement UI 表格、表单、抽屉、分页和原客服联系能力。 -
接口/表/事件/权限:页面
SVC-CM-001、SVC-CW-001/002、SVC-PD-007;API order/cloud order/exception/review;权限farm.order.read、farm.cloud.order.read、farm.exception.read/propose、farm.production.review、farm.output.review。 - 验收:订单关系可追但 PII 默认脱敏;客服只能事实补充/建议;审核人查看原记录和历史,不编辑内容;对象越界统一未找到。
- 测试:平台/商户客服范围、PII 权限审计、异常建议幂等、审核本人/越界/旧版本、桌面 1366 宽度和无权限菜单。
- 风险:客服直接改去向/金额/进度、桌面复制平台高风险执行能力。
-
角色/工期:服务端全栈主责,安全/农业后端/QA 评审,
12~18 PD。
- 目标:建立移动任务入口、二维码解析、范围化附件和“离线草稿但不离线提交”。
-
前置:
SVC-FND-001、BE-AG-003;扫码依赖兼容 Spike 通过或启用降级方案。 -
输入文档:
18、21、24、29-35、37、41。 -
文件:
Nsmartfarm/app/controller/service/farm/FarmScan.php、app/validate/service/farm/FarmScanValidate.php;Rsmartfarm/app/controller/service/farm/{FarmTask,FarmAttachment}.php、app/validate/service/farm/FarmAttachmentValidate.php(由BE-AG-003交付);Nsmartfarm_service/src/layout/farmMobile/components/{FarmMobileHeader,FarmMobileTabbar,FarmStickyActions}.vue、src/views/farm/work/task/{index,detail}.vue、src/views/farm/work/scan/index.vue、src/views/farm/work/draft/index.vue、src/views/farm/work/profile/index.vue、src/components/farm/{FarmObjectSummary,FarmTaskStatus,FarmEvidenceUploader,FarmQrScanner,FarmLocationSummary,FarmScopeChanged}.vue、src/utils/{tencentMapLoader,farmDraft}.js;Mpackage.json、package-lock.json,精确锁定@zxing/browser@0.1.5、@zxing/library@0.21.3;R原 Token、上传、Iconfont、原生日期/数量控件。 -
接口/表/事件/权限:页面
SVC-PD-001/002/008、移动SVC-AU-003;API task/scan/attachment/context;表 task/assignment/evidence;权限farm.task.read/execute、farm.scan.resolve、farm.evidence.upload。 - 验收:摄像头、图片和手工码三路;卸载释放视频流;草稿按账号/对象/schema 隔离 IndexedDB JSON/Blob;恢复时重查 scope/version/task。
- 测试:Vue 2/Webpack 4 构建、HTTPS 前后摄像头、拒权/无摄像头、图片识别、包体积、账号切换、离线/恢复、存储容量和附件过期。
- 风险:扫码依赖升级整个项目、离线草稿显示已提交、登出后泄露其他账号草稿。
-
角色/工期:服务移动前端主责,后端、安全和真机 QA 双审,
15~22 PD。
- 目标:交付过程/健康记录、产出录入、入库、打包、发货、云仓核销和异常上报的移动闭环。
-
前置:
SVC-WORK-001、BE-CW-005、BE-AG-003~005。 -
输入文档:
14、18-21、30-35、37、41。 -
文件:
Rsmartfarm/app/controller/service/farm/{ProductionEvent,OutputBatch,AssetHealth,Warehouse,CloudPickup,FarmFulfillment,FarmException}.php、app/validate/service/farm/{CloudPickupVerifyValidate,ProductionEventValidate,OutputBatchValidate,WarehouseReceiveValidate,FarmFulfillmentValidate,FarmExceptionValidate}.php(由BE-CW-005、BE-AG-003~005交付);Nsmartfarm_service/src/views/farm/work/production/event.vue、src/views/farm/work/output/edit.vue、src/views/farm/work/warehouse/{index,receive}.vue、src/views/farm/work/fulfillment/{pack,ship}.vue、src/views/farm/work/pickup/verify.vue、src/views/farm/work/exception/edit.vue、src/components/farm/FarmQuantityEquation.vue;RFarmEvidenceUploader/FarmQrScanner/FarmObjectSummary。 -
接口/表/事件/权限:页面
SVC-PD-003~006;API event/health/output/warehouse/fulfillment/pickup/exception;权限farm.production.event.write、farm.asset.health.write、farm.output.write、farm.warehouse.receive、farm.fulfillment.pack/ship、farm.pickup.verify、farm.exception.report。 - 验收:每个提交绑定任务/对象/范围/版本;数量方程可见;出库和核销生成不可变事实;现场人员只能上报事实和建议,不执行最终退款/回购/账本。
- 测试:任务转派中提交、范围变化、附件失败、总量不闭合、重复运单、部分核销、离线恢复冲突、严重异常幂等和移动安全区。
- 风险:现场表单允许自由目标 ID、农业产出进入云仓核销、错误时伪造完成任务。
-
角色/工期:服务移动前端主责,农业/仓储后端和真机 QA 评审,
15~22 PD。
- 目标:在业务实现前建立后端单测/集成、接口契约、前端单测和 Playwright E2E 的统一入口及报告。
-
前置:
M0、BE-FND-001~002文件契约。 -
输入文档:
19-22、26、30-37。 -
文件:
Msmartfarm/composer.json、composer.lock,仅增加与 PHP 8/ThinkPHP 8 兼容并锁定的测试依赖;Nsmartfarm/phpunit.xml、tests/farm/{bootstrap.php,Contract/RouteContractTest.php,Contract/DtoContractTest.php,Migration/SchemaDictionaryTest.php};Msmartfarm_admin/package.json、smartfarm_mer/package.json、smartfarm_service/package.json的测试脚本,不升级生产依赖;Nscripts/qa/{package.json,package-lock.json,playwright.config.js,README.md}、scripts/qa/fixtures/{actors,seed-contracts}.json、scripts/qa/helpers/{api,auth,db-readonly}.js;R三个管理前端现有 Jest 配置。 -
接口/表/事件/权限:契约自动比较
19/31/32/34/35/37的路由、操作、事件、表和页面集合;测试账号覆盖平台高风险拆权、商户员工、用户、六种服务职责。 - 验收:一条命令可产出单元/契约/E2E 报告;失败返回非零;测试数据可重置;密钥由环境注入;普通项目构建不依赖测试服务。
- 测试:测试骨架自身故意制造一次路由/字段/表漂移并确认阻断;Windows 与发布 Linux/容器入口均可执行。
- 风险:测试框架版本与旧前端不兼容、测试直接写共享演示库、报告成功但实际未发现用例。
-
角色/工期:QA 自动化负责人主责,技术负责人和运维评审,
8~12 PD。
- 目标:证明订单策略适配没有破坏普通商品、营销、支付、取消、退款、余额、商户财务和客服。
-
前置:
QA-FND-001、BE-CRM-001~002。 -
输入文档:
21第八节、29、31-34。 -
文件:
Nsmartfarm/tests/farm/CrmAdapter/{OrderPolicyTest,OrderCreateAdapterTest,PaymentAdapterTest,CancelAdapterTest,RefundAdapterTest,UserPostingTest,MerchantPostingTest}.php;Nscripts/qa/tests/crm/{normal-order.spec,mixed-policy.spec,payment-side-effects.spec,cancel-restore.spec,refund-lifecycle.spec,normal-marketing-regression.spec}.js;RCRMEB 现有普通商城接口和测试数据。 -
接口/表/事件/权限:覆盖
CRM_ORDER_*、CRM_REFUND_*、order binding/posting;三策略支付副作用矩阵;普通券/积分/会员/佣金/打印/通知保持原行为。 - 验收:普通未映射 SKU SQL 和结果无明显退化;混合组前置拒绝;云仓恢复不重复;余额/商户入账幂等。
- 测试:正常、多商户、普通秒杀/拼团/预售/积分、云仓首次/二次、部分/全额退款、回调重入和账户并发。
- 风险:只测 HTTP 200、不核对余额/库存/流水;用 Mock 绕开真实 CRMEB Repository。
-
角色/工期:资深 QA 主责,订单/财务后端评审,
15~22 PD。
- 目标:验证从商品资料、供货、活动发布到抢购、付款后待选、三种去向和首次退款的完整切片。
-
前置:
QA-FND-001、BE-CW-001~005和对应前端进入 Verify。 -
输入文档:
08、13、18-20、30-40。 -
文件:
Nsmartfarm/tests/farm/Cloud/{ProductAgricultureTest,SupplyLifecycleTest,ActivityPublishTest,PrimaryOrderTest,DispositionRaceTest,FreightRaceTest,PickupVerificationTest}.php;Nscripts/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-001、BE-CW-006~008、对应财务前端进入 Verify。 -
输入文档:
08、13、20-21、31-40。 -
文件:
Nsmartfarm/tests/farm/Cloud/{ResaleFefoTest,ProgressMilestoneTest,SettlementGoldenCaseTest,SecondaryRefundTest,BuybackAtomicityTest,MerchantEligibilityTest,StatementPostingTest,ReconciliationTest}.php;Nscripts/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}.js;Nscripts/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-FND-001、BE-AG-001~005和对应前端进入 Verify。 -
输入文档:
14、18-20、30-38、40-41。 -
文件:
Nsmartfarm/tests/farm/Agriculture/{MasterDataScopeTest,LandAllocationRaceTest,AdoptionAllocationRaceTest,ProductionTaskTest,OutputEquationTest,OutputAllocationTest,FulfillmentTest,DeliveryRefundTest,ExceptionPlanTest,TraceVersionTest}.php;Nscripts/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。
- 目标:按页面矩阵和 Figma 逐页验证四端 108 个 P0 页面及 15 条跨端 Flow。
-
前置:
QA-CW-002、QA-AG-001、所有前端任务进入 Verify。 -
输入文档:
18、30、35、38-41和 Figma 高保真。 -
文件:
Nscripts/qa/tests/e2e/{platform-pages,merchant-pages,user-pages,service-pages,flows-01-15}.spec.js;Nscripts/qa/fixtures/page-matrix.json、scripts/qa/helpers/{visual,accessibility,network-fault}.js;M四前端项目 package scripts 仅接入 CI 构建命令;RFigma 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。
- 目标:完成发布前并发、性能、安全、可观测性、备份恢复、migration 和故障注入准入。
-
前置:
QA-E2E-001、OPS-002。 -
输入文档:
20-22、26、31-37、38-41。 -
文件:
Nscripts/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};Nscripts/qa/config/release-thresholds.json、scripts/qa/reports/.gitkeep;Rinstall/upgrade/farm_v1/verify_*.sql和运维监控。 - 接口/表/事件/权限:重点为抢购库存、资源分配、FEFO、posting、范围越权、文件上传、Outbox/Job 租约和五段对账。
- 验收:阈值由发布评审记录固定;无超卖/重复入账/越权;worker/Redis/支付/地图/存储短故障可恢复;升级副本和全新库结果一致。
- 测试:并发峰值、慢 SQL、队列积压、进程中断、回调重放、附件恶意类型、ID 枚举、日志敏感信息、应用回退保留数据。
- 风险:用生产库压测、只测平均响应、不验证失败后的账实一致。
-
角色/工期:QA 负责人主责,运维/DBA/安全/技术负责人签字,
12~18 PD。
- 目标:建立开发/测试/预发布一致的农业开关、四队列 worker、超时、日志和地图/支付/存储密钥注入方式。
-
前置:
BE-FND-002~004。 -
输入文档:
20-21、29、32、34。 -
文件:
Msmartfarm/config/queue.php、config/farm.php、.example.env、Dockerfile、install/upgrade/farm_v1/process/supervisor-farm.conf.example;Mconfig/swoole.php仅在部署决策选择该模式时;Nscripts/qa/env/{development,test,staging}.env.example;R现有默认队列、Swoole 和配置读取能力。 -
接口/表/事件/权限:四队列
farm-critical/business/notification/maintenance;环境只注入 provider key、队列连接、功能开关和阈值,不在 SQL/前端/仓库保存真实值。 - 验收:四队列可独立扩缩容和停启;普通队列不受农业积压拖累;配置缺失时高风险写入口关闭并告警,公开只读按降级规则工作。
- 测试:每队列投递/消费、进程重启、优雅停止、错误日志、无 Key 地图降级、配置掩码和密钥轮换。
- 风险:所有 worker 共用一个进程、真实密钥入库/日志、Docker 与 supervisor 行为漂移。
-
角色/工期:运维主责,后端基础设施和安全评审,
8~12 PD。
- 目标:让订单、库存、权益、账本、事件和任务失败可被发现、定位、重试和交班。
-
前置:
OPS-001、BE-CW-008、BE-AG-005。 -
输入文档:
20、22、32-34、38-41。 -
文件:
Msmartfarm/config/farm.php、install/upgrade/farm_v1/README.md;Nsmartfarm/scripts/farm_v1/{health_check.php,queue_lag_check.php,posting_recovery_check.php,reconciliation_check.php};Nscripts/qa/runbooks/{queue-backlog,posting-failure,inventory-difference,payment-late-callback,allocation-conflict,trace-withdrawal}.md;R现有日志、Redis、数据库监控和通知渠道。 - 接口/表/事件/权限:指标至少覆盖 Outbox 待发/最老时长、消费失败、Job 租约、队列积压、支付/退款修复、posting、库存/权益恒等式、异常 SLA;只读脚本不直接修复数据。
- 验收:每个 P0 告警有阈值、责任人、操作号查询、止损、恢复、复核和升级路径;日志带 trace_id/event_id/run_key/posting_key 且 PII 脱敏。
- 测试:人工注入队列积压、posting 失败、库存差异、地图/存储超时;值班人员仅按手册可定位并安全转交。
- 风险:告警只发不闭环、脚本兼具查询和修改、日志记录支付/用户敏感信息。
-
角色/工期:运维主责,QA/技术负责人/业务值班评审,
10~15 PD。
- 目标:在全新库和脱敏升级副本执行完整发布,验证应用回退但保留业务表的生产边界。
-
前置:
QA-REL-001、所有里程碑验收通过。 -
输入文档:
21-22、26、34、38-41。 -
文件:
Msmartfarm/install/upgrade/farm_v1/README.md、verify_before.sql、verify_after.sql;Nscripts/qa/runbooks/{release-checklist,migration-rollback-boundary,application-rollback,post-release-hypercare}.md、scripts/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-001、QA-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-001、SVC-WORK-002
|
QA-AG-001 |
地址/包裹/退款、异常方案确认、不可变溯源公开 |
下表是推荐排期模板,不依赖具体日期。项目经理根据实际到岗人数只调整并行度,不改变前置顺序和里程碑退出条件。
| 迭代 | 主目标 | Ready 候选任务 | 集成/演示 |
|---|---|---|---|
S00 |
低保真人工评审与视觉基线 | DES-001 |
四端真实参考页 |
S01 |
高保真母版、契约和 G6 |
DES-002、BE-FND-001 的评审准备 |
启动评审,不写业务代码 |
S02 |
migration 与测试骨架 |
BE-FND-002、QA-FND-001、OPS-001
|
空库 up/down/up、契约检查 |
S03 |
支撑层与事件骨架 | BE-FND-003/004 |
幂等、Outbox、队列故障恢复 |
S04 |
CRMEB 订单策略 |
BE-CRM-001/002、QA-CRM-001
|
普通/首次/二次三策略回归 |
S05 |
前端基础与商品农业资料 |
ADM-FND-001、MER-FND-001、USR-FND-001、SVC-FND-001、BE-CW-001、DES-CW-001
|
五端壳、商品资料审核 |
S06 |
云仓供货与农业主数据 |
BE-CW-002、BE-AG-001、ADM-AG-001、MER-CW-001、DES-AG-001
|
供货数量链、农场资产 |
S07 |
活动发布与权益套餐 |
BE-CW-003、ADM-CW-001、BE-AG-002、ADM-AG-002
|
活动发布、租地/认养套餐 |
S08 |
首次抢购与用户农业权益 |
BE-CW-004、USR-CW-001、USR-AG-001
|
抢购付款稍后选择、真实权益待分配 |
S09 |
去向、运费、自提 |
BE-CW-005、ADM-CW-002、USR-CW-002
|
三种去向与竞态演示 |
S10 |
二次库存与现场任务 |
BE-CW-006、BE-AG-003、SVC-WORK-001
|
FEFO、任务/扫码/离线草稿 |
S11 |
用户结算与农业产出 |
BE-CW-007、USR-CW-003、BE-AG-004、SVC-WORK-002
|
三种结算、产出与邮寄 |
S12 |
商户货款、回购与农业异常 |
BE-CW-008、ADM-CW-003、MER-CW-002、BE-AG-005
|
日结单/回购、异常/溯源 |
S13 |
农业前端闭环 |
ADM-AG-003、USR-AG-002、SVC-DESK-001
|
生产到邮寄、异常和溯源 |
S14 |
云仓领域验收 | QA-CW-001/002 |
云仓端到端及故障演练 |
S15 |
农业领域验收 | QA-AG-001 |
租地、认养、生产、邮寄闭环 |
S16 |
108 页面与 15 Flow |
QA-E2E-001、OPS-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,按事故流程处理,不等待站会。
- 变更单必须写明旧规则、新规则、原因、受影响决策/页面/API/表/事件/文件/测试和已产生业务数据的兼容方案。
- 只改文案且不影响状态、字段和验收的变更,可由产品 + UI/前端确认。
- 影响金额、库存、权益、退款、状态迁移、权限、迁移或已发布快照的变更,必须由产品、技术负责人、QA 和对应业务负责人共同批准。
- 进入
M8后原则上冻结 P0 范围;新增功能进入下一版本。只接受阻断上线、数据错误、安全或监管必需的变更。 - 已合并 migration 不改历史文件语义;新增前滚脚本。已发布 API/事件不原地改变含义;增加版本或兼容字段。
- 任何“临时直接改库”都不是修复方案。先止损、生成异常/调整/冲正或前滚修复,再留下审计和验证证据。
在任务系统创建卡片时直接复制以下模板:
任务 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-001、DES-AG-001 和 QA-E2E-001
|
| 农业业务表 | 90 |
BE-FND-002 migration;各领域后端卡负责 Model/DAO/Repository 和事务 |
| migration 分组 | 12 |
BE-FND-002、OPS-003
|
| 写操作 | 以 31 唯一集合为准 |
分配至 BE-CRM/CW/AG-*,由 QA-FND-001 静态比对 |
| 事件/Job/Timer | 以 32 唯一集合为准 |
BE-FND-004 和领域后端卡,OPS-002 监控 |
| 端/职能分包 | 8 | 设计、后端、平台、商户、用户、服务、测试、运维 |
| 可领取任务 | 53 | 每张均有唯一 ID、前置、输入、文件、契约、验收、测试、风险、角色和 PD |
最终完成判定:
- 53 张任务卡全部 Done 或由正式变更单移出 V1。
- 所有里程碑退出证据齐全,关键路径没有跳过项。
- 108 页面、15 Flow、90 表、全部写操作和事件任务的自动覆盖检查为零缺口。
- 普通商城回归、五段对账、全新库/升级副本 migration、应用回退和故障恢复均通过。
- 平台管理员、商户、用户、客服/现场四类手册已用正式页面复核并完成交接。
- 首页
- 项目总览
- 项目立项
- 端与角色
- 供应链经营闭环
- 模块地图
- V1 范围 PRD
- 任务拆解
- 结算与账本
- V1 结算口径
- 云仓秒杀
- CRMEB 底座能力映射
- 当前菜单页面审计
- V1 决策与术语
- 云仓流程与状态机
- 租地认养与溯源 PRD
- V1 数据模型草案
- 开发前设计计划
- V1 信息架构
- 页面与原型规格
- V1 API 契约草案
- 事件任务权限通知
- 五项目代码改造蓝图
- 测试验收发布与手册计划
- CRMEB 视觉基线审计
- G3/G4 决策登记表
- 用户端 uni-app 复用审计
- 开发前主清单
- 自主设计工作指引
- V1 需求追踪矩阵
- G3 技术专项验证报告
- V1 P0 页面矩阵
- 写操作契约注册表
- 事件任务操作注册表
- 状态异常事务矩阵
- 数据库字段字典
- 页面 API 文件追踪
- V1 ER 图
- API 字段契约注册表
- 平台管理员手册
- 商户手册
- 用户帮助
- 服务与现场手册
- 开发任务包
- 测试目录与 Fixtures
- 发布与运维手册
- 设计交付与研发交接