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