1、从CAD获取EBOM,原材料匹配规则优化;

2、EBOM编辑,异常状态为正常,原材料物料允许修改
This commit is contained in:
10001392 2024-10-14 15:37:23 +08:00
parent d5ce236a0c
commit 8cf75a32e7
2 changed files with 13 additions and 7 deletions

View File

@ -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<String> namePatternItems = StrUtil.split(namePattern,'/');
@ -40,14 +40,17 @@ public class MaterialMateCache {
}
}
Set<Boolean> booleanSet = new HashSet<>();
if(StrUtil.isNotBlank(mate.getMaterialTexture())) {
texturePatternRel = mate.getMaterialTexture().replace('/', '|');
List<String> 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;
}
}

View File

@ -313,7 +313,10 @@ public class EBomEdit {
if (ObjectUtil.isNull(childEntity.getMaterialNo())) {
continue;
}
// 忽略分类代码是原材料的
if (ObjectUtil.isNotEmpty(childEntity.getMaterialCategoryCode()) && childEntity.getMaterialCategoryCode().startsWith("1001")) {
continue;
}
//检查物料id是否被修改根据情况还可加入其他条件
if (!mapList.get(childEntity.getRowId()).getMaterialNo().equals(childEntity.getMaterialNo())) {
throw new NflgBusinessException(STATE.Error, StrUtil.format("从原始Bom导入的数据数据没有异常的情况下{} 不可以修改 ", childEntity.getMaterialNo()));