Files
huachuang/docs/superpowers/plans/2026-08-12-auto-send-sub-roll-task.md
2026-08-18 18:44:13 +08:00

2.1 KiB
Raw Blame History

子卷下线送待检区任务实现计划

面向 AI 代理的工作者: 在当前功能分支按步骤实现并逐项验证。

目标: 完成子卷下线点与待检区点位的并发安全配对和锁定,并由定时任务触发。

架构: Mapper XML 提供稳定排序查询和条件更新;业务 Service 在事务内完成点位抢锁、配对及无目的点时的起点释放Job 仅调用业务入口。任务创建暂保留明确的 TODO。

技术栈: Java 17、Spring Boot、MyBatis、MySQL、XXL-JOB。


任务 1实现点位查询和锁操作

文件:

  • 修改:nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/dal/mysql/packagepoint/PackagePointMapper.java

  • 修改:nl-module-lms/nl-module-lms-server/src/main/resources/mapper/packagepoint/PackagePointMapper.xml

  • 声明可用点位查询、条件加锁、解锁 Mapper 方法。

  • 在 XML 中按点位类型、状态、锁状态和删除标记查询,并稳定排序。

  • 条件加锁仅允许 lock_status = '0' 更新为 '1'

任务 2实现业务配对并接入 Job

文件:

  • 修改:nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackageBoxBusinessService.java

  • 修改:nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/service/packagepoint/PackageBoxBusinessServiceImpl.java

  • 修改:nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/job/box/BoxAutoJob.java

  • 在 Service 接口增加自动创建子卷送检任务入口。

  • 在事务中查询起点和目的点,逐一条件抢锁并配对。

  • 目的点不足时释放未配对起点,配对成功后调用任务模块创建运输任务。

  • Job 调用 Service 业务入口。

任务 3同步表结构并验证

文件:

  • 修改:sql/mysql/lms_package_point.sql

  • 在建表脚本补充非空且默认未锁定的 lock_status 字段。

  • 编译 nl-module-lms-server 及其依赖模块,要求 Maven 退出码为 0。

  • 检查 Git 差异,确认没有覆盖用户已有修改。