From 0df472a26bcc9f6ba683ab410176f87251c15c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Mon, 18 Dec 2023 13:54:57 +0800 Subject: [PATCH] =?UTF-8?q?1.ebom-=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/pojo/vo/BomNewEbomParentVO.java | 3 + .../service/domain/EBom/EBomToPBom.java | 61 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java 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()); + + + } + + } + + +}