ebom转PBOM
This commit is contained in:
parent
bbcc2d5fb1
commit
802203f4d4
|
|
@ -83,6 +83,9 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable {
|
||||||
@ApiModelProperty(value = "数量")
|
@ApiModelProperty(value = "数量")
|
||||||
private BigDecimal num;
|
private BigDecimal num;
|
||||||
|
|
||||||
|
public BigDecimal getNum() {
|
||||||
|
return num==null?null:num.stripTrailingZeros();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否跟节点 0-否 1-是
|
* 是否跟节点 0-否 1-是
|
||||||
|
|
@ -311,6 +314,10 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable {
|
||||||
@ApiModelProperty("原始数量")
|
@ApiModelProperty("原始数量")
|
||||||
private BigDecimal originalNum;
|
private BigDecimal originalNum;
|
||||||
|
|
||||||
|
public BigDecimal getOriginalNum() {
|
||||||
|
return originalNum==null?null:originalNum.stripTrailingZeros();
|
||||||
|
}
|
||||||
|
|
||||||
@ApiModelProperty("原始项目类别")
|
@ApiModelProperty("原始项目类别")
|
||||||
private String originalProjectType;
|
private String originalProjectType;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -274,7 +274,7 @@ public abstract class EBomToPbomBase {
|
||||||
for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) {
|
for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) {
|
||||||
if (!oldPBomUpdateChild.getOriginalMaterialNo().equals(oldPBomUpdateChild.getMaterialNo()) || !oldPBomUpdateChild.getOriginalProjectType().equals(oldPBomUpdateChild.getProjectType()) || !oldPBomUpdateChild.getOriginalNum().equals(oldPBomUpdateChild.getNum())) {
|
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())
|
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)) {
|
if (CollUtil.isNotEmpty(upEnts)) {
|
||||||
buildPBomAddChild(parent, facCode, oldPBomUpdateChild);
|
buildPBomAddChild(parent, facCode, oldPBomUpdateChild);
|
||||||
newBomChildren.remove(upEnts.get(0));
|
newBomChildren.remove(upEnts.get(0));
|
||||||
|
|
|
||||||
|
|
@ -276,7 +276,7 @@ public abstract class FormalEBomToPbomBase {
|
||||||
for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) {
|
for (BomNewPbomParentVO oldPBomUpdateChild : oldPBomUpdateChildren) {
|
||||||
if (!oldPBomUpdateChild.getOriginalMaterialNo().equals(oldPBomUpdateChild.getMaterialNo()) || !oldPBomUpdateChild.getOriginalProjectType().equals(oldPBomUpdateChild.getProjectType()) || !oldPBomUpdateChild.getOriginalNum().equals(oldPBomUpdateChild.getNum())) {
|
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())
|
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)) {
|
if (CollUtil.isNotEmpty(upEnts)) {
|
||||||
upEnts.get(0).setMaterialNo(oldPBomUpdateChild.getMaterialNo());
|
upEnts.get(0).setMaterialNo(oldPBomUpdateChild.getMaterialNo());
|
||||||
upEnts.get(0).setNum(oldPBomUpdateChild.getNum());
|
upEnts.get(0).setNum(oldPBomUpdateChild.getNum());
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.nflg.product.bomnew.inteface.ThrowExceptionFunction;
|
||||||
import com.nflg.product.bomnew.inteface.TrueHandleFunction;
|
import com.nflg.product.bomnew.inteface.TrueHandleFunction;
|
||||||
import nflg.product.common.constant.STATE;
|
import nflg.product.common.constant.STATE;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
@ -89,4 +90,16 @@ public class VUtils {
|
||||||
}
|
}
|
||||||
return list;
|
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,直接比较
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue