1、 转PBOM 问题
This commit is contained in:
parent
b5dca83082
commit
96adcae0a0
|
|
@ -33,6 +33,7 @@ public class EBomToPBomForFormal extends EBomToPbomBase {
|
|||
this.facCodes = inFacCodes;
|
||||
this.convertMode=convertModelEnum;
|
||||
generateDrawingNo(allBomDetail, parentRowId, "");
|
||||
initEBomVersionFormal();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public class EBomToPBomForFormal31 extends EBomToPbomBase {
|
|||
this.facCodes = inFacCodes;
|
||||
this.convertMode=convertModelEnum;
|
||||
generateDrawingNo(allBomDetail, parentRowId, "");
|
||||
|
||||
initEBomVersionFormal();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ public abstract class EBomToPbomBase {
|
|||
protected List<BomNewEbomVirtualPackageCompositionEntity> virtualPackageCompositionResult = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
@Getter
|
||||
protected List<BomNewEbomUpgradeChangeEntity> upgradeChangeResult = new ArrayList<>();
|
||||
|
||||
|
|
@ -284,6 +283,7 @@ public abstract class EBomToPbomBase {
|
|||
|
||||
/**
|
||||
* 构建虚拟包组成
|
||||
*
|
||||
* @param lastVirtualPackage
|
||||
* @param vo
|
||||
*/
|
||||
|
|
@ -361,8 +361,7 @@ public abstract class EBomToPbomBase {
|
|||
//虚拟包原F项
|
||||
Set<String> fSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet());
|
||||
Set<String> newFSet = childList.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet());
|
||||
if(!fSet.equals(newFSet))
|
||||
{
|
||||
if (!fSet.equals(newFSet)) {
|
||||
buildChangeImpactEntity(vMaterialList.get(0), vo);
|
||||
result = true;
|
||||
continue;
|
||||
|
|
@ -371,8 +370,7 @@ public abstract class EBomToPbomBase {
|
|||
//虚拟包原F项
|
||||
Set<String> zSet = vMaterialList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getChildMaterialNo(), u.getNum())).collect(Collectors.toSet());
|
||||
Set<String> newZSet = childList.stream().filter(u -> VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(u.getProjectType())).map(u -> StrUtil.join("", u.getMaterialNo(), u.getNum())).collect(Collectors.toSet());
|
||||
if(!zSet.equals(newZSet))
|
||||
{
|
||||
if (!zSet.equals(newZSet)) {
|
||||
buildChangeImpactEntity(vMaterialList.get(0), vo);
|
||||
result = true;
|
||||
continue;
|
||||
|
|
@ -558,6 +556,7 @@ public abstract class EBomToPbomBase {
|
|||
public void initEBomVersion() {
|
||||
List<BomNewEbomParentVO> parentBoms = allBomDetail.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
|
||||
for (BomNewEbomParentVO parentBom : parentBoms) {
|
||||
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
|
||||
if (!EBomStatusEnum.PUBLISHED.equalsValue(parentBom.getStatus())) {
|
||||
//获取正式版
|
||||
BomNewEbomParentEntity oldEBom = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parentBom.getMaterialNo())
|
||||
|
|
@ -566,7 +565,7 @@ public abstract class EBomToPbomBase {
|
|||
if (Objects.nonNull(oldEBom)) {
|
||||
List<BomNewEbomChildEntity> oldParentChild = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list();
|
||||
|
||||
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
|
||||
|
||||
//一样则无需转换
|
||||
if (isSameEBomV2(oldParentChild, newParentChild)) {
|
||||
parentBom.setNoConvertToPBomIs(1);
|
||||
|
|
@ -579,7 +578,30 @@ public abstract class EBomToPbomBase {
|
|||
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
||||
parentBom.setHasChangeState(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
//如子级都为F 项父级也不转
|
||||
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
|
||||
if (CollUtil.isNotEmpty(projectSet)) {
|
||||
if (!VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey().equals(parentBom.getVirtualPartType()) &&
|
||||
(ImmutableSet.of("F").equals(projectSet) || ImmutableSet.of("F", "Z").equals(projectSet) || ImmutableSet.of("Z").equals(projectSet))) {
|
||||
parentBom.setNoConvertToPBomIs(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 正式eBOM转换前生产 pBOM
|
||||
* 子项都为F 项则父项不转
|
||||
*/
|
||||
public void initEBomVersionFormal() {
|
||||
List<BomNewEbomParentVO> parentBoms = allBomDetail.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList());
|
||||
for (BomNewEbomParentVO parentBom : parentBoms) {
|
||||
|
||||
List<BomNewEbomParentVO> newParentChild = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentBom.getBomRowId())).collect(Collectors.toList());
|
||||
//如子级都为F 项父级也不转
|
||||
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
|
||||
if (CollUtil.isNotEmpty(projectSet)) {
|
||||
|
|
@ -589,9 +611,7 @@ public abstract class EBomToPbomBase {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue