From f9c192a5b4b44f0445df9c1f33470bae0c3c462d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 6 Mar 2026 10:09:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在简单更新操作中添加调拨日志记录,区分入库和出库操作 - 在单个更新操作中添加加工日志记录,处理钢卷ID变化的情况 - 在分卷操作中添加加工日志记录,为原钢卷和子钢卷分别记录出入库 - 在合卷操作中添加加工日志记录,为参与合卷的钢卷记录出入库 - 在单步分卷完成操作中添加加工日志记录,确保完整流程追踪 - 根据实际库区变化判断是否需要记录操作日志,避免重复记录 --- .../impl/WmsMaterialCoilServiceImpl.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index fe20ea7f..cb448324 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -1135,6 +1135,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + // 简单更新:记录调拨日志(operationType=3) + // 如果老的和新的实际库区相等则不用创建记录 + Long oldActualWarehouseId = oldCoil.getActualWarehouseId(); + Long newActualWarehouseId = bo.getActualWarehouseId(); + if (!Objects.equals(oldActualWarehouseId, newActualWarehouseId)) { + // 如果以前有真实库区,加一条调拨的出库记录 + if (oldActualWarehouseId != null && oldActualWarehouseId != -1L) { + recordWarehouseOperationLog(bo.getCoilId(), oldActualWarehouseId, 3, 2, "简单更新-调拨出库"); + } + // 如果前端传了新的(非-1表示入库,-1表示置空出库) + if (newActualWarehouseId != null) { + if (newActualWarehouseId == -1L) { + // 传-1置空,算出库 + recordWarehouseOperationLog(bo.getCoilId(), oldActualWarehouseId, 3, 2, "简单更新-调拨出库"); + } else { + // 有新库区,算入库 + recordWarehouseOperationLog(bo.getCoilId(), newActualWarehouseId, 3, 1, "简单更新-调拨入库"); + } + } + } + return flag; } @@ -1208,6 +1229,31 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (bo.getActualWarehouseId() != null) { updateActualWarehouseEnableStatus(null, bo.getActualWarehouseId()); } + + // 单个更新:记录加工日志(operationType=2) + // 老的实际库区存在则加一条加工出库记录(使用老钢卷ID) + // 新的实际库区存在则加一条加工入库记录(使用新钢卷ID) + // 新的传-1置空则算一条出库记录 + // 就算老的和新的实际库区相等也应该建两条,因为钢卷ID不一样 + Long oldActualWarehouseId = oldCoil.getActualWarehouseId(); + Long newActualWarehouseId = bo.getActualWarehouseId(); + + // 老的实际库区存在,加一条加工出库记录 + if (oldActualWarehouseId != null && oldActualWarehouseId != -1L) { + recordWarehouseOperationLog(oldCoil.getCoilId(), oldActualWarehouseId, 2, 2, "单个更新-加工出库"); + } + // 新的实际库区存在,加一条加工入库记录(传-1置空时算出库) + if (newActualWarehouseId != null) { + if (newActualWarehouseId == -1L) { + // 传-1置空,算出库(使用老钢卷ID和老的库区) + if (oldActualWarehouseId != null && oldActualWarehouseId != -1L) { + recordWarehouseOperationLog(oldCoil.getCoilId(), oldActualWarehouseId, 2, 2, "单个更新-加工出库"); + } + } else { + // 有新库区,算入库 + recordWarehouseOperationLog(newCoil.getCoilId(), newActualWarehouseId, 2, 1, "单个更新-加工入库"); + } + } } return flag; @@ -1432,6 +1478,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + // 分卷操作:记录加工日志(operationType=2) + // 老的实际库区存在则加一条加工出库记录 + Long oldSplitActualWarehouseId = oldCoil.getActualWarehouseId(); + if (oldSplitActualWarehouseId != null && oldSplitActualWarehouseId != -1L) { + recordWarehouseOperationLog(oldCoil.getCoilId(), oldSplitActualWarehouseId, 2, 2, "分卷操作-加工出库"); + } + // 为每个子钢卷的实际库区加一条加工入库记录(有的加,没有不加) + for (WmsMaterialCoil childCoil : newCoils) { + Long childActualWarehouseId = childCoil.getActualWarehouseId(); + if (childActualWarehouseId != null && childActualWarehouseId != -1L) { + recordWarehouseOperationLog(childCoil.getCoilId(), childActualWarehouseId, 2, 1, "分卷操作-加工入库"); + } + } + } else if (isMerge) { // 合卷:将bo作为合卷后的新钢卷,newCoils中的对象作为参与合卷的原始钢卷 // 1. 将参与合卷的原始钢卷的二维码标记为失效,并将钢卷标记为历史数据 @@ -1528,6 +1588,23 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { enableWarehouseBo.setIsEnabled(0); // 设置为禁用状态 actualWarehouseService.updateByBo(enableWarehouseBo); } + + // 合卷操作:记录加工日志(operationType=2) + // 为每个参与合卷的原始钢卷加一条加工出库记录 + for (WmsMaterialCoilBo originalCoilBo : bo.getNewCoils()) { + if (originalCoilBo.getCoilId() != null) { + WmsMaterialCoil originalCoil = baseMapper.selectById(originalCoilBo.getCoilId()); + if (originalCoil != null && originalCoil.getActualWarehouseId() != null + && originalCoil.getActualWarehouseId() != -1L) { + recordWarehouseOperationLog(originalCoil.getCoilId(), originalCoil.getActualWarehouseId(), 2, 2, "合卷操作-加工出库"); + } + } + } + // 为新合卷的钢卷加一条加工入库记录 + Long mergeNewActualWarehouseId = bo.getActualWarehouseId(); + if (mergeNewActualWarehouseId != null && mergeNewActualWarehouseId != -1L) { + recordWarehouseOperationLog(newCoil.getCoilId(), mergeNewActualWarehouseId, 2, 1, "合卷操作-加工入库"); + } } return true; @@ -4024,6 +4101,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { completePendingBo.setCompleteTime(new Date()); coilPendingActionService.updateByBo(completePendingBo); + // 7.1 单步分卷完成:记录加工日志(operationType=2) + // 老的实际库区存在则加一条加工出库记录 + Long parentActualWarehouseId = parentCoil.getActualWarehouseId(); + if (parentActualWarehouseId != null && parentActualWarehouseId != -1L) { + recordWarehouseOperationLog(parentCoilId, parentActualWarehouseId, 2, 2, "单步分卷完成-加工出库"); + } + // 为每个子钢卷的实际库区加一条加工入库记录(有的加,没有不加) + for (WmsMaterialCoil childCoil : childCoils) { + Long childActualWarehouseId = childCoil.getActualWarehouseId(); + if (childActualWarehouseId != null && childActualWarehouseId != -1L) { + recordWarehouseOperationLog(childCoil.getCoilId(), childActualWarehouseId, 2, 1, "单步分卷完成-加工入库"); + } + } + // 8. 返回结果 result.put("success", true); result.put("parentCoilId", parentCoilId);