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