Appearance
小程序在制(WIP)能力范围
与 system-design.md(生产域模型)、miniapp-acc-mobile-write.md、miniapp-m3-wip-acceptance.md、permission-matrix.md 配套。
读者:产品、实施培训、前端/小程序开发。
目的:明确 移动端能做什么、不能做什么,避免现场以为「手机能走完在制全生命周期」。
1. 生产两种模式(全平台)
| 模式 | 后端语义 | 典型 orderStatus | 报工子表 |
|---|---|---|---|
| 一次过账 | POST /acc/production/post | 关账语义(closed) | 无 AccWorkOperationReport,记工随单写入 |
| 在制(WIP) | POST /acc/production/wip/open 开单 → 报工 → wip/close 关账 | 开单后 open,关账后 closed | 有工序报工子表;计件报工会动库存与产出行数量 |
小程序 两种模式都支持「开单侧」的一部分;在制 关账 可在手机确认提交(production-wip-close);整单冲红、已结算报工冲红 仍以 Web 记账中心 为准;现场直录(wip/op/add)记录员可在小程序详情进入。
2. 能力总览(小程序 vs Web)
| 能力 | Web 记账中心 | 小程序 | 说明 |
|---|---|---|---|
| 生产列表 / 详情(含进度条) | ✅ | ✅ production-list / production-detail | 详情只读;在制单可看原料/产出/记工汇总 |
| 一次过账新建 | ✅ | ✅ production-create | 原料 + 产出 + 记工一次提交 |
| 在制开单 | ✅ | ✅ production-wip-open | 投料 + 计划产出行(qtyPlanned,0=不限制) |
现场直接报工 wip/op/add | ✅ | ✅ production-wip-op-add | 无审核时现场录入;有审核时优先登记链路 |
| 工人报工登记 + 审核 | ✅(登记列表) | ✅ | 见下文 §3 报工登记链路 |
在制关账 wip/close | ✅ | ✅ production-wip-close | 从在制详情进入;成本扎口、状态变 closed(Web 生产详情亦可关账) |
删除报工 wip/op/delete | ✅ | ⚠️ 仅审核侧「重新审核」 | 小程序通过 labor-submission-review-detail 调 op/delete 恢复待审,无通用报工表删行 UI |
冲红报工 wip/op/reverse | ✅ | ❌ | 需 PROD_WIP_LEAD / 管理员;列表页已提示「冲红请在 Web」 |
| 生产单 / 出库冲红(整单) | ✅ | ❌ | 与 btn_acc_production_wip_correct 相关 |
| 开单后「去出库」 | ✅ | ✅ | 从 production-detail 跳转 outbound-create 预填 |
3. 报工登记链路(小程序主路径)
在制开单后,现场报工推荐走 工人登记 → 站点审核,而不是 wip/op/add:
mermaid
flowchart LR
A[记录员: production-wip-open] --> B[orderStatus=open]
B --> C[工人: 选生产单报工登记]
C --> D[labor-submission-save]
D --> E{审核}
E -->|通过| F[后端写入正式 wip 报工+记工]
E -->|驳回| C
F --> G[记录员: production-wip-close 关账]3.1 记录员
| 页面 | API(前缀 /api/acc) | 权限要点 |
|---|---|---|
production-list | production/page | 读:menu_acc_production / mobile_recorder_production |
production-wip-open | production/wip/open | 写:btn_acc_production_write |
production-detail | production/detail | 同读;有出库写权限时可「去出库」;在制 + 生产写权限时可「在制关账」 |
production-wip-close | production/wip/close | 写:btn_acc_production_write |
labor-submission-review | wip/labor-submission/site-page | btn_acc_labor_review 或 mobile_manager_labor_review |
labor-submission-review-detail | site-get、approve、reject;重新审核时 wip/op/delete | 同上 |
3.2 工人
| 页面 | API | 权限要点 |
|---|---|---|
labor-submission-mine | wip/labor-submission/my-page | mobile_worker_labor_submission |
labor-submission-pick | production/page(选 open 单) | 同上 |
labor-submission-form | wip/labor-submission/save | 同上;可带 resubmitFromId 重提 |
labor-submission-detail | my-get、my-withdraw(仅待审) | 同上 |
工人 不能 在小程序调用 wip/op/add;审核通过后由后端等价落正式报工。
3.3 经理
经理与记录员 共用 labor-submission-review* 页面(门禁角色 recorder | manager + 审核权限码)。
不包含 工资结算、报表(另有 settlement / reports 等入口)。
4. 一次过账(非 WIP,但同属 M3)
| 页面 | API | 与在制关系 |
|---|---|---|
production-create | production/post | 独立流程;开单后无 open 报工周期 |
| 列表 FAB「新建生产单」 | 同上 | 与「在制开单」并列入口 |
权限:读见 §3.1;写须 btn_acc_production_write(与 production-wip-open 相同)。
5. 权限码(实施配置)
| 场景 | 建议 permission / 角色 |
|---|---|
| 看生产列表、详情 | menu_acc_production 或 mobile_recorder_production |
| 一次过账 / 在制开单 | 上列 + btn_acc_production_write |
| 工人报工登记 | mobile_worker_labor_submission + 工人账号绑定站点 workers/me |
| 审核报工 | btn_acc_labor_review 或 mobile_manager_labor_review |
| Web 冲红 / 删报工(已结算) | btn_acc_production_wip_correct + PROD_WIP_LEAD 或 ADMIN |
仅勾选「生产」菜单 不能 开 WIP、不能审核;见 permission-code-conventions.md 与预发矩阵 permission-staging-checklist.md。
改角色后须 重新登录(会话与 claims 缓存失效)。
6. 推荐现场流程(培训用)
适合全程用手机:
- 记录员:首页进生产 → 在制开单(投料 + 计划产出)。
- 工人:报工登记 → 选该生产单 → 填工序/数量/照片 → 提交。
- 记录员或经理:报工审核 → 通过 / 驳回。
- 需要出库时:生产详情 → 去出库。
必须回 Web:
- 冲红已结算报工、删除非登记来源的未结算报工(除审核侧「重新审核」外)。
- 生产单 整单冲红(含在制报工子表的维护)。
- 复杂配方维护、大批量报表。
可在手机完成: 在制 关账(含成本预览)、现场报工、工人 登记→审核 主路径。
列表页顶部说明与本文一致:production-list 文案已注明冲红走 Web。
7. 代码索引(便于改需求时跳转)
| 说明 | 路径 |
|---|---|
| 在制开单页 | miniapp/src/pages/recorder/production-wip-open.vue |
| 在制关账页 | miniapp/src/pages/recorder/production-wip-close.vue |
| 开单 / 关账 API | miniapp/src/api/acc-production.ts → postProductionWipOpen / postProductionWipClose |
| 报工登记 API | miniapp/src/api/acc-production-labor-submission.ts |
| 计划产出行表单 | production-output-line-form.vue + wipPlan 会话 |
| 页面门禁 | useRecorderModuleGate('production')、useMiniappPageGate(审核)、useWorkerMobileGate |
| Web 在制报工/关账/冲红 | frontend/src/shared/api/acc/work-types-and-production.ts |
8. 未实现 / backlog(产品 backlog)
产品定稿(2026-05):生产 整单冲红、已结算报工冲红、非登记来源报工删除 仍以 Web 记账中心 为准;小程序不提供等价写入口,避免现场误操作与权限扩散。若未来要做移动端冲红,须单独评审并复用 btn_acc_production_wip_correct。
按优先级(与 miniapp-large-page-split.md 可并行):
| 项 | 价值 | 复杂度 |
|---|---|---|
wip/op/add 简版 | 已实现:production-wip-op-add | — |
wip/close 只读确认 + 提交 | 已实现:production-detail → production-wip-close;Web 详情「在制关账」 | — |
| 已实现:登记来源行「查看登记/重新审核」→ 审核详情;已结算冲红仍 Web | — | |
已实现:production-wip-open 成功后弹窗 → labor-submission-form?productionId=(有工人报工权限时) | — |
不在范围内:个人记账分包、通知、纯 miniRole 无 permissionCodes 的页面。
9. 验收
- 手工:miniapp-m3-wip-acceptance.md(开单、列表、审核)。
- 自动化:
pnpm --filter taskflow-backend run test:permission(含postWipOpen、审核、写权限拒绝)。
预发签字可将本文 §2 总览表 与 §6 推荐流程 发给实施,作为移动端在制标准话术。