From e616d7960364c0d209faf5438bf8287aa8632193 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 8 Dec 2025 11:15:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E8=B0=83=E6=95=B4=E8=B4=A7?= =?UTF-8?q?=E4=BD=8D=E7=BC=96=E7=A0=81=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E6=A5=BC=E5=B1=82=E5=B7=AE=E5=BC=82?= =?UTF-8?q?=E5=8C=96=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改默认层数为2层当层数未指定时 - 校验行数和列数必须为正整数 - 校验层数必须为正整数 - 重新组织循环结构以优先遍历层再行列 - 第二层货位行数减一以适应特殊布局需求 - 调整编码格式为 行-列-层 的组合方式 - 列号统一补零为两位数格式 --- .../impl/WmsActualWarehouseServiceImpl.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java index b72927b8..8a0bf387 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java @@ -56,20 +56,27 @@ public class WmsActualWarehouseServiceImpl implements IWmsActualWarehouseService Integer layers = bo.getLayerCount(); String prefix = bo.getPrefix(); Long parentId = bo.getParentId(); - if (rows == null || cols == null || layers == null || rows < 1 || cols < 1 || layers < 1) { - throw new ServiceException("行/列/层必须为正整数"); + if (layers == null) { + layers = 2; + } + if (rows == null || cols == null || rows < 1 || cols < 1) { + throw new ServiceException("行/列必须为正整数"); + } + if (layers < 1) { + throw new ServiceException("层必须为正整数"); } if (StringUtils.isBlank(prefix)) { throw new ServiceException("前缀不能为空"); } - // 预生成候选编码 List codes = new ArrayList<>(rows * cols * layers); - for (int c = 1; c <= cols; c++) { - for (int r = 1; r <= rows; r++) { - String rStr = r < 10 ? ("0" + r) : String.valueOf(r); - for (int l = 1; l <= layers; l++) { - String code = prefix + c + rStr + '-' + l; + for (int l = 1; l <= layers; l++) { + int rowsForLayer = (l == 2) ? Math.max(rows - 1, 1) : rows; + for (int c = 1; c <= cols; c++) { + for (int r = 1; r <= rowsForLayer; r++) { + // 列号补两位(01/02...) + String cStr = c < 10 ? ("0" + c) : String.valueOf(c); + String code = prefix + r + '-' + cStr + '-' + l; codes.add(code); } }