From 53a39c3a251f6071b57ba84bc03fda4665e0235d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 13 Apr 2024 12:01:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E2=80=9C=E4=BB=99?= =?UTF-8?q?=E6=A1=83=E2=80=9D=E7=9A=84=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/PBom/ConvertToMBom1020.java | 19 ++++++++----- .../nflg/product/bomnew/util/StringUtil.java | 13 +++++++++ .../service/test/MaterialServiceTest.java | 9 ------- .../bomnew/service/test/OtherTest.java | 27 +++++++++++++++++++ 4 files changed, 52 insertions(+), 16 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 86c0b796..16661f15 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 @@ -1,7 +1,6 @@ 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; @@ -9,7 +8,7 @@ import com.nflg.product.bomnew.constant.ProductionFactoryCodeInputTypeEnum; import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum; import com.nflg.product.bomnew.pojo.entity.BomNewMbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; -import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; +import com.nflg.product.bomnew.util.StringUtil; import com.nflg.product.bomnew.util.VUtils; import java.util.ArrayList; @@ -136,12 +135,18 @@ 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), ")" ); + // 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; + if (StringUtil.countOfChar(materialName, '(') >= 3) { + int start = materialName.indexOf(")"); + int end = materialName.lastIndexOf("("); + String name = materialName.substring(start + 2, end - 1); + return StrUtil.format("{}({}{}){}", materialName.substring(0, start + 1), name, facName, materialName.substring(end)); } - return materialName+facName; - + return materialName + facName; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java index e477ef0f..660c759a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java @@ -1,5 +1,7 @@ package com.nflg.product.bomnew.util; +import org.apache.commons.lang3.StringUtils; + /** * @author 曹鹏飞 * @date 2024-03-29 16:52:05 @@ -104,4 +106,15 @@ public class StringUtil { || block == Character.UnicodeBlock.GENERAL_PUNCTUATION || block == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS; } + + public static int countOfChar(String str, char ch) { + if (StringUtils.isBlank(str)) return 0; + int count = 0; + for (int i = 0; i < str.length(); i++) { + if (str.charAt(i) == ch) { + count++; + } + } + return count; + } } diff --git a/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/MaterialServiceTest.java b/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/MaterialServiceTest.java index 329d1da6..30362388 100644 --- a/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/MaterialServiceTest.java +++ b/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/MaterialServiceTest.java @@ -1,20 +1,12 @@ package com.nflg.product.bomnew.service.test; -import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; -import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; -import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; -import com.nflg.product.base.core.exception.NflgBusinessException; -import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; -import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigAggregVO; import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.MaterialService; -import jdk.nashorn.internal.ir.annotations.Immutable; -import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,7 +14,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; -import java.io.IOException; import java.util.List; @RunWith(SpringRunner.class) diff --git a/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/OtherTest.java b/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/OtherTest.java index 32fa9578..82f03187 100644 --- a/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/OtherTest.java +++ b/nflg_project_dev/nflg-bom-new/src/test/java/com/nflg/product/bomnew/service/test/OtherTest.java @@ -1,5 +1,6 @@ package com.nflg.product.bomnew.service.test; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.nflg.product.bomnew.constant.EBomStatusEnum; @@ -75,4 +76,30 @@ public class OtherTest { String data2=""; Assert.assertEquals(data2,StringUtil.trimText(data1,0)); } + + @Test + public void test10() { + String data1 = "(2FBJ9000A2.0)(FJD4500MT搅拌系统(普通))(发货)"; + String str1 = data1.substring(data1.indexOf(")") + 2, data1.lastIndexOf("(") - 1); + String data2 = "FJD4500MT搅拌系统(普通)"; + Assert.assertEquals(data2, str1); + } + + @Test + public void test11() { + String data1 = "(2FBJ9000A2.0)(FJD4500MT搅拌系统普通)(发货)"; + String str1 = data1.substring(data1.indexOf(")") + 2, data1.lastIndexOf("(") - 1); + String data2 = "FJD4500MT搅拌系统普通"; + Assert.assertEquals(data2, str1); + } + + @Test + public void test12() { + String data1 = "(2FBJ9000A2.0)(FJD4500MT系统(普通))(发货)"; + int start = data1.indexOf(")"); + int end = data1.lastIndexOf("("); + String str1 = data1.substring(start + 2, end - 1); + String data2 = "(2FBJ9000A2.0)(FJD4500MT系统(普通)仙桃)(发货)"; + Assert.assertEquals(data2, StrUtil.format("{}({}{}){}", data1.substring(0, start + 1), str1, "仙桃", data1.substring(end))); + } }