ebom转PBOM

This commit is contained in:
大米 2024-09-12 18:14:51 +08:00
parent bbcc2d5fb1
commit 802203f4d4
4 changed files with 22 additions and 2 deletions

View File

@ -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;

View File

@ -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<BomNewEbomParentVO> 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));

View File

@ -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<BomNewEbomParentVO> 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());

View File

@ -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直接比较
}
}
}