拣货报错

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("物料信息不存在");
}
PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail();
if (!pickingMaterialDetailDO.getCopyCodeReferenceIds().equals(pickingMaterialDetailDb.getCopyCodeReferenceIds())){
if (!Objects.equals(pickingMaterialDetailDO.getCopyCodeReferenceIds(), pickingMaterialDetailDb.getCopyCodeReferenceIds())) {
pickingMaterialDetail.setCopyCodeReferenceIds(pickingMaterialDetailDO.getCopyCodeReferenceIds());
//数据库中的
List<Integer> copDO = Arrays.stream(pickingMaterialDetailDb.getCopyCodeReferenceIds().split(","))
.map(Integer::parseInt).collect(Collectors.toList());
//用户取消后的
List<Integer> cop = Arrays.stream(pickingMaterialDetailDO.getCopyCodeReferenceIds().split(","))
.map(Integer::parseInt).collect(Collectors.toList());
// 数据库中的 id 列表
List<Integer> copDO = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDb.getCopyCodeReferenceIds());
// 请求中仍保留的 id(用户取消抄码 = 从列表中移除)
List<Integer> cop = splitCopyCodeReferenceIdsToInts(pickingMaterialDetailDO.getCopyCodeReferenceIds());
List<Integer> 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<PickingMaterialDetail
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 生成流水号
* @author ZhouGY