64 KiB
M08-B 保洁端
本次工程增量
- 新增
2026062525_m08b_cleaner_tasks迁移,建立qipai_cleaning_tasks与qipai_cleaning_task_events,覆盖 WAITING、CLAIMED、STARTED、SUBMITTED、COMPLETED、REJECTED、EXEMPT、SETTLED、CANCELLED 状态和事件追踪。 - 权限补齐
cleaning.task.write、cleaning.statistics.read,CLEANER、门店管理员、租户管理员和平台管理员可获得保洁任务读写与统计能力。 - 新增
CleaningTaskRepository与/app-api/cleaning/*路由:任务大厅、我的任务、接单、开始、提交验收和个人统计均要求登录态与保洁权限。 - 生产
server.ts注入真实保洁仓储,迁移 runner 纳入 M08-B 数据库迁移。 - 小程序新增
pages/cleaner/tasks,调用真实 app-api 展示任务大厅、我的任务、待结算统计,并支持接单、开始和提交照片 URL 验收。 scripts/check-miniapp-m08-a.mjs扩展为同时检查 M08-A 顾客端与 M08-B 保洁端页面注册和真实接口调用。
2026-06-26 增量
/app-api/cleaning/tasks/:taskId/photos接入受控图片上传:保洁员必须登录且拥有当前任务,任务状态必须为STARTED或REJECTED,上传后复用MediaStorage压缩为 WebP 并返回固定https://api.txyundm.cn/uploads/...URL。/app-api/cleaning/tasks/:taskId/submit改为必须提交至少一张照片;REJECTED任务允许再次提交,提交后清空驳回原因并记录事件。- 新增
/app-api/cleaning/tasks/:taskId/rework,保洁员可将本人REJECTED任务重新转为STARTED,清空旧照片和驳回原因,进入补做流程。 OrderStateRepository在订单状态进入FINISHED时通过同一事务调用CleaningTaskRepository.createForFinishedOrder,按order_id唯一键幂等创建WAITING保洁任务并写入AUTO_CREATE事件。- 小程序保洁端将手工照片 URL 文本框改为相机/相册选择图片,上传成功后再提交验收;驳回任务显示原因并提供“重做”入口。
- 修复
marketing-benefit-service.test.mjs中固定订单时间导致 2026-06-26 后自然过期的问题,改为相对未来时间,避免测试随日期漂移失效。
2026-06-26 继续增量
- 新增管理侧保洁任务查询
/admin-api/cleaning/tasks,按管理员门店范围和状态筛选任务。 - 新增管理侧指派
/admin-api/cleaning/tasks/:taskId/assign,指派前校验被指派用户为有效CLEANER且拥有任务门店范围。 - 新增管理侧验收
/admin-api/cleaning/tasks/:taskId/complete,将SUBMITTED任务转为COMPLETED并记录事件。 - 新增管理侧驳回
/admin-api/cleaning/tasks/:taskId/reject,写入驳回原因并允许保洁端进入补做链路。 - 新增
/admin-api/cleaning/settlement-candidates,返回COMPLETED且未结算的任务,作为后续结算单生成前置。
2026-06-26 结算增量
- 新增
2026062626_m08b_cleaning_settlements迁移,建立保洁结算单主表和明细表,任务明细唯一进入一个结算单。 - 新增
cleaning.settlement.read和cleaning.settlement.write权限,保洁员可读本人结算相关能力,门店/租户/平台管理员可生成和确认结算。 - 新增
GET /admin-api/cleaning/settlements、POST /admin-api/cleaning/settlements和POST /admin-api/cleaning/settlements/:id/confirm,支持从已完成未结算任务生成DRAFT结算单并确认到CONFIRMED。 - 结算生成会锁定当前候选任务,写入结算明细,固化任务奖励金额,并把任务转为
SETTLED,避免同一任务重复结算。 - 新增
POST /admin-api/cleaning/reclaim-timeouts,可按分钟阈值和数量限制回收超时停留在CLAIMED/STARTED的任务,恢复到任务大厅。
2026-06-26 多人协作增量
- 新增
2026062627_m08b_cleaning_collaboration迁移,建立qipai_cleaning_task_members,支持LEAD负责人和ASSIST协作者、成员分账金额、移除和成员维度结算时间。 - 调整
qipai_cleaning_settlement_items,新增cleaner_user_id,唯一键从“任务唯一”升级为“任务 + 保洁员唯一”,允许同一协作任务按成员分别进入不同保洁员结算单。 CleaningTaskRepository在接单、指派和验收时自动维护负责人成员;重新指派会撤掉旧未结算负责人,避免同一任务出现多个有效LEAD。- 新增管理侧成员接口:查看成员、添加/更新协作者、移除未结算协作者。协作者必须拥有
CLEANER角色和任务门店范围,协作者分账总额不能超过任务奖励。 GET /app-api/cleaning/tasks/mine与GET /app-api/cleaning/stats扩展为负责人/协作者视角;待结算金额按成员分账金额统计。- 结算生成改为按成员
reward_cents生成明细,单个成员结算后只标记该成员settled_at;所有有效成员均结清后任务才整体转为SETTLED。
2026-06-27 发放闭环增量
- 新增
2026062728_m08b_cleaning_payouts迁移,为qipai_cleaning_settlements增加paid_by、payout_channel、payout_reference和payout_error,记录保洁结算发放操作人、渠道、外部流水号和失败原因。 - 新增
POST /admin-api/cleaning/settlements/:settlementId/paid,仅允许管理员将CONFIRMED结算单标记为PAID,写入发放渠道、流水号、发放人和paid_at,并清空旧失败原因。 - 新增
POST /admin-api/cleaning/settlements/:settlementId/payout-failure,仅允许对CONFIRMED结算单记录发放失败原因,保留CONFIRMED状态,支持修复外部付款后重试。 - 结算单查询返回新增发放字段,管理端后续可以直接展示发放状态、渠道流水和失败原因。
2026-06-27 微信转账适配增量
WechatPayClient新增微信支付商家转账请求能力,按商户转账单号、转账场景、openid、金额、备注、通知地址和场景报备信息发起POST /v3/fund-app/mch-transfer/transfer-bills,并解析微信转账单号、状态、失败原因和package_info。- 新增
CleaningPayoutService,从结算单解析租户、门店、保洁员、金额和状态,复用门店/全局微信收款账户与环境凭据,校验商户号一致、收款账户已授权、保洁员存在微信 openid,再执行真实微信转账或测试 Mock。 - 新增
QIPAI_CLEANING_PAYOUT_MOCK_ENABLED,仅非生产环境允许 Mock 发放;生产环境不会因为误配打开 Mock。 - 新增
2026062729_m08b_cleaning_transfer_state迁移,为保洁结算单增加payout_state和payout_package_info,记录SUCCESS、FAIL、WAIT_USER_CONFIRM、PROCESSING等微信转账中间态。 - 新增
POST /admin-api/cleaning/settlements/:settlementId/wechat-transfer,管理员可对CONFIRMED结算单发起微信转账;成功直接落PAID,失败记录失败原因,待用户确认/处理中则保留CONFIRMED并写入中间态和微信 package 信息,便于后续查询或回调闭环。
2026-06-29 微信转账回调与轮询增量
WechatPayClient新增商户单号查询微信商家转账接口,按out_bill_no调用微信查询 API 并解析商户号、微信转账单号、状态、失败原因和转账金额。CleaningPayoutService.syncWechatTransfer新增主动轮询闭环:管理员可对已发起微信转账的CONFIRMED结算单同步微信状态;SUCCESS自动标记PAID,FAIL记录失败原因,其它中间态继续保留CONFIRMED并更新payout_state。CleaningPayoutService.processWechatTransferNotification新增微信转账通知处理:按微信平台证书序列号选择凭据、验签解密原始通知、校验商户号,再通过商户单号或微信转账单号定位结算单并写回成功、失败或中间态。- 新增
POST /admin-api/cleaning/settlements/:settlementId/wechat-transfer/sync,用于后台手动同步或后续定时轮询调用。 - 新增
POST /app-api/cleaning/wechat-transfer/notify,免登录接收微信转账回调,使用流式preParsing捕获原始 body,避免验签因 JSON 重序列化失效。
2026-06-29 保洁管理后台增量
admin/从空目录升级为 Vue3 + Vite + TypeScript + Element Plus 后台工程,构建基址固定为/admin/,生产后台 API 固定为https://api.txyundm.cn/admin-api。- 新增保洁运营首屏,支持后台访问令牌本地保存、任务/结算双标签、待验收/完成/待发放/本页金额概览,并适配桌面、平板和手机浏览器。
- 新增保洁任务管理面板:按状态筛选任务,查看门店/房间/保洁员/成员/奖励/照片数量,支持指派、验收、驳回和超时回收。
- 新增保洁结算管理面板:按状态筛选结算单,支持生成结算单、确认结算、发起微信转账、同步微信转账状态和记录发放失败。
- 新增
scripts/check-admin-m08-b.mjs并接入 Windowstest-all.ps1,静态检查后台依赖、固定域名、构建基址、M08-B API 封装和关键控件。
2026-06-29 微信转账预检增量
CleaningPayoutService新增preflightWechatTransfer,不触发真实转账,仅读取结算单、收款账户、微信支付凭据元数据和保洁员 openid,返回脱敏商户号、凭据引用、场景 ID、报备项数量、通知地址、平台证书数量和逐项 PASS/WARN/FAIL。- 新增
GET /admin-api/cleaning/settlements/:settlementId/wechat-transfer/preflight,管理员可在真实商户转账前检查结算单状态、金额、收款账户授权、商户号匹配、场景报备配置、通知证书和保洁员 openid。 - 后台结算面板新增“预检”操作和结果弹窗,展示真实转账前置条件是否满足,帮助现场联调前明确缺失项。
scripts/check-admin-m08-b.mjs扩展检查微信转账预检 API 封装和后台控件。
2026-06-30 后台协作与结算详情增量
- 新增
GET /admin-api/cleaning/settlements/:settlementId,按租户和门店数据范围返回结算单主信息与固化结算明细,包含任务号、订单号、门店、房间、保洁员、成员分账金额和完成时间。 - 后台任务面板新增“成员”入口,可查看负责人/协作者、分账金额和结算状态,并支持添加/更新协作者与移除未结算协作者。
- 后台结算面板新增“详情”入口,可查看结算单任务明细、转账状态、外部流水、失败原因和备注,避免管理员只能从列表猜测结算口径。
scripts/check-admin-m08-b.mjs扩展检查协作者管理、结算详情和对应 API 封装。
2026-06-30 统计明细增量
- 新增
GET /admin-api/cleaning/statistics,支持按开始日期、结束日期和门店 ID 筛选,按登录管理员的租户与门店数据范围裁剪统计。 - 管理侧统计返回任务状态分布、门店任务明细、结算状态金额和成员分账排行,明确待验收、待结算、待发放、已发放和成员分账口径。
- 后台新增“统计”标签页,展示任务状态、结算口径、门店明细和成员分账;首屏四个指标改为使用管理侧统计接口,不再依赖当前分页粗略汇总。
scripts/check-admin-m08-b.mjs扩展检查统计标签页、统计 API 封装和关键统计展示控件。
2026-06-30 保洁员资料管理增量
/admin-api/users新增role查询参数,支持后台按CLEANER、STAFF、STORE_ADMIN和TENANT_ADMIN筛选员工,继续复用员工管理权限和门店数据范围。- 后台统计页新增“今日/近7天/本月”快捷周期,自动生成闭区间起始日和次日/次月结束日并刷新管理统计。
- 后台新增“保洁员”标签页,支持按状态和关键词筛选保洁员,查看门店范围、备注、最近登录和脱敏 IP。
- 后台保洁员资料管理接入已有员工 API,支持创建
CLEANER、编辑姓名/门店范围/备注、启用/停用和重置会话。
2026-06-30 统计趋势增量
- 管理侧
GET /admin-api/cleaning/statistics在原有状态分布、门店明细、结算口径和成员分账排行基础上追加trend,按任务创建日期聚合每日任务总数、待验收、完成、驳回、奖励和已发放金额。 - 后台统计页新增“每日趋势”区块,使用响应式条形行展示每日任务量,并并列呈现待验、完成、驳回、奖励和发放金额,方便运营按周期筛选后查看波动。
scripts/check-admin-m08-b.mjs扩展检查每日趋势控件和发放金额字段,避免后续后台改动丢失趋势展示。
2026-06-30 保洁员资料细节增量
/admin-api/users列表返回新增avatarUrl与wechatMiniappBound,后台可判断保洁员是否已绑定微信小程序 openid,为真实微信转账资料预检提供更直观的人员资料状态。- 后台“保洁员”列表新增资料标签,展示“已绑微信/未绑微信”和“资料完整/待补资料”,资料完整度按微信绑定、门店范围和姓名综合判断。
- 后台保洁员编辑弹窗补手机号维护,提交时透传
phone到既有员工更新接口,继续保留CLEANER角色和门店范围约束。 scripts/check-admin-m08-b.mjs扩展检查微信绑定、资料完整度和保洁员资料标签,backend/tests/user-management.test.mjs覆盖手机号更新透传。
2026-06-30 保洁员选择器增量
- 后台任务指派弹窗从手填“保洁员用户 ID”升级为可搜索保洁员选择器,选项展示姓名、用户 ID、脱敏手机号、门店范围和微信绑定状态,降低现场运营输错 ID 的风险。
- 后台任务协作者管理同样接入保洁员选择器,添加/更新协作者前先拦截空选择,并继续保留成员分账金额和备注录入。
- 后台生成保洁结算单接入保洁员选择器,管理员从已加载的
CLEANER列表选择人员后生成结算单,门店 ID 仍作为可选过滤条件。 scripts/check-admin-m08-b.mjs扩展检查任务、结算组件中的el-select、cleanerLabel以及选择器样式,避免后续回退到纯 ID 输入。
2026-06-30 任务结算筛选增量
- 管理侧
GET /admin-api/cleaning/tasks新增storeId与cleanerUserId查询参数;保洁员筛选同时匹配负责人和未移除协作者,继续受管理员门店数据范围裁剪。 - 管理侧
GET /admin-api/cleaning/settlements新增storeId与cleanerUserId查询参数,便于财务按门店、保洁员和结算状态定位待确认、待发放或异常结算单。 - 后台任务列表和结算列表新增门店 ID 输入、保洁员下拉和筛选按钮,筛选条件会随分页、状态切换和刷新进入真实 admin-api 请求。
backend/tests/cleaning-route.test.mjs覆盖任务/结算筛选参数透传;scripts/check-admin-m08-b.mjs扩展检查筛选控件、API 参数和样式。
2026-06-30 任务详情照片预览增量
- 后台任务列表新增“详情”入口,管理员可在弹窗中查看任务号、状态、奖励、保洁员、门店房间、订单、保洁要求和驳回原因。
- 任务详情弹窗新增领取、开始、提交和完成时间线,减少验收/驳回时在列表列之间来回查找。
- 任务详情弹窗支持保洁照片缩略图与大图预览;无照片时显示空状态,便于待验收任务快速确认现场材料。
scripts/check-admin-m08-b.mjs扩展检查任务详情弹窗、照片预览和时间线控件。
验收结果
npm run build(backend/):PASS。node scripts/check-miniapp-m08-a.mjs:PASS。node tests/cleaning-route.test.mjs:PASS。node tests/migration-contract.test.mjs:PASS。node tests/migration-runner.test.mjs:PASS。npm test(backend/):PASS。- 2026-06-26 追加验证:
node tests/cleaning-route.test.mjs:PASS,覆盖rework和照片上传路由。npm test -- --runInBand(backend/):PASS。node scripts/check-miniapp-m08-a.mjs:PASS。- 继续增量后
npm test -- --runInBand(backend/):PASS,覆盖管理侧指派、验收、驳回和待结算候选路由。 - 结算增量后
npm test -- --runInBand(backend/):PASS,覆盖结算迁移、结算单路由和超时回收路由。 - 结算增量后
node scripts/check-miniapp-m08-a.mjs:PASS。 - 多人协作增量后
npm run build(backend/):PASS。 - 多人协作增量后
node tests/migration-contract.test.mjs:PASS。 - 多人协作增量后
node tests/migration-runner.test.mjs:PASS。 - 多人协作增量后
node tests/cleaning-route.test.mjs:PASS,覆盖成员查看、添加和移除路由。 - 发放闭环增量后
npm run build(backend/):PASS。 - 发放闭环增量后
node tests/migration-contract.test.mjs:PASS。 - 发放闭环增量后
node tests/migration-runner.test.mjs:PASS。 - 发放闭环增量后
node tests/cleaning-route.test.mjs:PASS,覆盖结算发放成功和发放失败记录路由。 - 微信转账适配增量后
npm run build(backend/):PASS。 - 微信转账适配增量后
node tests/wechat-pay.test.mjs:PASS,覆盖商家转账请求签名与载荷。 - 微信转账适配增量后
node tests/cleaning-payout-service.test.mjs:PASS,覆盖真实 API 成功、失败、待确认和 Mock 门禁。 - 微信转账适配增量后
node tests/cleaning-route.test.mjs:PASS,覆盖微信转账路由。 - 微信转账适配增量后
node tests/migration-contract.test.mjs:PASS。 - 微信转账适配增量后
node tests/migration-runner.test.mjs:PASS。 - 微信转账适配增量后
node scripts/check-miniapp-m08-a.mjs:PASS。 - 微信转账适配增量后
npm test(backend/):PASS。 - 微信转账回调与轮询增量后
npm run build(backend/):PASS。 - 微信转账回调与轮询增量后
node tests/wechat-pay.test.mjs:PASS,覆盖商户单号查询转账单请求。 - 微信转账回调与轮询增量后
node tests/cleaning-payout-service.test.mjs:PASS,覆盖主动同步成功/失败/处理中和微信通知成功落库。 - 微信转账回调与轮询增量后
node tests/cleaning-route.test.mjs:PASS,覆盖后台同步路由和免登录微信通知路由。 - 微信转账回调与轮询增量后
npm test(backend/):PASS。 - 保洁管理后台增量后
npm run build(admin/):PASS。 - 保洁管理后台增量后
npm audit --omit=dev(admin/):PASS,0 vulnerabilities。 - 保洁管理后台增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 微信转账预检增量后
npm run build(backend/):PASS。 - 微信转账预检增量后
node tests/cleaning-payout-service.test.mjs:PASS,覆盖配置齐全、缺场景报备和缺 openid 的预检结果。 - 微信转账预检增量后
node tests/cleaning-route.test.mjs:PASS,覆盖后台预检路由。 - 微信转账预检增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 微信转账预检增量后
npm run build(admin/):PASS。 - 后台协作与结算详情增量后
npm run build(backend/):PASS。 - 后台协作与结算详情增量后
npm run build(admin/):PASS。 - 后台协作与结算详情增量后
node tests/cleaning-route.test.mjs:PASS,覆盖结算单详情路由。 - 后台协作与结算详情增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 后台协作与结算详情增量后
npm test(backend/):PASS。 - 统计明细增量后
npm run build(backend/):PASS。 - 统计明细增量后
npm run build(admin/):PASS。 - 统计明细增量后
node tests/cleaning-route.test.mjs:PASS,覆盖管理侧统计路由。 - 统计明细增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 统计明细增量后
npm test(backend/):PASS。 - 保洁员资料管理增量后
npm run build(backend/):PASS。 - 保洁员资料管理增量后
npm run build(admin/):PASS。 - 保洁员资料管理增量后
node tests/user-management.test.mjs:PASS,覆盖role=CLEANER员工筛选。 - 保洁员资料管理增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 统计趋势增量后
npm run build(backend/):PASS。 - 统计趋势增量后
npm run build(admin/):PASS。 - 统计趋势增量后
node tests/cleaning-route.test.mjs:PASS,覆盖管理统计趋势字段透传。 - 统计趋势增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 保洁员资料细节增量后
npm run build(backend/):PASS。 - 保洁员资料细节增量后
npm run build(admin/):PASS。 - 保洁员资料细节增量后
node tests/user-management.test.mjs:PASS,覆盖手机号更新透传。 - 保洁员资料细节增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 保洁员选择器增量后
npm run build(admin/):PASS。 - 保洁员选择器增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 任务结算筛选增量后
npm run build(backend/):PASS。 - 任务结算筛选增量后
npm run build(admin/):PASS。 - 任务结算筛选增量后
node tests/cleaning-route.test.mjs:PASS,覆盖任务/结算筛选参数透传。 - 任务结算筛选增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 任务详情照片预览增量后
npm run build(admin/):PASS。 - 任务详情照片预览增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 统计按保洁员筛选增量后
npm run build(backend/):PASS。 - 统计按保洁员筛选增量后
npm run build(admin/):PASS。 - 统计按保洁员筛选增量后
node backend/tests/cleaning-route.test.mjs:PASS,覆盖管理统计cleanerUserId参数透传。 - 统计按保洁员筛选增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 待结算候选预览增量后
npm run build(backend/):PASS。 - 待结算候选预览增量后
npm run build(admin/):PASS。 - 待结算候选预览增量后
node backend/tests/cleaning-route.test.mjs:PASS,覆盖候选接口门店/保洁员筛选参数透传。 - 待结算候选预览增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 结算候选导出增量后
npm run build(admin/):PASS。 - 结算候选导出增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 任务事件流水增量后
npm run build(backend/):PASS。 - 任务事件流水增量后
npm run build(admin/):PASS。 - 任务事件流水增量后
node backend/tests/cleaning-route.test.mjs:PASS,覆盖任务事件流水路由。 - 任务事件流水增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 运营待处理入口增量后
npm run build(admin/):PASS。 - 运营待处理入口增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 转账状态筛选增量后
npm run build(backend/):PASS。 - 转账状态筛选增量后
node backend/tests/cleaning-route.test.mjs:PASS,覆盖payoutState参数透传。 - 转账状态筛选增量后
npm run build(admin/):PASS。 - 转账状态筛选增量后
node scripts/check-admin-m08-b.mjs:PASS。 - 微信确认参数展示增量后
npm run build(admin/):PASS。 - 微信确认参数展示增量后
node scripts/check-admin-m08-b.mjs:PASS。
2026-06-30 统计按保洁员筛选增量
- 后端
GET /admin-api/cleaning/statistics新增cleanerUserId查询参数,任务统计按负责人或有效协作者过滤,结算统计和每日已发放金额按结算单保洁员过滤。 - 后台统计页新增可搜索保洁员选择器,与任务列表和结算列表的筛选口径保持一致,支持按单个保洁员定位待验收、待结算、已发放和每日趋势。
backend/tests/cleaning-route.test.mjs补充管理统计筛选参数透传断言,scripts/check-admin-m08-b.mjs补充统计页保洁员筛选控件检查。
2026-06-30 待结算候选预览增量
- 后端
GET /admin-api/cleaning/settlement-candidates新增storeId和cleanerUserId查询参数,候选任务继续限定为COMPLETED且未结算,保洁员筛选覆盖负责人和未移除、未结算协作者。 - 后台结算页新增“候选”入口,可按当前门店/保洁员筛选预览待结算任务、当前页金额、房间、负责人和完成时间,并可将当前筛选带入生成结算单弹窗。
backend/tests/cleaning-route.test.mjs补充候选接口筛选参数透传断言,scripts/check-admin-m08-b.mjs补充后台候选预览控件检查。
2026-06-30 结算候选导出增量
- 后台结算页新增当前结算列表 CSV 导出,包含结算单号、状态、保洁员、门店、任务数、金额、转账状态、外部流水、失败原因和创建时间。
- 待结算候选弹窗新增当前页候选任务 CSV 导出,包含任务号、订单号、门店、房间、保洁员 ID、金额和完成时间,便于财务或线下核对。
- 导出实现使用浏览器 Blob 和 UTF-8 BOM,未新增第三方依赖;
scripts/check-admin-m08-b.mjs补充导出入口检查。
2026-06-30 任务事件流水增量
- 后端新增
GET /admin-api/cleaning/tasks/:taskId/events,按租户和管理员门店范围返回任务最近 50 条事件流水,覆盖动作、from/to 状态、操作人、traceId、备注和创建时间。 - 后台任务详情弹窗新增“操作流水”表格,验收、驳回、回收、协作者变更、结算成员等操作可从任务详情直接追溯。
backend/tests/cleaning-route.test.mjs补充任务事件流水路由断言,scripts/check-admin-m08-b.mjs补充后台任务详情流水检查。
2026-07-02 批量验收驳回增量
- 后台任务列表新增多选列,仅允许选择
SUBMITTED待验收任务,避免把进行中、已完成或已结算任务误纳入批量处理。 - 后台任务工具栏新增“批量验收”和“批量驳回”;批量验收复用现有单任务验收 API 顺序执行,批量驳回要求管理员输入统一驳回原因后再提交。
- 父级工作台新增
handleCompleteMany与handleRejectMany,批量处理完成后同步刷新任务列表和统计概览,保持待验收、完成、待结算金额实时更新。 scripts/check-admin-m08-b.mjs扩展检查批量验收、批量驳回、已选择待验收任务过滤和父子组件事件,避免后续后台改动丢失批量运营能力。
2026-07-02 任务详情协作分账增量
- 后台任务详情弹窗新增“协作分账”区块,直接展示负责人和协作者、成员角色、分账金额与结算状态。
- 打开任务详情时并行加载任务事件流水和成员列表,管理员验收或驳回前可以在同一弹窗核对照片、操作历史和成员分账口径。
- 该增量复用既有
GET /admin-api/cleaning/tasks/:taskId/members,未新增数据库表或后端路由。 scripts/check-admin-m08-b.mjs扩展检查协作分账展示、成员列表加载和 loading 状态,避免详情页回退为只看流水与照片。
2026-07-02 结算批量同步增量
- 后台结算列表新增多选列,仅允许选择
CONFIRMED待发放结算单,避免误同步草稿、已发放或已取消单据。 - 结算工具栏新增“批量同步”,对已选择结算单顺序调用既有微信转账同步 API,批量完成后刷新结算列表和统计概览。
- 父级工作台新增
handleSyncTransferMany,复用单笔同步流程和错误处理,不新增后端路由或数据库字段。 scripts/check-admin-m08-b.mjs扩展检查批量同步按钮、可同步结算单过滤和父子组件事件,防止后续结算面板回退到只能逐行同步。
2026-07-05 运营待处理入口增量
- 后台保洁运营首屏新增“运营待处理”快捷入口,复用管理侧统计结果展示待验收任务、驳回补做、待确认结算和待发放金额。
- 快捷入口可直接切换到任务或结算标签页,并自动应用
SUBMITTED、REJECTED、DRAFT或CONFIRMED状态筛选,减少管理员在多个标签和分段控件之间重复定位。 - 新增
.action-board与.action-tile响应式样式,桌面四列、平板两列、手机单列,保持保洁工作台在桌面、平板和手机浏览器下可扫描。 scripts/check-admin-m08-b.mjs扩展检查运营待处理入口、跳转函数、待确认结算统计和响应式样式,防止后续后台改动丢失快捷处置能力。
2026-07-05 转账状态筛选增量
- 后端
GET /admin-api/cleaning/settlements新增payoutState查询参数,支持NONE、PROCESSING、WAIT_USER_CONFIRM、SUCCESS和FAIL,用于真实商户联调时定位未发起、处理中、待用户确认、成功和失败结算单。 - 结算仓储新增转账状态 SQL 条件,其中
NONE映射为空payout_state,其它状态使用精确匹配,继续叠加租户、门店范围、结算状态、门店和保洁员筛选。 - 后台结算列表新增“转账状态”下拉筛选,请求封装会把筛选条件传入 admin-api;首屏快捷跳转待确认/待发放结算时自动清空旧转账状态筛选,避免误叠加。
backend/tests/cleaning-route.test.mjs覆盖payoutState=FAIL透传,scripts/check-admin-m08-b.mjs覆盖后台筛选控件和 API 参数。
2026-07-05 微信确认参数展示增量
- 后台结算单详情新增“微信确认参数”字段,直接展示已落库的
payoutPackageInfo,方便管理员处理WAIT_USER_CONFIRM场景时核对微信侧确认参数。 - 结算列表 CSV 导出新增“微信确认参数”列,导出时同步带出
payoutPackageInfo,便于财务或现场联调人员离线排查待确认转账。 - 本增量复用既有结算详情和列表返回字段,未新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查payoutPackageInfo和“微信确认参数”展示,避免后续结算详情或导出回退。
2026-07-05 微信预检资料展示增量
- 后台微信转账预检弹窗新增真实商户资料摘要,展示凭据引用、授权状态、账户范围、AppID、商户证书序列号、场景报备、通知 URL、平台证书数量和保洁员 OpenID 状态。
- 新增
configuredText将凭据类布尔字段转成运营可读的“已配置/缺失”,减少现场联调时从检查项表格里反复推断配置缺口。 - 本增量复用既有
preflightWechatTransfer返回结构,未新增后端路由、数据库字段或第三方依赖。 scripts/check-admin-m08-b.mjs扩展检查预检资料字段和格式化函数,避免后续结算面板回退为只展示检查项。
2026-07-05 微信预检导出增量
- 后台微信转账预检弹窗新增“导出预检”按钮,可将当前结算单的 ready 状态、结算摘要、脱敏商户/凭据、授权状态、场景、通知 URL、平台证书、保洁员 OpenID 和全部检查项导出为 CSV。
- 导出文件使用
cleaning-transfer-preflight-{settlementNo}-{timestamp}.csv命名,复用既有 UTF-8 BOM CSV 下载工具,便于真实商户现场联调时留存和转交排查证据。 - 本增量未新增后端路由、数据库字段或第三方依赖,继续复用既有
preflightWechatTransfer结果。 scripts/check-admin-m08-b.mjs扩展检查“导出预检”、exportPreflight和导出文件名前缀,避免后续结算面板丢失现场联调证据导出能力。
2026-07-05 微信转账预检拦截增量
- 后台点击“微信转账”时会自动调用
preflightWechatTransfer,在转账弹窗内展示当前真实转账前置条件检查结果。 - API 模式下预检未完成或存在
FAIL阻断项时禁用“发起”按钮;Mock 模式仍可用于非生产演练,避免真实商户现场误触发不可满足条件的转账请求。 - 新增
transferCanSubmit、transferPreflightTitle和transfer-preflight-alert,将阻断项数量直接展示在转账弹窗里,减少管理员在预检弹窗和转账弹窗之间来回切换。 scripts/check-admin-m08-b.mjs扩展检查转账前预检标题、禁用条件、loading 状态和弹窗样式,避免后续回退为无前置拦截的直接发起。
2026-07-05 任务列表导出增量
- 后台任务列表新增当前筛选页 CSV 导出入口,管理员可导出任务号、状态、门店、房间、订单号、保洁员 ID、协作人数、奖励金额、照片数、提交/完成时间和驳回原因。
- 导出使用浏览器 Blob 和 UTF-8 BOM,不新增第三方依赖;文件名使用
cleaning-tasks-{timestamp}.csv,便于运营按当前筛选结果留存待验收、驳回补做或异常任务证据。 scripts/check-admin-m08-b.mjs扩展检查任务导出按钮、exportTasks、CSV 文件名前缀和照片数量字段,避免后续后台改动丢失任务导出能力。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;node scripts/check-miniapp-m08-a.mjsPASS;check-status-docs.ps1PASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-05 任务详情导出增量
- 后台任务详情弹窗新增“导出详情”,可将单个任务摘要、协作成员分账、最近操作流水和保洁照片链接导出为 CSV。
- 导出文件名使用
cleaning-task-detail-{taskNo}-{timestamp}.csv,便于管理员在验收、驳回、协作分账争议或现场复盘时留存单任务证据。 - 本增量复用任务详情已加载的成员、流水和照片数据,未新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查任务详情导出入口、exportTaskDetail和详情导出文件名前缀。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 现场联调清单增量
- 后台新增“联调”标签页,提供真实商户、微信合法域名、保洁转账和硬件开门/控电的现场联调检查项,覆盖 M08-B 当前真实商户和现场硬件阻塞项。
- 联调面板支持按商户、微信、转账、硬件分类筛选,记录每项状态、负责人和结果备注,并在浏览器本地保存,不把未完成的现场结果写入生产状态。
- 联调清单可导出为
cleaning-field-handoff-{timestamp}.csv,包含检查项、期望、状态、负责人、结果记录和证据要求,便于现场联调留痕和转交排查。 scripts/check-admin-m08-b.mjs扩展检查联调标签页、本地状态键、关键检查项和导出入口。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 联调状态筛选增量
- 后台联调面板新增状态筛选,支持按全部、待处理、通过、阻断和不适用过滤现场检查项。
- 现场联调人员可在商户/微信/转账/硬件分类之外快速聚焦阻断项或待处理项,减少真实商户和硬件现场排查时的人工翻找。
scripts/check-admin-m08-b.mjs扩展检查statusFilter、全部状态选项和.handoff-status-select样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 联调批量标记增量
- 后台联调面板新增“批量标记”,可对当前分类和状态筛选出的检查项统一设置待处理、通过、阻断或不适用。
- 批量标记支持填写负责人和结果记录;留空时不覆盖原负责人或原备注,便于现场把一组阻断项统一分派,或把一批已验项统一标记通过。
- 本增量继续使用浏览器本地存储,不把未完成现场结果写入生产状态,也不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查批量标记入口、bulkForm、applyBulkMark和批量表单样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 联调阻断摘要增量
- 后台联调面板新增“阻断摘要”,当现场检查项被标记为
BLOCKED时自动汇总类别、检查项、负责人和阻断备注。 - 新增“复制摘要”按钮,使用浏览器剪贴板把阻断项整理成多行文本,便于发送给微信商户、硬件厂商或现场负责人;浏览器禁用剪贴板时提示改用 CSV 导出。
- 本增量继续使用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查阻断摘要、blockedItems、copyBlockedSummary和剪贴板调用。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 联调场次信息增量
- 后台联调面板新增联调批次、现场/门店、现场负责人和执行时间字段,记录一次真实商户或硬件现场执行的基本场次信息。
- 场次信息使用浏览器本地存储独立保存,并随联调 CSV 一起导出;复制阻断摘要时也会带上批次、现场、负责人和执行时间,便于跨团队转交排查。
- 本增量不新增后端路由、数据库字段或第三方依赖,仍避免把未完成现场结果写入生产状态。
scripts/check-admin-m08-b.mjs扩展检查场次本地存储键、sessionMeta、persistSessionMeta和场次表单样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-05 联调快照增量
- 后台联调面板新增 JSON 快照导出,包含联调场次信息和全部检查项状态、负责人、结果记录,文件名使用
cleaning-field-handoff-snapshot-{timestamp}.json。 - 新增 JSON 快照导入,校验固定 schema
qipai.cleaning.field-handoff.snapshot.v1后恢复本地联调场次和检查项记录;未知检查项会被忽略,避免旧快照污染新清单。 - 本增量继续仅使用浏览器本地状态,不新增后端路由、数据库字段或第三方依赖,便于现场换电脑、复盘和转交联调记录。
scripts/check-admin-m08-b.mjs扩展检查快照导出、导入、schema 和隐藏文件输入样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调分类进度增量
- 后台联调面板新增分类进度视图,按商户、微信、转账和硬件分别展示通过数、总数、阻断、待处理、不适用以及通过率进度条。
- 分类中存在阻断项时进度条显示异常状态,全部通过时显示成功状态,便于现场负责人快速判断是哪一类外部条件仍未满足。
- 本增量复用既有本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查categoryProgress、passPercent和分类进度样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调验收结论增量
- 后台联调面板新增自动验收结论:当所有检查项均为通过或不适用时显示“可进入现场验收收口”,否则显示仍有多少待处理和阻断项。
- 新增“复制结论”按钮,将联调批次、现场、负责人、执行时间、结论和统计复制为文本,便于现场验收前后快速同步。
- 本增量继续复用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查handoffReady、copyVerdict、结论提示和样式。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调更新时间增量
- 后台联调面板新增“最后更新”展示,场次信息变更、单项状态/负责人/备注编辑、批量标记、重置和快照导入都会刷新更新时间。
- CSV 导出、阻断摘要、验收结论和 JSON 快照均带出最后更新时间,便于现场判断当前记录是否来自最新一轮联调。
- 本增量继续复用浏览器本地状态,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查updatedAt、最后更新字段和本地时间格式化函数。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调证据记录增量
- 后台联调面板为每个真实商户、微信、转账和硬件检查项新增“证据记录”输入,可单独登记截图编号、流水号、设备回包或文件链接,不再只能混入结果备注。
- 顶部进度新增证据记录数,验收结论复制、阻断摘要复制、CSV 导出和 JSON 快照均带出实际证据记录,便于现场复盘和交接。
- 快照导入和本地草稿读取兼容旧数据,缺少
evidenceRef时自动补空,不影响既有联调记录恢复。 scripts/check-admin-m08-b.mjs扩展检查evidenceRef、证据记录字段、证据计数和草稿归一化函数。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调待补证据增量
- 后台联调面板新增“待补证据”统计和清单,自动汇总除“不适用”外尚未填写证据记录的现场检查项。
- 新增“复制证据清单”按钮,将联调批次、现场、负责人、执行时间、最后更新和每个缺证据项的应留证据复制为文本,便于现场负责人集中追补。
- 验收结论复制和 CSV 导出同步带出待补证据数,避免状态已处理但证据未归档时误判为可交接。
- 本增量继续复用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查evidenceMissingItems、evidenceMissingCount、copyEvidenceSummary和复制成功提示。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调交接报告增量
- 后台联调面板新增“复制报告”和“报告”导出按钮,生成保洁现场联调交接报告文本。
- 报告汇总联调场次、负责人、执行时间、最后更新、验收结论、总进度、分类进度、阻断项、待补证据和全部检查项明细。
- 报告明细会同时带出状态、负责人、结果记录、应留证据和证据记录,方便真实商户/硬件现场收口后直接归档。
- 本增量继续复用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查copyHandoffReport、exportHandoffReport、buildHandoffReport、formatReportItem、statusText和导出文件名前缀。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调收口签署增量
- 后台联调场次信息新增验收人、收口结论和下一步字段,用于记录真实商户或硬件现场执行后的确认人与后续动作。
- 阻断摘要、待补证据清单、验收结论、CSV 导出、JSON 快照和交接报告均带出新增签署字段,便于现场交接后追责和复盘。
- 快照导入和本地场次读取兼容旧数据,缺少新增签署字段时自动补空。
- 本增量继续复用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查acceptor、closeoutVerdict、nextAction和createEmptySessionMeta。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 联调收口门禁增量
- 后台联调面板新增收口归档门禁,基于检查项状态、待补证据、验收人和收口结论自动判断“可归档”或“待补齐”。
- 新增“复制门禁”按钮,单独复制联调批次、现场、归档门禁、缺口、验收人、收口结论、下一步和最后更新时间,便于现场收口前同步。
- 验收结论、CSV 导出和交接报告同步带出归档门禁,避免检查项已处理但证据或签署信息未补齐时误归档。
- 本增量继续复用本地联调记录,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查closeoutReady、missingCloseoutFields、copyCloseoutGate、门禁提示和复制成功提示。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 保洁员列表导出增量
- 后台保洁员管理面板新增“导出”按钮,可将当前已加载筛选页导出为
cleaning-cleaners-{timestamp}.csv。 - 导出字段包含保洁员 ID、姓名、状态、微信绑定、资料完整度、门店范围、脱敏手机号、最近登录、最近 IP、注册时间和备注,便于运营核对人员资料与门店授权。
- CSV 导出复用前端本地数据和 BOM 编码,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportCleaners、导出文件名前缀、downloadCsv和csvCell。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 保洁统计导出增量
- 后台统计页新增“导出”按钮,可将当前筛选条件下的统计结果导出为
cleaning-statistics-{timestamp}.csv。 - 导出内容按筛选条件、汇总、任务状态、结算口径、每日趋势、门店明细和成员分账分区,便于运营离线复核统计口径。
- CSV 导出复用前端统计接口返回的数据和 BOM 编码,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportStatistics、导出文件名前缀、downloadCsv和csvCell。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 任务流水导出增量
- 后台任务详情的操作流水区块新增“导出流水”按钮,可将当前任务最近操作流水导出为
cleaning-task-events-{taskNo}-{timestamp}.csv。 - 导出字段包含任务号、动作、原状态、新状态、操作人、TraceId、备注和时间,便于运营单独复盘验收、驳回、回收和协作变更记录。
- 本增量复用任务详情已加载的事件流水数据,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportTaskEvents和任务流水导出文件名前缀。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 任务成员导出增量
- 后台任务“协作者管理”弹窗新增“导出成员”按钮,可将当前任务已加载成员分账导出为
cleaning-task-members-{taskNo}-{timestamp}.csv。 - 导出字段包含任务号、成员 ID、昵称、角色、分账金额和结算时间,便于运营在协作分账调整、结算争议和现场复盘时单独留存成员口径。
- 本增量复用协作者管理弹窗已加载的成员数据,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportTaskMembers、任务成员导出文件名前缀和“导出成员”入口。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 结算详情导出增量
- 后台结算单详情弹窗新增“导出详情”按钮,可将单张结算单导出为
cleaning-settlement-detail-{settlementNo}-{timestamp}.csv。 - 导出内容包含结算单摘要、状态、保洁员、门店、任务数、金额、转账状态、外部流水、微信确认参数、失败原因、备注、创建时间和任务明细。
- 本增量复用结算详情接口已加载的数据,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportSettlementDetail和结算详情导出文件名前缀。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-06 运营待处理导出增量
- 后台保洁运营首屏“运营待处理”区新增“导出待处理”入口,可将当前已加载的待处理队列摘要导出为
cleaning-operational-queue-{timestamp}.csv。 - 导出字段包含队列、数量、金额和对应入口,覆盖待验收任务、驳回补做、待确认结算、待发放金额、待结算金额和已完成任务。
- 本增量复用统计接口已加载的首屏数据,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查operationalQueueTotal、exportOperationalQueue、导出文件名前缀和“导出待处理”入口。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 保洁员待补资料导出增量
- 后台保洁员管理页新增“导出待补”按钮,可将当前已加载筛选页中资料不完整的保洁员导出为
cleaning-cleaner-profile-issues-{timestamp}.csv。 - 导出字段包含保洁员 ID、姓名、状态、待补项目、微信绑定、门店范围、脱敏手机号、最近登录和备注,便于真实微信转账前集中补齐人员资料。
- 待补项目按未绑定微信、未配置门店范围和缺姓名判定,复用前端已加载员工列表数据,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查profileIssues、exportCleanerProfileIssues、导出文件名前缀和“导出待补”入口。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调风险清单导出增量
- 后台现场联调面板新增“风险”按钮,可将当前本地联调草稿中的阻断、待处理和缺证据检查项导出为
cleaning-field-risk-register-{timestamp}.csv。 - 导出字段包含联调批次、现场/门店、负责人、执行时间、最后更新时间、检查项、状态、风险/缺口、应留证据、证据记录和下一步,便于真实商户、微信转账、硬件厂商和现场负责人拆分收口。
- 风险清单复用浏览器本地联调草稿和既有 UTF-8 BOM CSV 下载工具,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查riskItems、exportRiskRegister、导出文件名前缀和缺证据标记,避免后续联调面板改动丢失风险导出能力。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调归档包导出增量
- 后台现场联调面板新增“归档包”按钮,只有收口门禁满足时才允许导出
cleaning-field-closeout-archive-{timestamp}.json。 - 归档包包含 schema、导出时间、场次信息、收口门禁、统计摘要、分类进度、风险项、待补证据项、全量检查项和交接报告文本,便于真实商户、微信转账和硬件现场收口后一次性归档。
- 本增量复用本地联调草稿、风险清单、证据清单和交接报告构建逻辑,不新增后端路由、数据库字段或第三方依赖。
scripts/check-admin-m08-b.mjs扩展检查exportCloseoutArchive、buildCloseoutArchive、serializeHandoffItem、归档包 schema 和文件名前缀。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调负责人筛选增量
- 后台现场联调面板新增负责人筛选,支持查看全部负责人、未分派检查项或指定负责人名下检查项。
- 筛选项从当前本地联调草稿中的负责人记录自动聚合,并与分类、状态筛选组合生效,便于真实商户、微信转账和硬件现场执行时按责任人拆分处理。
- 重置联调草稿时负责人筛选同步回到“全部负责人”,避免重置后停留在空结果筛选状态。
scripts/check-admin-m08-b.mjs扩展检查ownerFilter、ownerOptions、负责人筛选控件和未分派选项。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调期限记录增量
- 后台现场联调面板为每个检查项新增“期限”字段,可记录负责人处理阻断、补证据或完成验收的目标日期。
- 批量标记弹窗支持批量写入期限;留空时不覆盖已有期限,便于现场负责人按筛选结果统一分派和排期。
- 阻断摘要、待补证据清单、交接报告、清单 CSV、风险清单、JSON 快照导入导出和归档包均同步带出期限字段。
scripts/check-admin-m08-b.mjs扩展检查deadline、期限列、批量标记期限和日期占位。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调逾期清单增量
- 后台现场联调面板新增逾期统计和“逾期检查项”清单,自动汇总已过期限且状态仍未通过/不适用的检查项。
- 新增“复制逾期清单”按钮,可带出批次、现场、负责人、最后更新、状态、负责人、期限和结果记录,便于现场负责人追踪超时缺口。
- 收口门禁会把逾期检查项纳入待补字段;交接报告、清单 CSV 和归档包同步带出逾期数量与逾期明细。
scripts/check-admin-m08-b.mjs扩展检查overdueItems、isOverdueDraft、parseDeadline、copyOverdueSummary和逾期复制提示。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调负责人看板增量
- 后台现场联调面板新增“负责人看板”,按负责人自动聚合总项、通过、待处理、阻断、缺证据和逾期数量。
- 负责人卡片可直接切换负责人筛选,便于现场负责人从全局看板快速聚焦自己名下或未分派的检查项。
- 新增“复制负责人摘要”按钮;交接报告和归档包同步带出负责人维度汇总,便于真实商户、微信转账和硬件现场复盘。
scripts/check-admin-m08-b.mjs扩展检查ownerProgress、copyOwnerSummary、负责人看板文案和样式类。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 联调执行阶段看板增量
- 后台现场联调面板新增“执行阶段看板”,按商户、微信、转账和硬件阶段聚合通过数、证据数、阻断、缺证据、逾期和下一关注项。
- 阶段卡片可直接切换分类筛选,便于现场负责人从阶段视图快速进入商户资料、微信域名、真实转账或硬件联动缺口。
- 新增“复制阶段摘要”按钮;交接报告和归档包同步带出阶段维度汇总,便于真实商户、微信转账和硬件现场按阶段收口。
scripts/check-admin-m08-b.mjs扩展检查stageProgress、copyStageSummary、阶段看板文案和样式类。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 保洁员绩效排行增量
- 管理侧保洁统计接口的成员维度新增
completedTaskCount和rejectedTaskCount,真实返回每个保洁员的完成任务数和驳回任务数。 - 后台统计页新增“保洁员绩效排行”,按任务数、完成数、驳回数和结算金额排序展示前 8 名,并可点击保洁员卡片进入该保洁员统计筛选。
- 新增“导出排行”按钮,生成
cleaning-cleaner-performance-{timestamp}.csv;统计总导出同步带出成员完成、驳回和绩效排行区段。 scripts/check-admin-m08-b.mjs扩展检查绩效排行 UI、导出文件名前缀、完成/驳回字段和后端统计 SQL 聚合。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;npm test -- --runInBand backend/tests/cleaning-route.test.mjs(backend/,实际执行后端全量测试链)PASS。
2026-07-07 保洁员端统计看板增量
- 保洁员端
GET /app-api/cleaning/stats新增任务总数、完成数、驳回数、完成率和已结算金额,继续按负责人/协作者口径统计当前保洁员可见任务。 - 小程序保洁任务页新增统计看板,展示任务总数、完成率、驳回、待结算和已结算金额,便于保洁员本人核对任务处理和结算口径。
scripts/check-miniapp-m08-a.mjs扩展检查settledRewardText、completionRate、stats-board和统计看板文案,避免后续小程序保洁统计能力回退。- 验证:
npm test -- --runInBand backend/tests/cleaning-route.test.mjs(backend/,实际执行后端全量测试链)PASS;node scripts/check-miniapp-m08-a.mjsPASS;node scripts/check-admin-m08-b.mjsPASS。
2026-07-07 任务免清洁增量
- 后端新增
POST /admin-api/cleaning/tasks/:taskId/exempt,管理侧可将 WAITING、CLAIMED、STARTED、SUBMITTED、REJECTED 任务标记为EXEMPT。 CleaningTaskRepository.exempt在事务内锁定任务、清零任务奖励、移除未结算协作者并写入EXEMPT事件;待结算候选仍限定COMPLETED且未结算任务,免清洁不进入结算。- 后台任务面板新增“免清洁”单任务操作和
EXEMPT状态筛选,操作后刷新任务列表和统计概览。 backend/tests/cleaning-route.test.mjs覆盖免清洁路由透传,scripts/check-admin-m08-b.mjs增加免清洁 API、父组件、任务面板和仓储静态检查。- 验证:
npm run build(backend/)PASS;npm test -- --runInBand backend/tests/cleaning-route.test.mjs(backend/,实际执行后端全量测试链)PASS;npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;node scripts/check-miniapp-m08-a.mjsPASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-08 免清洁统计展示增量
- 管理侧
GET /admin-api/cleaning/statistics新增exempted统计字段,summary、门店明细和每日趋势均可返回免清洁数量。 - 后台统计页新增免清洁概览卡、每日趋势免清洁数量和门店明细免清洁列;统计 CSV 导出同步带出免清洁数量,并保留每日发放和门店奖励口径。
backend/tests/cleaning-route.test.mjs补充summary.exempted、byStore[].exempted、trend[].exempted断言,scripts/check-admin-m08-b.mjs增加免清洁统计展示和后端 SQL 聚合探针。- 验证:
npm run build(backend/)PASS;npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;npm test -- --runInBand backend/tests/cleaning-route.test.mjs(backend/,实际执行后端全量测试链)PASS;node scripts/check-miniapp-m08-a.mjsPASS;check-status-docs.ps1PASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-08 批量免清洁操作增量
- 后台任务列表新增“批量免清洁”工具栏按钮,允许多选 WAITING、CLAIMED、STARTED、SUBMITTED、REJECTED 等可免清洁任务后统一标记。
- 任务面板新增
selectedExemptableTasks和selectedExemptableCount,选择列从仅待验收扩展为可批量处理任务,同时批量验收/批量驳回仍只作用于SUBMITTED待验收任务。 - 父级工作台新增
handleExemptMany,按任务 ID 顺序复用既有免清洁 API,完成后刷新任务列表和统计概览。 scripts/check-admin-m08-b.mjs扩展检查批量免清洁按钮、可免清洁任务过滤和父子组件事件,避免后续管理端批量运营能力回退。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;node scripts/check-miniapp-m08-a.mjsPASS;check-status-docs.ps1PASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-08 联调检查项搜索增量
- 后台现场联调面板新增关键字搜索框,可按检查项 ID、类别、标题、期望、应留证据、状态、负责人、期限、结果记录和证据记录检索。
filteredChecklist新增matchesKeyword条件,关键字检索与分类、状态、负责人筛选叠加生效;批量标记继续作用于当前筛选出的检查项,便于现场按流水号、DeviceID、负责人或证据编号快速定位后批量处理。admin/src/styles.css新增.handoff-search响应式宽度,桌面保持工具栏稳定,移动端占满一行。scripts/check-admin-m08-b.mjs扩展检查keywordFilter、matchesKeyword、搜索框文案和样式,避免后续联调面板回退到只能按状态/负责人筛选。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;node scripts/check-miniapp-m08-a.mjsPASS;check-status-docs.ps1PASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-08 联调筛选导出增量
- 后台现场联调面板将“导出”改为“导出筛选”,CSV 明细只导出当前分类、状态、负责人和关键字筛选后的检查项。
- CSV 顶部新增“当前筛选条件”和“导出检查项数”,带出分类、状态、负责人、关键字和导出数量,便于现场按某个负责人、阻断原因、DeviceID 或证据编号导出交接。
exportChecklist新增exportItems = filteredChecklist.value和buildFilterSummary,让导出结果与表格、批量标记保持同一筛选口径。scripts/check-admin-m08-b.mjs扩展检查“导出筛选”、exportItems、buildFilterSummary和筛选元数据字段,避免后续 CSV 又回退为全量导出。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS;node scripts/check-miniapp-m08-a.mjsPASS;check-status-docs.ps1PASS;check-secrets.ps1PASS;check-large-files.ps1仅保留既有参考\mazongjian-server.xjar超 100MB 警告;git diff --checkPASS。
2026-07-15 联调筛选清除增量
- 后台现场联调面板新增“清除筛选”按钮;仅当分类、状态、负责人或关键字存在任一筛选条件时可用。
- 清除操作将四项视图条件恢复为全量口径,不会修改已填写的检查项状态、负责人、期限、结果记录或证据记录。
scripts/check-admin-m08-b.mjs扩展检查FilterX、hasActiveFilters、clearHandoffFilters和按钮文案,避免后续筛选导出能力缺少无损返回全量视图的入口。- 验证:
npm run build(admin/)PASS;node scripts/check-admin-m08-b.mjsPASS。
状态
M08-B 保持 PARTIAL。当前已完成保洁端任务大厅、我的任务、接单、开始、照片上传、提交验收、驳回补做、订单结束自动建保洁任务、统计、管理员任务查询、指派、验收、驳回、免清洁、批量验收、批量驳回、批量免清洁、超时回收、任务事件流水、任务流水导出、多人协作分账、任务成员导出、任务详情协作分账展示、任务详情导出、待结算候选与后台预览/导出、正式结算单生成、确认、结算详情导出、结算列表导出、任务列表导出、结算批量同步微信状态、结算转账状态筛选、微信确认参数展示与导出、微信转账预检资料展示与导出、真实微信转账前自动预检拦截、发放成功标记、发放失败记录、微信商家转账 API 适配、转账中间态落库、主动轮询同步、微信转账通知回调、微信转账预检、非生产 Mock 门禁、后台任务成员协作管理、任务详情照片预览、操作流水、结算单详情、统计明细、统计导出、保洁员绩效排行、保洁员端统计看板、任务免清洁标记、免清洁统计展示、保洁员资料管理界面、保洁员列表导出、保洁员待补资料导出、手机号维护、微信绑定状态、每日统计趋势、任务/结算/统计/候选门店和保洁员筛选、任务/协作者/结算/统计保洁员选择器、运营待处理快捷入口、运营待处理导出以及真实商户/微信/转账/硬件现场联调清单、联调检查项搜索、联调筛选结果导出与筛选清除、联调状态筛选、联调负责人筛选、联调负责人看板、联调执行阶段看板、联调期限记录、联调逾期清单、联调批量标记、联调阻断摘要复制、联调场次信息记录、联调 JSON 快照导入导出、联调分类进度、联调验收结论复制、联调更新时间、联调证据记录、待补证据清单、联调交接报告、联调风险清单导出、联调归档包导出、联调收口签署字段和联调收口门禁;真实商户现场执行和更完整的后台/小程序管理界面仍待继续。M08-A 的真机合法域名、真实微信支付和实物开门验证按外部条件阻塞保留,不阻断 M08-B 工程推进。
提交
- 最近工程提交:
96c5fa4/M08-B联调筛选清除增量 - 上次远端校验:
3bee3c47b6935f382009a6da5c325f03414a9b03。