离线订单可视化与手动上传实施计划
Task 1:状态策略与数据访问
- 先写失败测试,覆盖展示状态、可操作状态和尝试时间匹配。
- 新增纯策略类、订单上传时间字段、按 ID 查询、页面列表查询、带尝试时间的抢占与条件恢复。
- 查询限定
order_type=2 AND order_status IN (1,4)。
Task 2:统一调度与 HTTP 单笔上传
ManualOrderUploadManager 负责网络检查、二次读取、原子抢占、通道分派和 30 秒超时。ManualUploadOrderWorker 只上传指定订单,使用 30 秒读取超时。- 成功、可重试失败、明确业务失败分别进入 9、1、3。
Task 3:MQTT 单笔上传
- 现有 Service 增加单笔 Action 和参数。
- 手动 Action 不执行全量轮询、不续排 Alarm。
- 发布和回执按本次尝试完成、失败或超时。
Task 4:离线订单页面
- 新增 Activity、DiffUtil 列表、汇总区、空状态及相关资源。
- 前台每 5 秒后台查询,后台停止。
- 状态列只显示对应颜色文字,不使用背景色块;操作列按钮样式保持不变。
- 待上传可确认上传;上传中点击只提示正在同步。
- 先写 MQTT 状态测试,再实现线程安全状态快照和重复状态过滤。
- 汇总区展示 MQTT 未启动、连接中、已连接、已断开;连接事件立即更新,5 秒刷新兜底。
Task 5:首页入口
- 横向、竖向首页均增加入口。
- 顺序固定为“订餐核销 → 离线订单 → 余额查询”。
Task 6:验证与记录
- 运行策略单测、Java 编译和
git diff --check。 - 确认 180 秒定时周期、10 分钟兜底和状态 3/9 过滤未变。
- 生成同名 Markdown/HTML 变更记录,不提交 Git。
Task 7:离线订单分页与查询加载状态
- 先写分页策略失败测试,再实现默认 10 条且支持动态
pageSize 的纯逻辑策略。 - 新增分页结果模型,DAO 查询全局状态数量并以
LIMIT/OFFSET 读取当前页。 - 排序固定为
save_time DESC, id DESC,当前页越界时自动回退。 - 数据库升级到版本 4,仅新增离线订单分页组合索引。
- 初始化用户新增的
offline_order_manager_progress_bar,每次查询开始显示,完成或页面退出时隐藏。 - 底部增加上一页、页码/总页数/总条数和下一页,首尾页禁用,无数据隐藏。
- 页面变量默认
pageSize=10、refreshIntervalMillis=5000,查询期间合并重复刷新并禁止重复翻页。 - 运行定向测试、全量单测、Debug 构建、差异和编码检查,更新设计与变更记录。
执行结果:Task 7 全部步骤已完成,定向测试、全量单测、Debug APK 构建、差异和编码检查均通过。
Task 8:订单列表全局计数序号
- 先补分页起始序号失败测试,再实现
offset(page, pageSize) + 1 计算规则。 - 表头和列表项最左侧增加“序号”列,翻页后序号连续递增。
- 序号计算接收动态
pageSize,默认每页 10 条时第二页从 11 开始。 - 序号参与
DiffUtil 内容比较,起始值变化时重新绑定行内容。 - 运行定向测试、全量单测、Debug 构建、差异和编码检查。
Task 9:统一手动上传确认弹框风格
- 移除离线订单页面对系统
AlertDialog 的依赖,改用项目通用 NewSingleTipPop。 - 增加具名 Fragment 标签常量,保留消费人、金额、消费时间和上传通道信息。
- 确认按钮文案设置为“确认上传”,回调继续调用原
startManualUpload(orderId)。 - 取消只关闭弹框,不修改订单状态;外部点击和返回键防误触行为由通用弹框统一提供。
- 运行全量单测、Debug 构建、差异与编码检查,并同步 Markdown/HTML 变更记录。
执行结果:Task 9 已完成,全量单测、Debug APK 构建、差异与编码检查通过。