From 802203f4d46487f74706bf402f4631ab69590482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 12 Sep 2024 18:14:51 +0800 Subject: [PATCH] =?UTF-8?q?ebom=E8=BD=ACPBOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/pojo/vo/BomNewPbomParentVO.java | 7 +++++++ .../bomnew/service/domain/EBom/EBomToPbomBase.java | 2 +- .../domain/EBom/topbomnew/FormalEBomToPbomBase.java | 2 +- .../java/com/nflg/product/bomnew/util/VUtils.java | 13 +++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java index d9497e22..86ada18f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java @@ -83,6 +83,9 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty(value = "数量") private BigDecimal num; + public BigDecimal getNum() { + return num==null?null:num.stripTrailingZeros(); + } /** * 是否跟节点 0-否 1-是 @@ -311,6 +314,10 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty("原始数量") private BigDecimal originalNum; + public BigDecimal getOriginalNum() { + return originalNum==null?null:originalNum.stripTrailingZeros(); + } + @ApiModelProperty("原始项目类别") private String originalProjectType; 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 5adee1d8..608f594a 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 @@ -274,7 +274,7 @@ public abstract class EBomToPbomBase { for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) { if (!oldPBomUpdateChild.getOriginalMaterialNo().equals(oldPBomUpdateChild.getMaterialNo()) || !oldPBomUpdateChild.getOriginalProjectType().equals(oldPBomUpdateChild.getProjectType()) || !oldPBomUpdateChild.getOriginalNum().equals(oldPBomUpdateChild.getNum())) { List upEnts = newBomChildren.stream().filter(u -> u.getMaterialNo().equals(oldPBomUpdateChild.getOriginalMaterialNo()) - && u.getProjectType().equals(oldPBomUpdateChild.getOriginalProjectType()) && u.getNum().equals(oldPBomUpdateChild.getOriginalNum())).collect(Collectors.toList()); + && u.getProjectType().equals(oldPBomUpdateChild.getOriginalProjectType()) && VUtils.compareSafely(u.getNum(), oldPBomUpdateChild.getOriginalNum())==0).collect(Collectors.toList()); if (CollUtil.isNotEmpty(upEnts)) { buildPBomAddChild(parent, facCode, oldPBomUpdateChild); newBomChildren.remove(upEnts.get(0)); 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 ae89d308..a4b1c27a 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 @@ -276,7 +276,7 @@ public abstract class FormalEBomToPbomBase { for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) { if (!oldPBomUpdateChild.getOriginalMaterialNo().equals(oldPBomUpdateChild.getMaterialNo()) || !oldPBomUpdateChild.getOriginalProjectType().equals(oldPBomUpdateChild.getProjectType()) || !oldPBomUpdateChild.getOriginalNum().equals(oldPBomUpdateChild.getNum())) { List upEnts = newBomChildren.stream().filter(u -> u.getMaterialNo().equals(oldPBomUpdateChild.getOriginalMaterialNo()) - && u.getProjectType().equals(oldPBomUpdateChild.getOriginalProjectType()) && u.getNum().equals(oldPBomUpdateChild.getOriginalNum())).collect(Collectors.toList()); + && u.getProjectType().equals(oldPBomUpdateChild.getOriginalProjectType()) && VUtils.compareSafely(u.getNum(),oldPBomUpdateChild.getOriginalNum())==0).collect(Collectors.toList()); if (CollUtil.isNotEmpty(upEnts)) { upEnts.get(0).setMaterialNo(oldPBomUpdateChild.getMaterialNo()); upEnts.get(0).setNum(oldPBomUpdateChild.getNum()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java index 62f168f6..97ee6a53 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java @@ -7,6 +7,7 @@ import com.nflg.product.bomnew.inteface.ThrowExceptionFunction; import com.nflg.product.bomnew.inteface.TrueHandleFunction; import nflg.product.common.constant.STATE; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -89,4 +90,16 @@ public class VUtils { } return list; } + + public static int compareSafely(BigDecimal a, BigDecimal b) { + if (a == null && b == null) { + return 0; // 两个都是null,认为相等 + } else if (a == null) { + return -1; // 只有a是null,认为a更小 + } else if (b == null) { + return -1; // 只有b是null,认为b更小 + } else { + return a.compareTo(b); // 两个都不为null,直接比较 + } + } }