Merge remote-tracking branch 'origin/DM/提层问题修复'
This commit is contained in:
commit
e45c795e51
|
|
@ -358,6 +358,8 @@ public class BomNewEbomParentVO extends BaseMaterialVO implements Serializable {
|
|||
@ApiModelProperty("父级物料RowId")
|
||||
private List<Long> parentRowIds=new ArrayList<>();
|
||||
|
||||
@ApiModelProperty("父级物料Id")
|
||||
private List<Long> parenIds=new ArrayList<>();
|
||||
|
||||
@ApiModelProperty("因子级都为F or Z 项而不转")
|
||||
private Integer notToPBomForFZ=0;
|
||||
|
|
|
|||
|
|
@ -330,6 +330,9 @@ public class SapService implements ApplicationContextAware {
|
|||
params.setInputTables(inputTables);
|
||||
SapResult sapResult = doSapFun(params);
|
||||
Map<String, List<Map<String, Object>>> outTablesMap = sapResult.getOutTablesMap();
|
||||
return outTablesMap.get("OUTPUT");
|
||||
if(Objects.nonNull(outTablesMap)) {
|
||||
return outTablesMap.get("OUTPUT");
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ public abstract class EBomToPbomBase {
|
|||
//if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy())) {
|
||||
if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) {
|
||||
//当bom创建人为本人 或 版本大于当前版本则覆盖
|
||||
if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || parentVo.getCurrentVersion()==null || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0){
|
||||
if (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || parentVo.getCurrentVersion()==null || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0){
|
||||
SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId()));
|
||||
// this.delParentRowIds.add(oldParent.getRowId());
|
||||
oldParent.setSourceRowId(parentVo.getBomRowId());
|
||||
|
|
@ -375,7 +375,7 @@ public abstract class EBomToPbomBase {
|
|||
*/
|
||||
protected void liftingLayer() {
|
||||
result.add(parent);
|
||||
liftingLayerDo(parent, null, null, ImmutableList.of());
|
||||
liftingLayerDo(parent, null, null, ImmutableList.of() ,ImmutableList.of());
|
||||
}
|
||||
|
||||
private List<Long> hasCupmVo = new ArrayList<>();
|
||||
|
|
@ -385,7 +385,7 @@ public abstract class EBomToPbomBase {
|
|||
* @param directDeliveryVo 直发包
|
||||
* @param preAssemblyVo 发货前装配包
|
||||
*/
|
||||
public void liftingLayerDo(BomNewEbomParentVO parentVO, BomNewEbomParentVO directDeliveryVo, BomNewEbomParentVO preAssemblyVo, List<Long> parentRowIds) {
|
||||
public void liftingLayerDo(BomNewEbomParentVO parentVO, BomNewEbomParentVO directDeliveryVo, BomNewEbomParentVO preAssemblyVo, List<Long> parentRowIds,List<Long> rowIds) {
|
||||
List<BomNewEbomParentVO> firstLevelBoms = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentVO.getBomRowId())).sorted(Comparator.comparing(BomNewEbomParentVO::getVirtualPartType).reversed()).collect(Collectors.toList());
|
||||
|
||||
for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) {
|
||||
|
|
@ -395,6 +395,8 @@ public abstract class EBomToPbomBase {
|
|||
//直发包
|
||||
firstLevelBom.getParentRowIds().add(firstLevelBom.getParentRowId());
|
||||
firstLevelBom.getParentRowIds().addAll(parentRowIds);
|
||||
firstLevelBom.getParenIds().add(parentVO.getRowId());
|
||||
firstLevelBom.getParenIds().addAll(rowIds);
|
||||
List<BomNewEbomParentVO> directDeliveryVoList = firstLevelBoms.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(directDeliveryVoList)) {
|
||||
directDeliveryVo = directDeliveryVoList.get(0);
|
||||
|
|
@ -413,6 +415,7 @@ public abstract class EBomToPbomBase {
|
|||
} else if (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(firstLevelBom.getProjectType())) {
|
||||
if (Objects.nonNull(directDeliveryVo)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(directDeliveryVo, firstLevelBom);
|
||||
firstLevelBom.getParenIds().clear();
|
||||
newEnt.setRowId(IdWorker.getId());
|
||||
newEnt.setSourceRowId(String.valueOf(firstLevelBom.getParentRowId()));
|
||||
newEnt.setSourceParentMaterialNo(parentVO.getMaterialNo());
|
||||
|
|
@ -422,6 +425,7 @@ public abstract class EBomToPbomBase {
|
|||
} else if (firstLevelBom.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
||||
if (Objects.nonNull(preAssemblyVo)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(preAssemblyVo, firstLevelBom);
|
||||
firstLevelBom.getParenIds().clear();
|
||||
newEnt.setRowId(IdWorker.getId());
|
||||
newEnt.setSourceRowId(String.valueOf(firstLevelBom.getParentRowId()));
|
||||
newEnt.setSourceParentMaterialNo(parentVO.getMaterialNo());
|
||||
|
|
@ -433,7 +437,7 @@ public abstract class EBomToPbomBase {
|
|||
}
|
||||
hasCupmVo.add(firstLevelBom.getRowId());
|
||||
if (firstLevelBom.getBomRowId() > 0) {
|
||||
liftingLayerDo(firstLevelBom, directDeliveryVo, preAssemblyVo, firstLevelBom.getParentRowIds());
|
||||
liftingLayerDo(firstLevelBom, directDeliveryVo, preAssemblyVo, firstLevelBom.getParentRowIds() ,firstLevelBom.getParenIds());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -702,7 +706,7 @@ public abstract class EBomToPbomBase {
|
|||
}
|
||||
|
||||
private BomNewEbomParentVO getParent(BomNewEbomParentVO vo) {
|
||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> vo.getParentRowIds().contains(u.getParentRowId()) && u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> vo.getParentRowIds().contains(u.getParentRowId()) && u.getBomRowId().equals(vo.getParentRowId()) && vo.getParenIds().contains(u.getRowId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(parents)) {
|
||||
return parents.get(0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
else if (Objects.nonNull(oldParent) && oldParent.getStatus() < EBomStatusEnum.PUBLISHED.getValue()) {
|
||||
//if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy())) {
|
||||
if (ConvertToPBomModelEnum.OVERRIDE.equalsValue(convertMode.getValue())) {
|
||||
if (oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || parentVo.getCurrentVersion()==null || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0) {
|
||||
if (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(parentVo.getVirtualPartType()) || oldParent.getCreatedBy().equals(parentVo.getCreatedBy()) || parentVo.getCurrentVersion()==null || VersionUtil.compare(parentVo.getCurrentVersion(),oldParent.getCurrentVersion())>0) {
|
||||
SpringUtil.getBean(BomNewPbomChildService.class).getBaseMapper().deleteByMap(ImmutableMap.of("parent_row_id", oldParent.getRowId()));
|
||||
oldParent.setSourceRowId(parentVo.getBomRowId());
|
||||
oldParent.setCreatedTime(LocalDateTime.now());
|
||||
|
|
@ -355,7 +355,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
*/
|
||||
protected void liftingLayer() {
|
||||
result.add(parent);
|
||||
liftingLayerDo(parent, null, null, ImmutableList.of());
|
||||
liftingLayerDo(parent, null, null, ImmutableList.of() ,ImmutableList.of());
|
||||
}
|
||||
|
||||
private List<Long> hasCupmVo = new ArrayList<>();
|
||||
|
|
@ -365,7 +365,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
* @param directDeliveryVo 直发包
|
||||
* @param preAssemblyVo 发货前装配包
|
||||
*/
|
||||
public void liftingLayerDo(BomNewEbomParentVO parentVO, BomNewEbomParentVO directDeliveryVo, BomNewEbomParentVO preAssemblyVo, List<Long> parentRowIds) {
|
||||
public void liftingLayerDo(BomNewEbomParentVO parentVO, BomNewEbomParentVO directDeliveryVo, BomNewEbomParentVO preAssemblyVo, List<Long> parentRowIds ,List<Long> rowIds) {
|
||||
List<BomNewEbomParentVO> firstLevelBoms = allBomDetail.stream().filter(u -> u.getParentRowId().equals(parentVO.getBomRowId())).sorted(Comparator.comparing(BomNewEbomParentVO::getVirtualPartType).reversed()).collect(Collectors.toList());
|
||||
|
||||
for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) {
|
||||
|
|
@ -375,6 +375,8 @@ public abstract class FormalEBomToPbomBase {
|
|||
//直发包
|
||||
firstLevelBom.getParentRowIds().add(firstLevelBom.getParentRowId());
|
||||
firstLevelBom.getParentRowIds().addAll(parentRowIds);
|
||||
firstLevelBom.getParenIds().add(parentVO.getRowId());
|
||||
firstLevelBom.getParenIds().addAll(rowIds);
|
||||
List<BomNewEbomParentVO> directDeliveryVoList = firstLevelBoms.stream().filter(u -> VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(directDeliveryVoList)) {
|
||||
directDeliveryVo = directDeliveryVoList.get(0);
|
||||
|
|
@ -393,6 +395,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
} else if (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getProductTypeKey().equals(firstLevelBom.getProjectType())) {
|
||||
if (Objects.nonNull(directDeliveryVo)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(directDeliveryVo, firstLevelBom);
|
||||
firstLevelBom.getParenIds().clear();
|
||||
newEnt.setRowId(IdWorker.getId());
|
||||
newEnt.setSourceRowId(String.valueOf(firstLevelBom.getParentRowId()));
|
||||
newEnt.setSourceParentMaterialNo(parentVO.getMaterialNo());
|
||||
|
|
@ -402,6 +405,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
} else if (firstLevelBom.getProjectType().equals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getProductTypeKey())) {
|
||||
if (Objects.nonNull(preAssemblyVo)) {
|
||||
BomNewEbomParentVO newEnt = liftingLayerSummary(preAssemblyVo, firstLevelBom);
|
||||
firstLevelBom.getParenIds().clear();
|
||||
newEnt.setRowId(IdWorker.getId());
|
||||
newEnt.setSourceRowId(String.valueOf(firstLevelBom.getParentRowId()));
|
||||
newEnt.setSourceParentMaterialNo(parentVO.getMaterialNo());
|
||||
|
|
@ -413,7 +417,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
}
|
||||
hasCupmVo.add(firstLevelBom.getRowId());
|
||||
if (firstLevelBom.getBomRowId() > 0) {
|
||||
liftingLayerDo(firstLevelBom, directDeliveryVo, preAssemblyVo, firstLevelBom.getParentRowIds());
|
||||
liftingLayerDo(firstLevelBom, directDeliveryVo, preAssemblyVo, firstLevelBom.getParentRowIds(),firstLevelBom.getParenIds());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -450,7 +454,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
protected List<BomNewEbomParentVO> getAllParent(BomNewEbomParentVO vo) {
|
||||
List<BomNewEbomParentVO> result = new ArrayList<>();
|
||||
BomNewEbomParentVO parentEnt = getParent(vo);
|
||||
|
|
@ -682,7 +686,7 @@ public abstract class FormalEBomToPbomBase {
|
|||
}
|
||||
|
||||
private BomNewEbomParentVO getParent(BomNewEbomParentVO vo) {
|
||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> vo.getParentRowIds().contains(u.getParentRowId()) && u.getBomRowId().equals(vo.getParentRowId())).collect(Collectors.toList());
|
||||
List<BomNewEbomParentVO> parents = allBomDetail.stream().filter(u -> vo.getParentRowIds().contains(u.getParentRowId()) && u.getBomRowId().equals(vo.getParentRowId()) && vo.getParenIds().contains(u.getRowId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(parents)) {
|
||||
return parents.get(0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue