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