From e944fa1ae9b8a74bf34ae4bec7ac0023583bd6ef Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 31 Jul 2025 11:18:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E7=A0=81=E6=9E=AA=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../klp/controller/WmsStockIoController.java | 9 ++++++++ .../com/klp/service/IWmsStockIoService.java | 2 ++ .../service/impl/WmsStockIoServiceImpl.java | 21 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java index 2ec2d9cb..8bdb922c 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java @@ -163,4 +163,13 @@ public class WmsStockIoController extends BaseController { return R.fail(e.getMessage()); } } + @PostMapping("/scanOutStock") + public R scanOutStock(@RequestBody WmsStockIoDetailBo bo) { + try { + boolean result = iWmsStockIoService.scanOutStockByBo(bo); + return toAjax(result); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + } } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java index d95998c0..91277b82 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java @@ -77,4 +77,6 @@ public interface IWmsStockIoService { boolean scanInStockByBo(WmsStockIoDetailBo bo); + + boolean scanOutStockByBo(WmsStockIoDetailBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java index aaac8ccd..346a9d46 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java @@ -162,6 +162,27 @@ public class WmsStockIoServiceImpl implements IWmsStockIoService { changeStock(bo.getWarehouseId(), bo.getItemType(), bo.getItemId(), bo.getQuantity(), true, unit); return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean scanOutStockByBo(WmsStockIoDetailBo bo) { + String unit = bo.getUnit(); + // 如果unit为空,自动查item表补全 + if (unit == null || unit.trim().isEmpty()) { + if ("product".equals(bo.getItemType())) { + WmsProduct p = productMapper.selectById(bo.getItemId()); + unit = p != null ? p.getUnit() : null; + } else if ("raw_material".equals(bo.getItemType())) { + WmsRawMaterial r = rawMaterialMapper.selectById(bo.getItemId()); + unit = r != null ? r.getUnit() : null; + } + } + if (unit == null || unit.trim().isEmpty()) { + throw new RuntimeException("未能获取到单位"); + } + // 出库操作 + changeStock(bo.getWarehouseId(), bo.getItemType(), bo.getItemId(), bo.getQuantity(), false, unit); + return true; + } /**