diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java index 2e56294e..1560d911 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java @@ -123,7 +123,7 @@ public abstract class VirtualPackageBase { return ent; } - protected BomNewEbomParentEntity buildParentVirtualPackage(Long rowId,VirtualPackageTypeEnum virtualPackageTypeEnum) throws IOException { + protected BomNewEbomParentEntity buildParentVirtualPackage(Long rowId,VirtualPackageTypeEnum virtualPackageTypeEnum ,String orderNum) throws IOException { AddVirtrualMaterialDTO addM = vMNos.get(StrUtil.join("",rowId,virtualPackageTypeEnum.getConMaterialName())); BomNewEbomParentEntity oldParent= SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery() @@ -141,7 +141,7 @@ public abstract class VirtualPackageBase { // String materialNo = SpringUtil.getBean(MaterialService.class).addMaterial(drawingNo, vMaterialName,materialDesc, virtualPackageType.getMaterialCategoryCode()); BomNewEbomParentEntity parent =new BomNewEbomParentEntity(); parent.setRowId(IdWorker.getId()); - parent.setOrderNumber("001"); + parent.setOrderNumber(StrUtil.isNotBlank(orderNum) ? StrUtil.padPre(orderNum,3,"0"):"001"); parent.setDrawingNo(addM.getDrawingNo() ); parent.setMaterialNo(addM.getMaterialNo()); parent.setMaterialName(addM.getMaterialName()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java index 6b15d062..c7c61668 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java @@ -50,9 +50,9 @@ public class VirtualPackageFor21 extends VirtualPackageBase { BomNewEbomParentEntity makingPackage=null; if((parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.MAKING_PACKAGE.getValue())!=VirtualPackageTypeEnum.MAKING_PACKAGE.getValue()) { //构建构建发货包下制作包 - makingPackage = buildParentVirtualPackage( parent.getRowId(), VirtualPackageTypeEnum.MAKING_PACKAGE); + makingPackage = buildParentVirtualPackage( parent.getRowId(), VirtualPackageTypeEnum.MAKING_PACKAGE,parent.getOrderNumber()); //构建构建发货包下直发 - BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(parent.getRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(parent.getRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,parent.getOrderNumber()); //构建产品-子级为制作包合直发包 buildChild(makingPackage, bomRowId, "001", VirtualPackageTypeEnum.MAKING_PACKAGE,parent.getMaterialNo()); buildChild(directDeliveryPackage, bomRowId, "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,parent.getMaterialNo()); @@ -63,7 +63,7 @@ public class VirtualPackageFor21 extends VirtualPackageBase { if(Objects.isNull(makingPackage)){ makingPackage=getParentZhiZuo(); } - BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(parent.getRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); + BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(parent.getRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE,parent.getOrderNumber()); buildChild(preAssemblyPackage, makingPackage.getRowId(), "001", VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE,parent.getMaterialNo()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java index 93ff7380..31669e9e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java @@ -62,11 +62,11 @@ public class VirtualPackageFor31 extends VirtualPackageBase { BomNewEbomParentEntity makingPackage=null; if((VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue()&parent.getVirtrualPackageEnum())!=VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue()) { //构建发货包 - BomNewEbomParentEntity deliveryPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.DELIVERY_PACKAGE); + BomNewEbomParentEntity deliveryPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.DELIVERY_PACKAGE,item.getOrderNumber()); //构建构建发货包下制作包 - makingPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.MAKING_PACKAGE); + makingPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.MAKING_PACKAGE,item.getOrderNumber()); //构建构建发货包下直发 - BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,item.getOrderNumber()); //构建-产品下发货包-子级 buildChild(deliveryPackage, bomRowId, "001", VirtualPackageTypeEnum.DELIVERY_PACKAGE,parent.getMaterialNo()); @@ -82,7 +82,7 @@ public class VirtualPackageFor31 extends VirtualPackageBase { } // 包含发货前装配包 if (virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue() & parent.getVirtrualPackageEnum()) != VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) { - BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); + BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(item.getRowId(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE,item.getOrderNumber()); //构建构建发货前装配包 if(Objects.isNull(makingPackage)){ makingPackage=getParentZhiZuo(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom1020.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom1020.java index b8004c7a..86c0b796 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom1020.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom1020.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service.domain.PBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.ProductionFactoryCodeInputTypeEnum; import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum; @@ -121,12 +122,12 @@ public class ConvertToMBom1020 extends ConvertToMBomBase{ private void initFac1020Info(List childBomTree) { for (ConvertToMBomDTO item : childBomTree) { - item.setMaterialName(item.getMaterialName() + EBomConstant.XIAN_TAO_FACTORY_Name_1020); + item.setMaterialName(handlerMaterialNameFor1020(item.getMaterialName(), EBomConstant.XIAN_TAO_FACTORY_Name_1020) ); item.setProductionFactoryCode(EBomConstant.XIAN_TAO_FACTORY_CODE_1020); item.setProductionFactoryCodeInputType(ProductionFactoryCodeInputTypeEnum.DEFAULT.getValue()); for (ConvertToMBomDTO itemChild : item.getChildNodes()) { - itemChild.setMaterialName(itemChild.getMaterialName() + EBomConstant.XIAN_TAO_FACTORY_Name_1020); + itemChild.setMaterialName(handlerMaterialNameFor1020(itemChild.getMaterialName(), EBomConstant.XIAN_TAO_FACTORY_Name_1020) ); itemChild.setProductionFactoryCode(EBomConstant.XIAN_TAO_FACTORY_CODE_1020); itemChild.setProductionFactoryCodeInputType(ProductionFactoryCodeInputTypeEnum.DEFAULT.getValue()); @@ -134,6 +135,17 @@ public class ConvertToMBom1020 extends ConvertToMBomBase{ } } + private String handlerMaterialNameFor1020(String materialName , String facName){ + List nameComp = VUtils.extractMessageByRegular(materialName); + if(CollUtil.isNotEmpty(nameComp) && nameComp.size()>=3){ + return StrUtil.join("","(", nameComp.get(0) ,")", "(", nameComp.get(1), facName,")", "(",nameComp.get(2), ")" ); + } + return materialName+facName; + + } + + + /** * 处理一般材料(提层) * diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java index b6e9c6bd..62f168f6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/VUtils.java @@ -7,7 +7,10 @@ import com.nflg.product.bomnew.inteface.ThrowExceptionFunction; import com.nflg.product.bomnew.inteface.TrueHandleFunction; import nflg.product.common.constant.STATE; +import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author 大米 @@ -69,4 +72,21 @@ public class VUtils { } + + /** + * 使用正则表达式提取圆括号中的内容 + * @param msg 输入的包含括号内容的字符串 + * @return 包含所有括号内内容的列表 + */ + public static List extractMessageByRegular(String msg) { + List list = new ArrayList<>(); + // 使用正则表达式匹配任意非括号字符组成的括号内的内容 + Pattern pattern = Pattern.compile("\\(([^()]*)\\)"); + Matcher matcher = pattern.matcher(msg); + + while (matcher.find()) { + list.add(matcher.group(1)); // group(1) 是第一个括号表达式匹配的内容 + } + return list; + } }