Skip to content

UniApp 小程序与 APP 报工准备 ​

简历中没有明确的 UniApp 生产项目,因此本篇用于岗位准备。回答时应把它说成可落地的方案,不要包装成已交付经验。

一、车间移动端最小闭环 ​

text
登录 → 选择工单/工序 → 扫码确认物料或批次 → 填写报工 → 校验设备/位置
  → 本地暂存或提交服务端 → 显示处理结果 → 查询历史与异常

移动端的重点不是页面数量,而是现场网络不稳定、扫码输入快、重复点击、账号共用、设备权限和提交后可追溯。

二、报工提交策略 ​

在线状态 ​

  1. 客户端生成 client_request_id。
  2. 发送工单、工序、批次、数量、设备和采集时间。
  3. 服务端验证身份、权限、工单状态、工序和幂等键。
  4. 返回业务记录号和明确状态。

离线状态 ​

  1. 写入 SQLite 本地队列表,状态为 PENDING。
  2. UI 显示“已保存,待网络恢复同步”,不要伪装成服务端成功。
  3. 网络恢复后按创建顺序或业务优先级同步。
  4. 200/已处理视为成功,业务冲突转为 CONFLICT,网络错误才自动重试。
  5. 同步结果可查询,用户能看到失败原因和人工处理入口。
sql
CREATE TABLE pending_reports (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    client_request_id TEXT NOT NULL UNIQUE,
    payload_json TEXT NOT NULL,
    status TEXT NOT NULL,
    attempts INTEGER NOT NULL DEFAULT 0,
    last_error TEXT,
    created_at TEXT NOT NULL,
    synced_at TEXT
);

三、扫码与防重复提交 ​

  • 扫码结果先做格式校验,再查询物料、批次或工单状态。
  • 提交按钮进入 loading 状态,页面离开前保留本地草稿。
  • 服务端以 client_request_id 建唯一索引,不能只依赖按钮防抖。
  • 重复响应要返回第一次业务结果,不能再次扣料或增加产出。
  • 关键工序可增加设备绑定、工位范围、双人复核或 NFC 等控制,具体以业务规则为准。

四、微信小程序和 APP 的差异 ​

项目微信小程序APP
权限通过微信能力申请需要原生权限和系统设置
存储受平台容量和 API 限制可使用 SQLite 等本地存储
网络小程序请求域名白名单可配置更多网络策略,但仍需 TLS
扫码使用平台扫码能力可使用摄像头或原生扫码模块
发布审核、体验版、正式版Android/iOS 打包、签名和版本审核
更新平台版本和审核节奏热更新边界由公司发布策略决定

公共代码只抽取校验、请求、同步和状态管理;涉及平台权限、推送、蓝牙和扫码时保留适配层,不在业务页面里堆平台判断。

五、前后端接口约定 ​

json
{
  "client_request_id": "mobile-20260929-000001",
  "work_order_no": "WO-20260929-001",
  "operation_code": "OP-010",
  "batch_no": "BATCH-001",
  "device_id": "DEVICE-07",
  "produced_qty": 10,
  "defect_qty": 1,
  "client_created_at": "2026-09-29T16:00:00+08:00"
}

响应至少区分:

  • accepted:服务端已接收并完成本地事务。
  • processed:业务动作已完成。
  • pending:已接收,等待异步处理。
  • conflict:业务状态或数量冲突,需要人工确认。
  • rejected:字段、权限或状态校验失败。

不要让移动端根据 HTTP 200 就判断业务成功,业务状态应有明确枚举。

六、测试清单 ​

  • 正常登录、Token 过期、退出和账号被禁用。
  • 重复点击、重复扫码、重复请求和服务端超时。
  • 无网络、弱网、网络恢复、杀进程和手机重启。
  • 同一批次被两台设备同时报工,数量超过计划量和库存不足。
  • 扫描无效批次、已关闭工单、权限外工单和错误工位。
  • 版本升级后本地旧数据迁移、重试和冲突展示。
  • 敏感信息脱敏、日志不记录 Token 和密码。

七、面试中的诚实回答 ​

我目前简历中没有独立交付 UniApp 生产项目,因此不会把它说成已有经验。我的后端项目已经处理过订单状态、库存并发、第三方接口、异步任务和权限控制。移动端报工我会采用本地队列加服务端幂等,明确区分本地保存和服务端成功,再通过扫码、断网、重复提交和并发报工场景验证。入职后先按团队现有组件和发布流程交付一个闭环页面。

最近更新