1-eBOM草稿-转Pbom
This commit is contained in:
parent
6e79ebe3ff
commit
72941481fa
|
|
@ -60,7 +60,7 @@ public class EBomToPBom extends EBomToPbomBase {
|
|||
//buildPBomParent(parent, facCode);
|
||||
for (BomNewEbomParentVO vo : parentList) {
|
||||
String hasConvertKey = StrUtil.join("-", facCode, vo.getBomRowId());
|
||||
if (hasConvert.contains(hasConvertKey) || (PBomStatusEnum.PUBLISH.equalsValue(vo.getStatus()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType()))) {
|
||||
if (hasConvert.contains(hasConvertKey)) {
|
||||
continue;
|
||||
}
|
||||
hasConvert.add(hasConvertKey);
|
||||
|
|
@ -77,9 +77,9 @@ public class EBomToPBom extends EBomToPbomBase {
|
|||
List<BomNewEbomParentVO> child = result.stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && !childDelMaterialNos.contains(u.getMaterialNo())).distinct().collect(Collectors.toList());
|
||||
List<BomNewEbomParentVO> mergeChild = mergeChild(child);
|
||||
//判断pbom 是否一致
|
||||
if( compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){
|
||||
continue;
|
||||
}
|
||||
// if( compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){
|
||||
// continue;
|
||||
// }
|
||||
BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode,parentList);
|
||||
if(Objects.isNull(parentEnt)){
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -65,8 +65,9 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
for (BomNewEbomParentVO data : deliveryPackage1010) {
|
||||
List<BomNewEbomParentVO> subVos = new ArrayList<>();
|
||||
if (data.getMaterialName().contains("仙桃") ) { //只获取下降虚拟包(排除仙桃油漆包)
|
||||
if(!data.getMaterialName().contains(VirtualPackageTypeEnum.PAINT_PACKAGE.getDescription())) {
|
||||
|
||||
subVos.add(data);
|
||||
if(!VirtualPackageTypeEnum.PAINT_PACKAGE.getValue().equals(data.getVirtualPartType())) {
|
||||
subVos.addAll(result.stream().filter(u -> u.getParentRowId().equals(data.getBomRowId())).collect(Collectors.toList()));
|
||||
}
|
||||
} else {
|
||||
|
|
@ -102,7 +103,7 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
.collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
|
||||
for (BomNewEbomParentVO vo : parentList) {
|
||||
String hasConvertKey = StrUtil.join("-", facCode, vo.getBomRowId());
|
||||
if (hasConvert.contains(hasConvertKey) || (PBomStatusEnum.PUBLISH.equalsValue(vo.getStatus()) && !VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType()) )) {
|
||||
if (hasConvert.contains(hasConvertKey) ) {
|
||||
continue;
|
||||
}
|
||||
hasConvert.add(hasConvertKey);
|
||||
|
|
@ -117,9 +118,9 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
|
|||
//子级
|
||||
List<BomNewEbomParentVO> child = facBomDataMp.get(facCode).stream().filter(u -> u.getParentRowId().equals(vo.getBomRowId()) && !childDelMaterialNos.contains(u.getMaterialNo())).distinct().collect(Collectors.toList());
|
||||
List<BomNewEbomParentVO> mergeChild = mergeChild(child);
|
||||
if(compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){
|
||||
continue;
|
||||
}
|
||||
// if(compareContentIsSame(vo, mergeChild, facCode) && !vo.getMaterialNo().equals(parent.getMaterialNo())){
|
||||
// continue;
|
||||
// }
|
||||
BomNewPbomParentEntity parentEnt = buildPBomParent(vo, facCode, parentList);
|
||||
if (Objects.isNull(parentEnt)) {
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -203,12 +203,9 @@ public abstract class EBomToPbomBase {
|
|||
|
||||
} else { //pbom-处于正式表
|
||||
//Ebom为已发布时则直接跳过 (直发包,发货前装配包是则需对比Bom明细,一致则跳过,否则升级)
|
||||
if (!EBomStatusEnum.PUBLISHED.equalsValue(parentVo.getStatus()) || (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(parentVo.getVirtualPartType()))) {
|
||||
String version = StrUtil.isBlank(parentVo.getCurrentVersion()) ? VersionUtil.getNextVersion("") : parentVo.getCurrentVersion();
|
||||
String bomVersion = VersionUtil.compare(version, oldParent.getCurrentVersion()) > 0 ? version : VersionUtil.getNextVersion(oldParent.getCurrentVersion());
|
||||
return buildParentEntity(parentVo, facCode, oldParent, bomVersion);
|
||||
}
|
||||
return null;
|
||||
|
||||
return buildParentEntity(parentVo, facCode, oldParent, VersionUtil.getNextVersionForSmallVersion(oldParent.getCurrentVersion()));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -740,37 +737,37 @@ public abstract class EBomToPbomBase {
|
|||
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())
|
||||
.eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue())
|
||||
.last(" order by current_version desc limit 1").one();
|
||||
if (Objects.nonNull(oldEBom)) {
|
||||
List<BomNewEbomChildEntity> oldParentChild = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list();
|
||||
|
||||
|
||||
//一样则无需转换
|
||||
if (isSameEBomV2(oldParentChild, newParentChild)) {
|
||||
parentBom.setNoConvertToPBomIs(1);
|
||||
parentBom.setHasChangeState(1);
|
||||
//只变化项目类别-则使用小版本
|
||||
} else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) {
|
||||
parentBom.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(oldEBom.getCurrentVersion()));
|
||||
parentBom.setHasChangeState(2);
|
||||
delOldEBom.add(oldEBom.getRowId());
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
} else {
|
||||
parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
||||
parentBom.setHasChangeState(2);
|
||||
delOldEBom.add(oldEBom.getRowId());
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
addEBomNew.add(parentBom.getBomRowId());
|
||||
}
|
||||
}
|
||||
// if (!EBomStatusEnum.PUBLISHED.equalsValue(parentBom.getStatus())) {
|
||||
// //获取正式版
|
||||
// BomNewEbomParentEntity oldEBom = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parentBom.getMaterialNo())
|
||||
// .eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue())
|
||||
// .last(" order by current_version desc limit 1").one();
|
||||
// if (Objects.nonNull(oldEBom)) {
|
||||
// List<BomNewEbomChildEntity> oldParentChild = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, oldEBom.getRowId()).list();
|
||||
//
|
||||
//
|
||||
// //一样则无需转换
|
||||
// if (isSameEBomV2(oldParentChild, newParentChild)) {
|
||||
// parentBom.setNoConvertToPBomIs(1);
|
||||
// parentBom.setHasChangeState(1);
|
||||
// //只变化项目类别-则使用小版本
|
||||
// } else if (isSameEBomV2FormMaterialNoAndNum(oldParentChild, newParentChild)) {
|
||||
// parentBom.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(oldEBom.getCurrentVersion()));
|
||||
// parentBom.setHasChangeState(2);
|
||||
// delOldEBom.add(oldEBom.getRowId());
|
||||
// addEBomNew.add(parentBom.getBomRowId());
|
||||
// } else {
|
||||
// parentBom.setCurrentVersion(VersionUtil.getNextVersion(oldEBom.getCurrentVersion()));
|
||||
// parentBom.setHasChangeState(2);
|
||||
// delOldEBom.add(oldEBom.getRowId());
|
||||
// addEBomNew.add(parentBom.getBomRowId());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// else {
|
||||
// addEBomNew.add(parentBom.getBomRowId());
|
||||
// }
|
||||
// }
|
||||
//如子级都为F 项父级也不转
|
||||
Set<String> projectSet = newParentChild.stream().map(u -> u.getProjectType().toUpperCase()).collect(Collectors.toSet());
|
||||
if (CollUtil.isNotEmpty(projectSet)) {
|
||||
|
|
|
|||
|
|
@ -68,9 +68,10 @@ public class EBomToPBomForFormal31New extends FormalEBomToPbomBase {
|
|||
for (BomNewEbomParentVO data: deliveryPackage1010){
|
||||
List<BomNewEbomParentVO> subVos = new ArrayList<>();// result.stream().filter(u -> u.getLevelNumber().compareTo(data.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(data.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0).collect(Collectors.toList());
|
||||
if(data.getMaterialName().contains("仙桃")){
|
||||
if(!data.getMaterialName().contains(VirtualPackageTypeEnum.PAINT_PACKAGE.getDescription())) {
|
||||
|
||||
// subVos = result.stream().filter(u -> u.getMaterialName().contains("仙桃") && u.getLevelNumber().compareTo(data.getLevelNumber()) >= 0 && u.getLevelNumber().compareTo(NumberUtil.add(data.getLevelNumber(), BigDecimal.valueOf(0.01))) < 0).collect(Collectors.toList());
|
||||
subVos.add(data);
|
||||
if(!VirtualPackageTypeEnum.PAINT_PACKAGE.getValue().equals(data.getVirtualPartType())) {
|
||||
subVos.addAll(result.stream().filter(u -> u.getParentRowId().equals(data.getBomRowId())).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue