From bae0092ec001acea39e3d8c2c2effcf28598350e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sat, 18 Apr 2026 13:42:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=A3=E8=B4=A7=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PickingMaterialDetailImpl.java | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java index 7e2d6c35f..cfa917231 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java @@ -167,19 +167,20 @@ public class PickingMaterialDetailImpl extends ServiceImpl copDO = Arrays.stream(pickingMaterialDetailDb.getCopyCodeReferenceIds().split(",")) - .map(Integer::parseInt).collect(Collectors.toList()); - //用户取消后的 - List cop = Arrays.stream(pickingMaterialDetailDO.getCopyCodeReferenceIds().split(",")) - .map(Integer::parseInt).collect(Collectors.toList()); + // 数据库中的 id 列表 + List copDO = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDb.getCopyCodeReferenceIds()); + // 请求中仍保留的 id(用户取消抄码 = 从列表中移除) + List cop = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDO.getCopyCodeReferenceIds()); List collect = copDO.stream().filter(id -> !cop.contains(id)).collect(Collectors.toList()); - copyCodeReferenceService.lambdaUpdate() - .set(CopyCodeReference::getMaterialStatusCode, 1) - .set(CopyCodeReference::getMaterialStatusName, "可用") - .in(CopyCodeReference::getId, collect); + if (!collect.isEmpty()) { + copyCodeReferenceService.lambdaUpdate() + .set(CopyCodeReference::getMaterialStatusCode, 1) + .set(CopyCodeReference::getMaterialStatusName, "可用") + .in(CopyCodeReference::getId, collect) + .update(); + } } pickingMaterialDetail.setMaterialDetailId(pickingMaterialDetailDO.getMaterialDetailId()); pickingMaterialDetail.setUpdateBy(loginUser.getUserid()); @@ -224,6 +225,18 @@ public class PickingMaterialDetailImpl extends ServiceImpl splitCopyCodeReferenceIdsToInts(String csv) { + if (csv == null || csv.trim().isEmpty()) { + return Collections.emptyList(); + } + return Arrays.stream(csv.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .map(Integer::parseInt) + .collect(Collectors.toList()); + } + /** * @description 生成流水号 * @author ZhouGY