From 04a1480ec6456d0f1bd64af964aa0bd94662016d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 8 Dec 2025 13:14:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=8F=91=E8=B4=A7=E7=8A=B6=E6=80=81=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsMaterialCoilService 接口中新增 batchUpdateDeliveryStatus 方法 - 在 WmsMaterialCoilController 中添加批量更新接口 /batchUpdateDeliveryStatus - 实现 WmsMaterialCoilServiceImpl 中的批量更新逻辑 - 支持将钢卷状态更新为在库、在途或已出库 - 更新在途状态时自动设置出库时间 - 添加参数校验和异常处理机制 --- .../controller/WmsMaterialCoilController.java | 26 ++++++++++++++++ .../klp/service/IWmsMaterialCoilService.java | 2 ++ .../impl/WmsMaterialCoilServiceImpl.java | 31 +++++++++++++++++++ 3 files changed, 59 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 1dd9771c..201b440d 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -3,6 +3,7 @@ package com.klp.controller; import java.util.List; import java.util.Map; import java.util.Arrays; +import java.util.stream.Collectors; import com.klp.domain.vo.WmsMaterialCoilExportVo; import lombok.RequiredArgsConstructor; @@ -195,5 +196,30 @@ public class WmsMaterialCoilController extends BaseController { public TableDataInfo getAvailableCoilsForDelivery(WmsMaterialCoilBo bo, PageQuery pageQuery) { return iWmsMaterialCoilService.queryAvailableForDelivery(bo, pageQuery); } + + + /** + * 批量更新钢卷发货状态 + * + * @param coilIds 钢卷ID,多个ID用逗号分隔 + * @param status 目标状态 (0=在库, 1=在途, 2=已出库) + * @return 操作结果 + */ + @Log(title = "钢卷物料表", businessType = BusinessType.UPDATE) + @PutMapping("/batchUpdateDeliveryStatus") + public R batchUpdateDeliveryStatus( + @RequestParam String coilIds, + @RequestParam Integer status) { + + // 解析钢卷ID列表 + List coilIdList = Arrays.stream(coilIds.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .map(Long::valueOf) + .collect(Collectors.toList()); + + Boolean result = iWmsMaterialCoilService.batchUpdateDeliveryStatus(coilIdList, status); + return result ? R.ok() : R.fail("批量更新失败"); + } } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index 34a8dab0..46426266 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -101,5 +101,7 @@ public interface IWmsMaterialCoilService { int exportCoil(@NotEmpty(message = "主键不能为空") Long coilId); TableDataInfo queryAvailableForDelivery(WmsMaterialCoilBo bo, PageQuery pageQuery); + + Boolean batchUpdateDeliveryStatus(List coilIdList, Integer status); } 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 d5d894a3..4a4f8ec7 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 @@ -1834,4 +1834,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return lqw; } + + + /** + * 批量更新钢卷发货状态 + * + * @param coilIds 钢卷ID列表 + * @param status 目标状态 (0=在库, 1=在途, 2=已出库) + * @return 是否更新成功 + */ + @Override + public Boolean batchUpdateDeliveryStatus(List coilIds, Integer status) { + if (coilIds == null || coilIds.isEmpty()) { + return false; + } + + if (status == null || status < 0 || status > 2) { + throw new RuntimeException("无效的状态值,状态必须在0-2之间"); + } + + // 构造更新条件 + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); + updateWrapper.in(WmsMaterialCoil::getCoilId, coilIds); + updateWrapper.set(WmsMaterialCoil::getStatus, status); + + // 如果是设置为已出库状态,同时更新出库时间 + if (status == 1) { + updateWrapper.set(WmsMaterialCoil::getExportTime, new Date()); + } + + return baseMapper.update(null, updateWrapper) > 0; + } }