拣货报错

This commit is contained in:
秦鸿展
2026-04-18 13:42:24 +08:00
parent f749c1e9ca
commit bae0092ec0
@@ -167,19 +167,20 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
throw new ServiceException("物料信息不存在"); throw new ServiceException("物料信息不存在");
} }
PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail(); PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail();
if (!pickingMaterialDetailDO.getCopyCodeReferenceIds().equals(pickingMaterialDetailDb.getCopyCodeReferenceIds())){ if (!Objects.equals(pickingMaterialDetailDO.getCopyCodeReferenceIds(), pickingMaterialDetailDb.getCopyCodeReferenceIds())) {
pickingMaterialDetail.setCopyCodeReferenceIds(pickingMaterialDetailDO.getCopyCodeReferenceIds()); pickingMaterialDetail.setCopyCodeReferenceIds(pickingMaterialDetailDO.getCopyCodeReferenceIds());
//数据库中的 // 数据库中的 id 列表
List<Integer> copDO = Arrays.stream(pickingMaterialDetailDb.getCopyCodeReferenceIds().split(",")) List<Integer> copDO = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDb.getCopyCodeReferenceIds());
.map(Integer::parseInt).collect(Collectors.toList()); // 请求中仍保留的 id(用户取消抄码 = 从列表中移除)
//用户取消后的 List<Integer> cop = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDO.getCopyCodeReferenceIds());
List<Integer> cop = Arrays.stream(pickingMaterialDetailDO.getCopyCodeReferenceIds().split(","))
.map(Integer::parseInt).collect(Collectors.toList());
List<Integer> collect = copDO.stream().filter(id -> !cop.contains(id)).collect(Collectors.toList()); List<Integer> collect = copDO.stream().filter(id -> !cop.contains(id)).collect(Collectors.toList());
copyCodeReferenceService.lambdaUpdate() if (!collect.isEmpty()) {
.set(CopyCodeReference::getMaterialStatusCode, 1) copyCodeReferenceService.lambdaUpdate()
.set(CopyCodeReference::getMaterialStatusName, "可用") .set(CopyCodeReference::getMaterialStatusCode, 1)
.in(CopyCodeReference::getId, collect); .set(CopyCodeReference::getMaterialStatusName, "可用")
.in(CopyCodeReference::getId, collect)
.update();
}
} }
pickingMaterialDetail.setMaterialDetailId(pickingMaterialDetailDO.getMaterialDetailId()); pickingMaterialDetail.setMaterialDetailId(pickingMaterialDetailDO.getMaterialDetailId());
pickingMaterialDetail.setUpdateBy(loginUser.getUserid()); pickingMaterialDetail.setUpdateBy(loginUser.getUserid());
@@ -224,6 +225,18 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
return pickingOrderPO; return pickingOrderPO;
} }
/** 逗号分隔抄码 id 字符串解析为整数列表;null/空串返回空列表 */
private static List<Integer> 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 生成流水号 * @description 生成流水号
* @author ZhouGY * @author ZhouGY