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();
|
||||
|
||||
@ApiModelProperty("父级物料编码")
|
||||
private List<String> parentMaterialNos;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@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.BomNewPbomParentVO;
|
||||
import com.nflg.product.bomnew.service.*;
|
||||
import com.nflg.product.bomnew.util.BomLevelUtil;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
import com.nflg.product.bomnew.util.*;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
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());
|
||||
for (BomNewEbomParentVO child : parentEntChild) {
|
||||
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)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||
newEnt.setRowId(IdWorker.getId());
|
||||
|
|
@ -249,7 +247,7 @@ public abstract class EBomToPbomBase {
|
|||
continue;
|
||||
}
|
||||
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)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(lastVirtualPackage, child);
|
||||
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) {
|
||||
BomNewEbomParentVO parentEnt = getParent(vo);
|
||||
private BomNewEbomParentVO getLastVirtualPackageNew(BomNewEbomParentVO vo, Long parentRowId, VirtualPackageTypeEnum virtualPackageTypeEnum) {
|
||||
BomNewEbomParentVO parentEnt = getParent(vo,parentRowId);
|
||||
Boolean flag = true;
|
||||
while (Objects.nonNull(parentEnt) && parentEnt.getParentRowId() > 0 && flag) {
|
||||
//制作
|
||||
|
|
@ -523,6 +572,14 @@ public abstract class EBomToPbomBase {
|
|||
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) {
|
||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(parents)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue