1、虚拟包名称问题
This commit is contained in:
parent
ffcf1d6991
commit
b17a146c93
|
|
@ -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<ConvertToMBomDTO> 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<String> 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 处理一般材料(提层)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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<String> extractMessageByRegular(String msg) {
|
||||
List<String> list = new ArrayList<>();
|
||||
// 使用正则表达式匹配任意非括号字符组成的括号内的内容
|
||||
Pattern pattern = Pattern.compile("\\(([^()]*)\\)");
|
||||
Matcher matcher = pattern.matcher(msg);
|
||||
|
||||
while (matcher.find()) {
|
||||
list.add(matcher.group(1)); // group(1) 是第一个括号表达式匹配的内容
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue