From b17a146c93e5dcd2a4cb298348f8a112ecf674da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 28 Mar 2024 19:26:02 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=99=9A=E6=8B=9F=E5=8C=85=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/PBom/ConvertToMBom1020.java | 16 +++++++++++++-- .../com/nflg/product/bomnew/util/VUtils.java | 20 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) 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; + } }