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