2.2 KiB
2.2 KiB
2026-08-10 M09-B 清洁规则与照片验收
工程结果
- 工程提交:
bc7cb8f,已推送并验证远端main与本地 HEAD 一致。 - 复用既有保洁任务状态机,新增租户/门店/房间模板解析和任务级规则快照;模板更新明确只影响新任务并写审计。
- 小程序按任务快照限制照片最少/最多张数;上传端与服务端共同限制格式、大小和数量。
- 图片声明 MIME、扩展名与实际解码格式必须一致,统一重编码 WebP 以移除 EXIF/ICC;路径按租户/门店隔离,上传记录失败时立即删除文件。
- 任务照片资产与验收提交版本落库;提交 URL 必须属于同租户、同任务、同上传人。驳回原因、补做次数、旧照片和新照片可逐版查询,后台详情可预览并导出。
- 未提交照片默认 7 天后可清理;清理失败保留孤儿记录并在五分钟后重试,已关联提交版本的照片不进入清理批次。
- 免清洁由任务快照决定允许阶段;免清洁仍清零奖励、移除未结算成员且不进入结算。
- 订单结束、取消和换房旧房间断电前重新读取最新订单;房间已有新订单时不发送取消任务或插座断电。
验证证据
- Windows
scripts/dev/windows/test-all.ps1:65.7 秒,退出码 0;后端全测、迁移计划、管理员 typecheck/build/navigation、静态门禁、健康检查、敏感信息与仓库完整性均通过。 - 管理员生产构建最大 JS 分块
217,453 B,继续低于500 KiB;仅保留第三方@vueuse/corePURE 注释位置警告,未隐藏 warning 阈值。 - WSL 原生临时副本 + MySQL 8.4:149 up、128 verify、145 down 往返通过;实测模板快照不追改、驳回/通过照片版本并存、到期孤儿照片清理、任务级免清洁拒绝和既有事务并发场景。
scripts/check-m09-b-cleaning-rules.mjs已加入全量脚本,固定迁移、图片安全、版本化验收和安全断电回归门禁。
阶段结论
M09-B=DONE。唯一执行游标进入 M09-C;真实微信转账、团购授权和硬件现场结果继续为 BLOCKED_EXTERNAL,不阻断内部统计与结算收口。