仙桃不导入1010工厂

This commit is contained in:
大米 2024-08-30 11:00:48 +08:00
parent 3f6cde7e7a
commit 48d3a83e89
2 changed files with 95 additions and 9 deletions

View File

@ -7,6 +7,7 @@ import com.alibaba.excel.enums.BooleanEnum;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.bomnew.constant.ConvertToPBomModelEnum;
import com.nflg.product.bomnew.constant.EBomConstant;
import com.nflg.product.bomnew.constant.PBomStatusEnum;
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
@ -16,9 +17,7 @@ import com.nflg.product.bomnew.util.ListCommonUtil;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -27,6 +26,7 @@ import java.util.stream.Collectors;
@NoArgsConstructor
public class EBomToPBom extends EBomToPbomBase {
private Map<String, List<BomNewEbomParentVO>> facBomDataMp = new HashMap<>();
@ -39,6 +39,39 @@ public class EBomToPBom extends EBomToPbomBase {
initEBomVersion();
}
private void splitData() {
this.facCodes = new ArrayList<>();
//1020数据
List<BomNewEbomParentVO> data1020 = new ArrayList<>();
List<BomNewEbomParentVO> deliveryPackage1020 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId()) && u.getMaterialName().contains("仙桃")).collect(Collectors.toList());
if (CollUtil.isNotEmpty(deliveryPackage1020)) {
facCodes.add(EBomConstant.XIAN_TAO_FACTORY_CODE_1020);
data1020.add(parent);
for (BomNewEbomParentVO data : deliveryPackage1020) {
List<BomNewEbomParentVO> subVos = getResultAllSubIncludeSelf(data);
data1020.addAll(subVos);
}
facBomDataMp.put(EBomConstant.XIAN_TAO_FACTORY_CODE_1020, data1020);
}
//1010 数据
List<BomNewEbomParentVO> data1010 = new ArrayList<>();
List<BomNewEbomParentVO> deliveryPackage1010 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList()); //&& !u.getMaterialName().contains("仙桃")
if (CollUtil.isNotEmpty(deliveryPackage1010)) {
facCodes.add(EBomConstant.MAIN_FACTORY_CODE_1010);
data1010.add(parent);
for (BomNewEbomParentVO data : deliveryPackage1010) {
List<BomNewEbomParentVO> subVos = new ArrayList<>();
if (!data.getMaterialName().contains("仙桃") ) { //只获取下降虚拟包(排除仙桃油漆包)
subVos=getResultAllSubIncludeSelf(data);
}
data1010.addAll(subVos);
}
facBomDataMp.put(EBomConstant.MAIN_FACTORY_CODE_1010, data1010);
}
}
/**
* 31項体层
@ -53,11 +86,20 @@ public class EBomToPBom extends EBomToPbomBase {
changeImpact();
//bom 提层
liftingLayer();
List<BomNewEbomParentVO> parentList = ListCommonUtil.toDistinct(result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
splitData();
List<String> hasConvert = new ArrayList<>();
for (String facCode : facCodes) {
//buildPBomParent(parent, facCode);
//仙桃的不发1010工厂
if(EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode) && parent.getMaterialName().contains("仙桃") ){
continue;
}
List<BomNewEbomParentVO> parentList = ListCommonUtil.toDistinct(result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
if(EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode)){
parentList = ListCommonUtil.toDistinct(facBomDataMp.get(facCode).stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
}
for (BomNewEbomParentVO vo : parentList) {
String hasConvertKey = StrUtil.join("-", facCode, vo.getBomRowId());
if (hasConvert.contains(hasConvertKey)) {

View File

@ -8,6 +8,7 @@ import com.alibaba.excel.enums.BooleanEnum;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.bomnew.constant.ConvertToPBomModelEnum;
import com.nflg.product.bomnew.constant.EBomConstant;
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
import com.nflg.product.bomnew.mapper.master.BomNewPbomParentMapper;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
@ -18,9 +19,7 @@ import com.nflg.product.bomnew.util.ListCommonUtil;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -30,6 +29,7 @@ import java.util.stream.Collectors;
public class EBomToPBomForFormalNew extends FormalEBomToPbomBase {
private Map<String, List<BomNewEbomParentVO>> facBomDataMp = new HashMap<>();
public EBomToPBomForFormalNew(BomNewEbomParentVO inParent, List<BomNewEbomParentVO> inAllBomDetail, List<String> inFacCodes, Long parentRowId, ConvertToPBomModelEnum convertModelEnum) {
@ -42,6 +42,39 @@ public class EBomToPBomForFormalNew extends FormalEBomToPbomBase {
}
private void splitData() {
this.facCodes = new ArrayList<>();
//1020数据
List<BomNewEbomParentVO> data1020 = new ArrayList<>();
List<BomNewEbomParentVO> deliveryPackage1020 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId()) && u.getMaterialName().contains("仙桃")).collect(Collectors.toList());
if (CollUtil.isNotEmpty(deliveryPackage1020)) {
facCodes.add(EBomConstant.XIAN_TAO_FACTORY_CODE_1020);
data1020.add(parent);
for (BomNewEbomParentVO data : deliveryPackage1020) {
List<BomNewEbomParentVO> subVos = getResultAllSubIncludeSelf(data);
data1020.addAll(subVos);
}
facBomDataMp.put(EBomConstant.XIAN_TAO_FACTORY_CODE_1020, data1020);
}
//1010 数据
List<BomNewEbomParentVO> data1010 = new ArrayList<>();
List<BomNewEbomParentVO> deliveryPackage1010 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId())).collect(Collectors.toList()); //&& !u.getMaterialName().contains("仙桃")
if (CollUtil.isNotEmpty(deliveryPackage1010)) {
facCodes.add(EBomConstant.MAIN_FACTORY_CODE_1010);
data1010.add(parent);
for (BomNewEbomParentVO data : deliveryPackage1010) {
List<BomNewEbomParentVO> subVos = new ArrayList<>();
if (!data.getMaterialName().contains("仙桃") ) { //只获取下降虚拟包(排除仙桃油漆包)
subVos=getResultAllSubIncludeSelf(data);
}
data1010.addAll(subVos);
}
facBomDataMp.put(EBomConstant.MAIN_FACTORY_CODE_1010, data1010);
}
}
/**
* 31項体层
@ -53,10 +86,21 @@ public class EBomToPBomForFormalNew extends FormalEBomToPbomBase {
check();
//bom 提层
liftingLayer();
List<BomNewEbomParentVO> parentList = ListCommonUtil.toDistinct(result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
splitData();
List<String> hasConvert = new ArrayList<>();
for (String facCode : facCodes) {
//仙桃的不发1010工厂
if(EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode) && parent.getMaterialName().contains("仙桃") ){
continue;
}
List<BomNewEbomParentVO> parentList = ListCommonUtil.toDistinct(result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
if(EBomConstant.MAIN_FACTORY_CODE_1010.equals(facCode)){
parentList = ListCommonUtil.toDistinct(facBomDataMp.get(facCode).stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()), BomNewEbomParentVO::getBomRowId);
}
//buildPBomParent(parent, facCode);
for (BomNewEbomParentVO vo : parentList) {
String hasConvertKey = StrUtil.join("-", facCode, vo.getBomRowId());