fix(ebom): 删除bom条件判断

This commit is contained in:
曹鹏飞 2024-05-31 16:39:32 +08:00
parent f84d4416a4
commit da4f625170
1 changed files with 12 additions and 10 deletions

View File

@ -2575,26 +2575,30 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
VUtils.isTure(root.getRootIs() != 1 && root.getUserRootIs() != 0).throwMessage("请选择根节点");
VUtils.isTure(!StrUtil.equals(root.getCreatedBy(), SessionUtil.getUserCode())).throwMessage("不能删除他人的数据");
delete(root.getRowId());
delete(root);
CompletableFuture.runAsync(this::updateLastVersionIs);
return true;
}
private void delete(Long bomRowId) {
private void delete(BomNewEbomParentEntity parent) {
if (!StrUtil.equals(parent.getCreatedBy(), SessionUtil.getUserCode())) {
return;
}
this.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomParentEntity.class)
.eq(BomNewEbomParentEntity::getRowId, bomRowId));
.eq(BomNewEbomParentEntity::getRowId, parent.getRowId()));
Set<String> materialNos = ebomChildService.lambdaQuery()
.select(BomNewEbomChildEntity::getMaterialNo)
.eq(BomNewEbomChildEntity::getParentRowId, bomRowId)
.eq(BomNewEbomChildEntity::getParentRowId, parent.getRowId())
.list()
.stream()
.map(BomNewEbomChildEntity::getMaterialNo)
.collect(Collectors.toSet());
ebomChildService.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomChildEntity.class)
.eq(BomNewEbomChildEntity::getParentRowId, bomRowId));
.eq(BomNewEbomChildEntity::getParentRowId, parent.getRowId()));
if (CollUtil.isEmpty(materialNos)) return;
@ -2606,23 +2610,21 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
.list();
if (CollUtil.isEmpty(parents)) return;
List<Long> deleteParents = parents.stream()
List<BomNewEbomParentEntity> deleteParents = parents.stream()
.filter(p -> (StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode())
&& (Objects.equals(p.getSource(), EBomSourceEnum.FROM_BOM.getValue()) || Objects.equals(p.getSource(), EBomSourceEnum.FROM_EXCE.getValue())))
|| Objects.equals(p.getVirtualPackageIs(), 1))
.map(BomNewEbomParentEntity::getRowId)
.collect(Collectors.toList());
//将自己手动创建的bom提为用户顶层
List<Long> updateParents = parents.stream()
List<BomNewEbomParentEntity> updateParents = parents.stream()
.filter(p -> StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode()))
.map(BomNewEbomParentEntity::getRowId)
.collect(Collectors.toList());
updateParents.removeAll(deleteParents);
if (CollUtil.isNotEmpty(updateParents)) {
this.lambdaUpdate()
.set(BomNewEbomParentEntity::getUserRootIs, 1)
.set(BomNewEbomParentEntity::getModifyTime, LocalDateTime.now())
.in(BomNewEbomParentEntity::getRowId, updateParents);
.in(BomNewEbomParentEntity::getRowId, updateParents.stream().map(BomNewEbomParentEntity::getRowId).collect(Collectors.toList()));
}
deleteParents.forEach(this::delete);