diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java index 12b96ce3..b4eacb53 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewEbomParentVO.java @@ -273,6 +273,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty(value = "修改时间") private LocalDateTime modifyTime; + @ApiModelProperty("bom层级数") + private BigDecimal levelNumber; + private List childNodes = Collections.emptyList(); private static final long serialVersionUID = 1L; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java new file mode 100644 index 00000000..dcf945ff --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java @@ -0,0 +1,61 @@ +package com.nflg.product.bomnew.service.domain.EBom; + +import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * Ebom 转Pbom + */ +public class EBomToPBom { + + private BomNewEbomParentVO parent; + + private List allBomDetail; + + + private Map generateDrawingNoMap = new HashMap<>(); + + + public EBomToPBom(BomNewEbomParentVO inParent, List inAllBomDetail) { + this.parent = inParent; + this.allBomDetail = inAllBomDetail; + } + + + /** + * 生成 层级号 + * + * @param saveBomDetailParamDTO + * @param bomRowID + * @param parentDrawingNo + */ + private void generateDrawingNo(List saveBomDetailParamDTO, Long bomRowID, String parentDrawingNo) { + List firstLevelBoms = saveBomDetailParamDTO.stream().filter(u -> u.getBomRowId().equals(bomRowID)).collect(Collectors.toList()); + parentDrawingNo = StrUtil.isNotBlank(parentDrawingNo) ? parentDrawingNo : ""; + Integer gNo = 1; + for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) { + String key = StrUtil.join("-", bomRowID.toString(), firstLevelBom.getMaterialNo()); + if (generateDrawingNoMap.containsKey(key)) { + // firstLevelBom.setLevelNumber(generateDrawingNoMap.get(key)); + continue; + } + + firstLevelBom.setDrawingNo(StrUtil.isNotBlank(parentDrawingNo) ? StrUtil.join("-", parentDrawingNo, gNo.toString()) : gNo.toString()); + gNo++; + generateDrawingNo(saveBomDetailParamDTO, firstLevelBom.getChildBomRowId(), firstLevelBom.getDrawingNo()); + + generateDrawingNoMap.put(key, firstLevelBom.getDrawingNo()); + + + } + + } + + +}