6.0 KiB
FT546WMS 指定通道混放试点
这是旧版分配规则的应急补丁,与影子算法是否接管无关。无需更换 WMS/WCS JAR;安装后默认关闭,启用后才允许新增混放。
试点范围
| 通道 | 内侧原项目位置 | 外侧可混放位置 | 当前新增容量 |
|---|---|---|---|
| C1203 | 120803 | 120703 | 1 托盘 |
| C0204 | 020804 | 020704 | 1 托盘 |
| C0205 | 020805 | 020705 | 1 托盘 |
白名单按整条通道设置,入库和出库保护覆盖两端。三条双深通道共六个位置,内侧已有货,因此本次最多新增三个同时在库的客居托盘。不会把全库零散空位一起开放。
现场于 2026-09-10 确认所有项目允许分托盘共用通道,并确认这三个外侧位置适配当前托盘。一个托盘仍只能有一个明确项目;999/无项目托盘保持原 B/D 区规则。项目号和库存归属不改写。
原规则找到货位时优先采用原分配。原规则返回无货位时,才尝试白名单通道的外侧空位。每通道最多两个项目,内侧不能越过外侧托盘补货;有在途任务或锁定时拒绝。新增混放时,同层必须至少有两个可通行的 E 区空位。该检查不是长期预留,后续移库仍会重新检查和占用目标。
CMD 操作
在服务器 CMD 中进入本文件所在目录。命令使用 Windows 集成认证,CMD 会自动调用系统 PowerShell,无需在命令里填写数据库密码。
- 安装(开关仍关闭):
call mixed-pilot.cmd install "lpc:." "FT546-wms"
出现 INSTALL_OK 才表示成功。安装核对三个原存储过程的 SHA-256,版本不符、锁等待超过两秒或执行失败时,事务回滚,不覆盖现场改动。脚本创建触发器和替换过程时需要短暂架构锁;业务繁忙导致安装失败时稍后重试,不能去杀业务会话。
- 查询配置和现场状态:
call mixed-pilot.cmd status "lpc:." "FT546-wms"
- 已确认所有项目可混放、托盘适配后开启:
call mixed-pilot.cmd enable "lpc:." "FT546-wms" CONFIRM-FIT-ALL-PROJECTS
出现 ENABLED 才表示三条通道均已启用。启用会重新核对内侧库存、外侧空位和在途任务,条件变化则整次拒绝。
- 像原来一样创建入库任务。出库优先使用自动分配,它会按旧程序先为外侧托盘建立移库,再建立内侧出库。手工选择被挡住的内侧库存、却没有外侧腾挪任务时,会明确拒绝,不能手动把等待任务改为已下发或已完成。
观察和退出
内侧任务等待期间状态为 8,含义是“等待前位清空”;现有界面字典未配置该标签时可能直接显示数字 8。status 命令的 waiting 给出任务清单。只有外侧货位、库存和在途任务均已清空,内侧任务才恢复状态 1,由现有 WMS 定时推送交给 WCS。创建移库任务本身不会释放等待。
先验证一组完整业务:新项目入库 → 前位正常出库 → 再混放一托 → 后位自动出库并完成前位移库。测试通过后再增加通道数量;本包不开放 A 区深通道,也不切换整套新算法。
出现异常时先关闭新增混放,无需重启:
call mixed-pilot.cmd disable "lpc:." "FT546-wms"
关闭会保留已混放库存的出库保护,不会自动撤销库存位置或移库任务。不要直接删除触发器或覆盖存储过程。
完整卸载必须先关闭开关,三条试点通道清空、相关移库任务和移出到 E 区的试点托盘也全部处理完:
call mixed-pilot.cmd uninstall "lpc:." "FT546-wms"
卸载恢复三个原过程的完整逻辑、移除试点触发器和辅助过程,保留 mixed_pilot 中的原定义与审计表。未清空时拒绝卸载。卸载后的再次安装需要重新准备版本,避免覆盖已有审计资料。
导出观察记录发回分析:
call mixed-pilot.cmd status "lpc:." "FT546-wms" > mixed-pilot-status.json
同时提供对应时间段 WMS/WCS 日志,以及实际入库、前位出库、后位移库出库的任务号和现场结果。仅有安装成功或一段无报错日志不能证明设备完整流程通过。
已完成的程序验证
在 SQL Server 2016 上创建独立小型测试数据库,只使用合成数据和读取到的现场原过程,不连接设备或调用业务 HTTP。已验证默认关闭、普通分配优先、白名单与项目一致性、拒绝第三项目、重复分配、前后位派发顺序、移库目标校验、重复完成回调、开关关闭仍保护、两个连接争抢同一空位、安装漂移拒绝及卸载恢复。
还直接执行了现场 proc_out_auto_allocation:确认实际生成的移库任务搬的是外侧客居托盘,内侧出库进入等待,移库完成后才放行。这些是数据库行为验证,设备现场往返仍需通过上述小范围业务试点确认。
本补丁替换 proc_allot_space、proc_yk_job_add、proc_yk_complete 三个入口并保留原定义,不修改两个出库分配过程。增加三处数据库触发器,涉及 mydo_job、bas_cargo_space、bas_stock。未登记通道仍使用原分配与派发规则;试点启用期间,入库分配增加短时间串行校验,移库增加目标锁检查,争用时可能需要重试。
开发人员复测(应在安装前采集原过程;测试只创建独立、随机命名的测试数据库):
powershell.exe -NoProfile -NonInteractive -File capture-test-fixture.ps1 -Server "lpc:." -Database "FT546-wms" > fixture.json
powershell.exe -NoProfile -NonInteractive -File test-mixed-pilot.ps1 -Server "lpc:." -FixtureJson fixture.json
测试库初始数据文件与日志各 8 MB,上限各 64 MB,正常结束或失败后都会尝试清理。测试不恢复生产库,不调用 WMS/WCS 的业务接口;原序列号过程用测试序列替代,合成表保留字段类型和顺序、放宽非空约束,因此不覆盖全部生产约束及设备流程。