1、解决变更影响重复问题
This commit is contained in:
parent
327f6b1a3b
commit
aba0507bf9
|
|
@ -353,6 +353,9 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
|
||||||
|
|
||||||
private List<BomNewEbomParentVO> childNodes = Collections.emptyList();
|
private List<BomNewEbomParentVO> childNodes = Collections.emptyList();
|
||||||
|
|
||||||
|
@ApiModelProperty("父级物料编码")
|
||||||
|
private List<String> parentMaterialNos;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,7 @@ import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO;
|
import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO;
|
||||||
import com.nflg.product.bomnew.service.*;
|
import com.nflg.product.bomnew.service.*;
|
||||||
import com.nflg.product.bomnew.util.BomLevelUtil;
|
import com.nflg.product.bomnew.util.*;
|
||||||
import com.nflg.product.bomnew.util.VUtils;
|
|
||||||
import com.nflg.product.bomnew.util.VersionUtil;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
|
@ -237,7 +235,7 @@ public abstract class EBomToPbomBase {
|
||||||
List<BomNewEbomParentVO> parentEntChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList());
|
List<BomNewEbomParentVO> parentEntChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList());
|
||||||
for (BomNewEbomParentVO child : parentEntChild) {
|
for (BomNewEbomParentVO child : parentEntChild) {
|
||||||
if (StrUtil.isNotBlank(child.getProjectType()) && child.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) {
|
if (StrUtil.isNotBlank(child.getProjectType()) && child.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) {
|
||||||
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child,vo.getParentRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||||
if (Objects.nonNull(lastVirtualPackage)) {
|
if (Objects.nonNull(lastVirtualPackage)) {
|
||||||
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||||
newEnt.setRowId(IdWorker.getId());
|
newEnt.setRowId(IdWorker.getId());
|
||||||
|
|
@ -249,7 +247,7 @@ public abstract class EBomToPbomBase {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
||||||
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, vo.getParentRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||||
if (Objects.nonNull(lastVirtualPackage)) {
|
if (Objects.nonNull(lastVirtualPackage)) {
|
||||||
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||||
newEnt.setRowId(IdWorker.getId());
|
newEnt.setRowId(IdWorker.getId());
|
||||||
|
|
@ -292,6 +290,57 @@ public abstract class EBomToPbomBase {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void liftingLayerNew() {
|
||||||
|
|
||||||
|
result.add(parent);
|
||||||
|
List<BomNewEbomParentVO> firstSubList = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parent.getBomRowId())).collect(Collectors.toList());
|
||||||
|
BomNewEbomParentVO zfVo=null;
|
||||||
|
BomNewEbomParentVO fhqVO=null;
|
||||||
|
|
||||||
|
while (CollUtil.isNotEmpty(firstSubList)) {
|
||||||
|
for (BomNewEbomParentVO vo : firstSubList) {
|
||||||
|
List<BomNewEbomParentVO> zfList = firstSubList.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(zfList)) {
|
||||||
|
zfVo=zfList.get(0);
|
||||||
|
}
|
||||||
|
if(Objects.isNull(zfVo) && VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(vo.getVirtualPartType()) ) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (BomNewEbomParentVO vo : parentsEntList) {
|
||||||
|
List<BomNewEbomParentVO> parentEntChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId())).collect(Collectors.toList());
|
||||||
|
for (BomNewEbomParentVO child : parentEntChild) {
|
||||||
|
if (StrUtil.isNotBlank(child.getProjectType()) && child.getProjectType().equals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey())) {
|
||||||
|
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(child,vo.getParentRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE);
|
||||||
|
if (Objects.nonNull(lastVirtualPackage)) {
|
||||||
|
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||||
|
newEnt.setRowId(IdWorker.getId());
|
||||||
|
newEnt.setSourceRowId(String.valueOf(child.getParentRowId()));
|
||||||
|
newEnt.setSourceParentMaterialNo(vo.getMaterialNo());
|
||||||
|
newEnt.setParentRowId(lastVirtualPackage.getBomRowId());
|
||||||
|
result.add(newEnt);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(vo.getProjectType()) && vo.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
||||||
|
BomNewEbomParentVO lastVirtualPackage = getLastVirtualPackageNew(vo, vo.getParentRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE);
|
||||||
|
if (Objects.nonNull(lastVirtualPackage)) {
|
||||||
|
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||||
|
newEnt.setRowId(IdWorker.getId());
|
||||||
|
newEnt.setSourceRowId(String.valueOf(child.getParentRowId()));
|
||||||
|
newEnt.setSourceParentMaterialNo(vo.getMaterialNo());
|
||||||
|
newEnt.setParentRowId(lastVirtualPackage.getBomRowId());
|
||||||
|
result.add(newEnt);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
result.add(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提层汇总数量
|
* 提层汇总数量
|
||||||
*
|
*
|
||||||
|
|
@ -507,8 +556,8 @@ public abstract class EBomToPbomBase {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private BomNewEbomParentVO getLastVirtualPackageNew(BomNewEbomParentVO vo, VirtualPackageTypeEnum virtualPackageTypeEnum) {
|
private BomNewEbomParentVO getLastVirtualPackageNew(BomNewEbomParentVO vo, Long parentRowId, VirtualPackageTypeEnum virtualPackageTypeEnum) {
|
||||||
BomNewEbomParentVO parentEnt = getParent(vo);
|
BomNewEbomParentVO parentEnt = getParent(vo,parentRowId);
|
||||||
Boolean flag = true;
|
Boolean flag = true;
|
||||||
while (Objects.nonNull(parentEnt) && parentEnt.getParentRowId() > 0 && flag) {
|
while (Objects.nonNull(parentEnt) && parentEnt.getParentRowId() > 0 && flag) {
|
||||||
//制作
|
//制作
|
||||||
|
|
@ -523,6 +572,14 @@ public abstract class EBomToPbomBase {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BomNewEbomParentVO getParent(BomNewEbomParentVO vo,Long parentRowId) {
|
||||||
|
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentRowId) && u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(parents)) {
|
||||||
|
return parents.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private BomNewEbomParentVO getParent(BomNewEbomParentVO vo) {
|
private BomNewEbomParentVO getParent(BomNewEbomParentVO vo) {
|
||||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(parents)) {
|
if (CollUtil.isNotEmpty(parents)) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue