1、发货文案匹配问题

This commit is contained in:
大米 2024-05-28 20:45:53 +08:00
parent 0f25a80253
commit e90c7c2818
4 changed files with 20 additions and 20 deletions

View File

@ -9,18 +9,18 @@ import lombok.Getter;
public enum VirtualPackageTypeEnum implements ValueEnum<Integer>{
//1-发货包 2-制作包 4-直发包 8-发货前装配包
UN_VIRTUAL_PACKAGE(0,"非虚拟包","" ,"", "",""),
DELIVERY_PACKAGE(1,"发货包","发货" ,"201101", "","(发货)"),
MAKING_PACKAGE(2,"制作包","制作","201101","","(制作)"),
DIRECT_DELIVERY_PACKAGE(4,"直发包","直发","201101","F","(直发)"),
PRE_ASSEMBLY_PACKAGE(8,"发货前装配包","发货前装配","200601","Z","(发货前装配)");
UN_VIRTUAL_PACKAGE(0,"非虚拟包","" ,"", "",0),
DELIVERY_PACKAGE(1,"发货包","发货" ,"201101", "",1),
MAKING_PACKAGE(2,"制作包","制作","201101","",2),
DIRECT_DELIVERY_PACKAGE(4,"直发包","直发","201101","F",4),
PRE_ASSEMBLY_PACKAGE(8,"发货前装配包","发货前装配","200601","Z",8);
private final Integer value;
private final String description;
private final String conMaterialName;
private final String materialCategoryCode;
private final String productTypeKey;
private final String findConMaterialName;
private final Integer virtualPartType;
public static Integer getAll(){

View File

@ -859,15 +859,15 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
}
});
//检查该版本是否已转换过该工厂的Pbom
for (BomNewEbomParentEntity parent : parents){
List<BomNewPbomParentEntity> list = pBomParentService.lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()).eq(BomNewPbomParentEntity::getCurrentVersion, parent.getCurrentVersion())
.select(BomNewPbomParentEntity::getFacCode).list();
if(CollUtil.isNotEmpty(list)){
Set<String> dbExistsFac = list.stream().map(u -> u.getFacCode()).collect(Collectors.toSet());
Set<String> checkResultFac = Sets.intersection(dbExistsFac, new HashSet<>(paramDto.getFacCodes()));
VUtils.isTure(CollUtil.isNotEmpty(checkResultFac)).throwMessage("物料:"+parent.getMaterialNo()+"已经转换过"+ StrUtil.join(",", checkResultFac)+"工厂");
}
}
// for (BomNewEbomParentEntity parent : parents){
// List<BomNewPbomParentEntity> list = pBomParentService.lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()).eq(BomNewPbomParentEntity::getCurrentVersion, parent.getCurrentVersion())
// .select(BomNewPbomParentEntity::getFacCode).list();
// if(CollUtil.isNotEmpty(list)){
// Set<String> dbExistsFac = list.stream().map(u -> u.getFacCode()).collect(Collectors.toSet());
// Set<String> checkResultFac = Sets.intersection(dbExistsFac, new HashSet<>(paramDto.getFacCodes()));
// VUtils.isTure(CollUtil.isNotEmpty(checkResultFac)).throwMessage("物料:"+parent.getMaterialNo()+"已经转换过"+ StrUtil.join(",", checkResultFac)+"工厂");
// }
// }
for (Long bomRowId : paramDto.getBomRowIds()) {
BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId));

View File

@ -44,7 +44,7 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
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("仙桃") && u.getMaterialName().contains("(发货)")).collect(Collectors.toList());
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);
@ -58,7 +58,7 @@ public class EBomToPBomFor31 extends EBomToPbomBase {
//1010 数据
List<BomNewEbomParentVO> data1010=new ArrayList<>();
List<BomNewEbomParentVO> deliveryPackage1010 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId()) && !u.getMaterialName().contains("仙桃") && u.getMaterialName().contains("(发货)")).collect(Collectors.toList());
List<BomNewEbomParentVO> deliveryPackage1010 = result.stream().filter(u -> u.getParentRowId().equals(parent.getRowId()) && !u.getMaterialName().contains("仙桃")).collect(Collectors.toList());
if(CollUtil.isNotEmpty(deliveryPackage1010)){
facCodes.add(EBomConstant.MAIN_FACTORY_CODE_1010);
data1010.add(parent);

View File

@ -349,7 +349,7 @@ public abstract class EBomToPbomBase {
private BomNewEbomParentVO getLastVirtualPackage(BomNewEbomParentVO vo, VirtualPackageTypeEnum virtualPackageTypeEnum) {
List<BomNewEbomParentVO> zhiFaList = allBomDetail.stream().filter(u -> vo.getLevelNumber().compareTo(u.getLevelNumber()) > 0 && u.getMaterialName().contains(virtualPackageTypeEnum.getConMaterialName())).collect(Collectors.toList());
List<BomNewEbomParentVO> zhiFaList = allBomDetail.stream().filter(u -> vo.getLevelNumber().compareTo(u.getLevelNumber()) > 0 && virtualPackageTypeEnum.getVirtualPartType().equals(u.getVirtualPartType())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(zhiFaList)) {
return Collections.max(zhiFaList, Comparator.comparing(BomNewEbomParentVO::getLevelNumber));
}
@ -359,7 +359,7 @@ public abstract class EBomToPbomBase {
private BomNewEbomParentVO getVirtualPackageByName(VirtualPackageTypeEnum virtualPackageTypeEnum) {
List<BomNewEbomParentVO> list = allBomDetail.stream().filter(u -> u.getMaterialName().contains(virtualPackageTypeEnum.getConMaterialName())).collect(Collectors.toList());
List<BomNewEbomParentVO> list = allBomDetail.stream().filter(u -> u.getLevelNumber().compareTo(u.getLevelNumber()) > 0 && virtualPackageTypeEnum.getVirtualPartType().equals(u.getVirtualPartType())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(list)) {
return list.get(0);
}
@ -383,7 +383,7 @@ public abstract class EBomToPbomBase {
String preAssemblyPackageLevelNo = StrUtil.isNotBlank(parentDrawingNoRe) ? StrUtil.join("-", parentDrawingNoRe, "1") : "1";
for (BomNewEbomParentVO firstLevelBom : firstLevelBoms) {
if (firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getFindConMaterialName()) || firstLevelBom.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getFindConMaterialName())) {
if (VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getVirtualPartType().equals(firstLevelBom.getVirtualPartType()) || VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getVirtualPartType().equals(firstLevelBom.getVirtualPartType())) {
firstLevelBom.setLevelNumber(levelToNum(preAssemblyPackageLevelNo));
firstLevelBom.setLevelNo(preAssemblyPackageLevelNo);
continue;