feat:子卷质检不合格

This commit is contained in:
2026-08-18 18:44:13 +08:00
parent ed8b688cf8
commit 3a74a3f598
18 changed files with 1879 additions and 1 deletions

View File

@@ -0,0 +1,25 @@
# 子卷下线送待检区任务设计
## 目标
定时扫描未锁定的子卷下线点,为每个点位分配一个未锁定的待检区点位,并在后续创建运输任务前锁定起点和目的点。
## 点位筛选
- 起点:`point_type = '1'``point_status = '3'``lock_status = '0'``deleted = 0`
- 目的点:`point_type = '2'``point_status = '1'``lock_status = '0'``deleted = 0`
- 两类点位均按 `sort_seq``point_id` 升序处理,保证分配顺序稳定。
## 并发与事务
业务方法在一个数据库事务中运行。点位加锁使用带原状态条件的更新:仅当 `lock_status = '0'` 时更新为 `'1'`,并以更新行数判断是否抢锁成功。
每个起点先尝试抢锁,再依次尝试目的点。目的点抢锁失败时继续尝试下一个;没有目的点可用时,将本次已抢到的起点恢复为未锁定并结束本轮扫描。运行期间发生异常时由事务回滚本轮全部数据库修改。
## 任务创建
起点和目的点都锁定成功后,通过 `TransportTaskApi.createTransportTask` 创建运输任务。任务归属为 LMS业务类型为 `SUB_ROLL_DOWN`,业务标识及物料编码使用子卷号,取放货点使用起点和目的点编码,回调处理器为 `subRollDownAgvTask`。任务创建失败时抛出异常,使点位锁随当前事务回滚。
## 调用边界
`BoxAutoJob` 只负责日志和调用 `PackageBoxBusinessService`。点位查询、配对、条件加锁和必要的解锁均由 `PackageBoxBusinessServiceImpl` 组织,数据库语句集中在 `PackagePointMapper.xml`

View File

@@ -0,0 +1,28 @@
# 子卷下线补充空架子设计
## 目标
定时扫描装箱区域点位,为子卷下线空位优先补充装箱点空载具;装箱点不足时使用待检点空载具补充;下线点无剩余空位后,将装箱点剩余空载具转运到待检点空位。
## 分配顺序
1. 目的点为未锁定的下线点空位,起点优先选择未锁定的装箱点空载具。
2. 当前下线点无法取得装箱点空载具时,改用未锁定的待检点空载具。
3. 下线点候选处理完后,将剩余的装箱点空载具与待检点空位配对。
4. 各类候选点均沿用 `sort_seq``point_id` 升序,保证任务创建顺序稳定。
## 并发与任务创建
每次配对先条件锁定目的点,再按优先级条件锁定起点。锁定和释放都同时校验候选查询时的点位状态,避免查询与更新之间的空档窗口内状态已变化却仍然更新成功。抢锁失败时继续尝试下一候选点;没有可用起点时释放已锁定的目的点。起点和目的点均锁定后,通过 `TransportTaskApi` 创建 AGV 运输任务,回调处理器为 `subRollCallEmptyAgvTask`。业务方法运行在事务中,任务创建异常时回滚点位锁。
空架任务以载具号作为业务标识和载具编码,不设置物料编码。任务类型新增为子卷下线补空架 AGV 任务。
## 回调状态
- 取货完成:起点改为空位、清空载具和容器信息并解锁。
- 任务完成:目的点改为空载具、写入载具号、清空容器信息并解锁。
- 任务取消:起点和目的点仅解锁,保留原有库存状态。
## 调用边界
`BoxAutoJob` 只记录开始/结束日志并调用 `PackageBoxBusinessService`。点位筛选、抢锁、分配和任务创建均放在 `PackageBoxBusinessServiceImpl`;任务状态回写放在 `SubRollCallEmptyAgvTask`

View File

@@ -0,0 +1,41 @@
# 装箱区信息看板设计规格
## 目标
创建一个无需接口和构建工具即可直接打开的独立 HTML Demo。页面延续 `index4.html` 的点位信息、搜索定位、缩放拖动和右键复制功能,并采用 `rollInfoDashboard.html` 的深色科技大屏视觉。
## 页面结构
- 固定 1920 × 1080 设计舞台,随浏览器窗口等比缩放。
- 顶部包含品牌标识、看板标题、当前日期时间和演示数据标识。
- 第二行包含总点位、占用、空闲、超时、占用率五项 KPI。
- 工具条包含状态图例、卷号搜索、超时阈值、地图缩放比例和复位按钮。
- 主体左侧为平面布置图,右侧为装箱队列和当前选中点位详情。
## 平面布局
- 北区为一排 6 个暂存点位:`ZJXX_01``ZJXX_06`
- 中区为 7 排 6 列待检点位:`DJQ_01``DJQ_42`,按从上到下、从左到右顺序编号。
- 南区第一排为装箱区 1`ZXQ_01``ZXQ_08`,右侧为 `ZXDJW_01`
- 南区第二排为装箱区 2`ZXQ_09``ZXQ_16`,右侧为 `ZXDJW_02`
- 区域间和点位组之间使用白色发光线表示 AGV 通道,配合方向箭头表达行驶路径。
## 点位数据与状态
每个点位使用确定性的本地模拟数据,展示点位编码、点位名称、库存状态、卷号、箱号、进入时间和停留时长。状态包含空闲、空载具、有子卷、合格品和管制品;超过用户设置阈值的占用点位显示红色超时效果。
## 交互
- 输入完整或部分卷号后定位并高亮匹配点位。
- 鼠标滚轮缩放地图,按住左键拖动,双击或点击复位按钮恢复适配视图。
- 单击点位更新右侧详情。
- 右键点位弹出菜单,可复制卷号或箱号;不可用的复制项禁用。
- 超时阈值和缩放比例即时更新,并保存在浏览器本地。
## 验证标准
- HTML 可直接打开且不访问任何 API 或外部资源。
- 页面包含 6 个北区点位、42 个中区点位、16 个装箱区点位和 2 个装箱等待位,共 66 个点位。
- 1920 × 1080 下无主体溢出,缩小窗口时保持等比展示。
- 搜索、选中、缩放、拖动、复位和右键菜单可以正常使用。