diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java index 3afeef20..189b47b2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java @@ -85,7 +85,7 @@ public abstract class EBomToPbomBase { //当子级为F项或Z项时-无需转的父级物料 protected Set childDelMaterialNos = new HashSet<>(); - private BomNewPbomParentEntity ; + public abstract void convert(); @@ -188,6 +188,8 @@ public abstract class EBomToPbomBase { else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) { //if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy())) { if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) { + //当bom创建人为本人 或 版本大于当前版本则覆盖 + if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0){ SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); // this.delParentRowIds.add(oldParent.getRowId()); oldParent.setSourceRowId(parentVo.getBomRowId()); @@ -197,7 +199,7 @@ public abstract class EBomToPbomBase { oldParent.setDeptRowId(SessionUtil.getDepartRowId()); this.pBomParentResult.add(oldParent); return oldParent; - // } + } } else { // 降parentVo 及其子节点标记为不转换 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java index b0e239af..94674102 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java @@ -192,14 +192,16 @@ public abstract class FormalEBomToPbomBase { else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) { //if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy())) { if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) { - SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); - oldParent.setSourceRowId(parentVo.getBomRowId()); - oldParent.setCreatedTime(LocalDateTime.now()); - oldParent.setCreatedBy(SessionUtil.getUserCode()); - oldParent.setDeptName(SessionUtil.getDepartName()); - oldParent.setDeptRowId(SessionUtil.getDepartRowId()); - this.pBomParentResult.add(oldParent); - return oldParent; + if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0) { + SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId())); + oldParent.setSourceRowId(parentVo.getBomRowId()); + oldParent.setCreatedTime(LocalDateTime.now()); + oldParent.setCreatedBy(SessionUtil.getUserCode()); + oldParent.setDeptName(SessionUtil.getDepartName()); + oldParent.setDeptRowId(SessionUtil.getDepartRowId()); + this.pBomParentResult.add(oldParent); + return oldParent; + } } else { // 降parentVo 及其子节点标记为不转换