2.1 KiB
子卷下线送待检区任务实现计划
面向 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 差异,确认没有覆盖用户已有修改。