diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java index 6c4fc889..c9abccf4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/EBomImportService.java @@ -75,7 +75,8 @@ public class EBomImportService { List importRoots = pcs.getLeft().stream().filter(BomNewEbomParentEntity::isImportRoot).collect(Collectors.toList()); //VUtils.isTure(importRoots.size() > 1).throwMessage("不支持一次导入多个bom"); importRoots.forEach(it -> { - VUtils.isTure(checkInconsistentData(pcs.getLeft().get(0), pcs.getLeft(), pcs.getRight())).throwMessage("导入的数据已存在,请勿重复导入"); + //VUtils.isTure(checkInconsistentData(pcs.getLeft().get(0), pcs.getLeft(), pcs.getRight())).throwMessage("导入的数据已存在,请勿重复导入"); + checkData(it, pcs.getLeft(), pcs.getRight()); }); save(pcs.getLeft(), pcs.getRight()); @@ -110,7 +111,7 @@ public class EBomImportService { }); } else { parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> { - it.setCurrentVersion(VersionUtil.getNextVersion(p.getCurrentVersion())); + it.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(p.getCurrentVersion())); }); } }); @@ -119,6 +120,22 @@ public class EBomImportService { bomNewEbomChildService.saveBatch(children); } + private void checkData(BomNewEbomParentEntity parent, List parents, List children) { + log.debug("checkData,entity:" + JSON.toJSONString(parent)); + BomNewEbomParentEntity oldParent = bomNewEbomParentService.getLatestByMaterialNo(parent.getMaterialNo()); + if (Objects.nonNull(oldParent)) { + VUtils.isTure(oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue() + && !StrUtil.equals(parent.getCreatedBy(), SessionUtil.getUserCode())) + .throwMessage(StrUtil.format("{}正由{}编辑中,请联系Ta处理", oldParent.getMaterialNo(), oldParent.getCreatedBy())); + } + Set cmn = children.stream() + .filter(c -> c.getParentRowId().equals(parent.getRowId())) + .map(BomNewEbomChildEntity::getMaterialNo) + .collect(Collectors.toSet()); + List cps = parents.stream().filter(p -> cmn.contains(p.getMaterialNo())).collect(Collectors.toList()); + cps.forEach(ps -> checkData(ps, parents, children)); + } + private boolean checkInconsistentData(BomNewEbomParentEntity parent, List parents, List children) { log.debug("checkInconsistentData,entity:" + JSON.toJSONString(parent)); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 9fceb804..0037e75c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -532,12 +532,12 @@