diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/cache/MaterialMateCache.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/cache/MaterialMateCache.java index 7d55d1cb..cbbc4721 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/cache/MaterialMateCache.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/cache/MaterialMateCache.java @@ -4,9 +4,10 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.nflg.product.bomnew.pojo.vo.MaterialMateVO; import com.nflg.product.bomnew.service.MaterialMainService; -import org.apache.commons.lang.StringUtils; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.regex.Pattern; public class MaterialMateCache { @@ -23,7 +24,6 @@ public class MaterialMateCache { public MaterialMateVO findMaterialByNameOrmaterialTexture(String materialName, String materialTexture){ for (MaterialMateVO mate : materialMateList) { StringBuilder namePatternRel= new StringBuilder(); - String texturePatternRel= ""; String namePattern=mate.getMaterialName(); List namePatternItems = StrUtil.split(namePattern,'/'); @@ -40,14 +40,17 @@ public class MaterialMateCache { } } + Set booleanSet = new HashSet<>(); if(StrUtil.isNotBlank(mate.getMaterialTexture())) { - texturePatternRel = mate.getMaterialTexture().replace('/', '|'); + List texturePatternItems = StrUtil.split(mate.getMaterialTexture(), '/'); + for (String texturePatternItem: texturePatternItems) { + // 材质应该是等于其中一个,而不是包含其中一个 modify by 10001392 + booleanSet.add(texturePatternItem.equals(StrUtil.isBlank(materialTexture)?"":materialTexture)); + } } - Pattern p = Pattern.compile(namePatternRel.toString()); - Pattern p2 = Pattern.compile(texturePatternRel); - if(p.matcher(materialName).find() && p2.matcher(StrUtil.isBlank(materialTexture)?"":materialTexture ).find()){ + if(p.matcher(materialName).find() && booleanSet.contains(Boolean.TRUE)){ return mate; } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java index 64569519..1bff6eb8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomEdit.java @@ -314,6 +314,11 @@ public class EBomEdit { continue; } + // 忽略分类代码是原材料的 + List materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(Collections.singletonList(childEntity.getMaterialNo())); + if (CollUtil.isNotEmpty(materialBaseInfos) && materialBaseInfos.get(0).getMaterialCategoryCode().startsWith("1001")) { + continue; + } //检查物料id是否被修改,根据情况还可加入其他条件 if (!mapList.get(childEntity.getRowId()).getMaterialNo().equals(childEntity.getMaterialNo())) { throw new NflgBusinessException(STATE.Error, StrUtil.format("从原始Bom导入的数据,数据没有异常的情况下,{} 不可以修改 ", childEntity.getMaterialNo()));