Browse Source

2026-08-21

新增技术参数卡和BOM子物料时校验必须维护”编码“;
master
fengyuan_yang 4 weeks ago
parent
commit
23a58e3a8a
  1. 15
      src/main/java/com/spring/modules/part/service/impl/BomManagementServiceImpl.java
  2. 15
      src/main/java/com/spring/modules/part/service/impl/RecipeManagementServiceImpl.java

15
src/main/java/com/spring/modules/part/service/impl/BomManagementServiceImpl.java

@ -674,6 +674,7 @@ public class BomManagementServiceImpl extends ServiceImpl<BomManagementMapper, B
if (partInformationEntity == null) {
throw new RuntimeException("子物料不存在!");
}
validateDrawingNoForNewFormalPart(partInformationEntity, data.getComponentPart());
data.setPrintUnit(partInformationEntity.getUmId());
autoFillWidthByComponentPart(data);
// // 校验工序
@ -1823,6 +1824,20 @@ public class BomManagementServiceImpl extends ServiceImpl<BomManagementMapper, B
}
}
private void validateDrawingNoForNewFormalPart(PartInformationEntity partInformationEntity, String componentPart) {
if (partInformationEntity == null) {
return;
}
if (!"Y".equalsIgnoreCase(StringUtils.trimToEmpty(partInformationEntity.getStatus()))) {
// 临时物料不校验编码
return;
}
String drawingNo = StringUtils.trimToEmpty(partInformationEntity.getDrawingNo());
if (StringUtils.isBlank(drawingNo) || "NA".equalsIgnoreCase(drawingNo)) {
throw new RuntimeException("子物料【" + componentPart + "】未维护编码,不能新增!");
}
}
private void autoFillWidthByComponentPart(BomComponentEntity data) {
if (data == null || data.getWidth() != null || StringUtils.isBlank(data.getComponentPart())) {
return;

15
src/main/java/com/spring/modules/part/service/impl/RecipeManagementServiceImpl.java

@ -734,6 +734,7 @@ public class RecipeManagementServiceImpl extends ServiceImpl<RecipeManagementMap
if (partInformationEntity == null) {
throw new RuntimeException("子物料不存在!");
}
validateDrawingNoForNewFormalPart(partInformationEntity, data.getComponentPart());
// 检验 weightShare 总和是否大于100
List<RecipeComponentVo> componentList = recipeManagementMapper.queryRecipeComponentList(data.getSite(), data.getPartNo(), data.getBomType(), data.getEngChgLevel(), data.getAlternativeNo());
BigDecimal sum = componentList.stream().map(RecipeComponentEntity::getWeightShare).reduce(BigDecimal.ZERO, BigDecimal::add);
@ -1482,4 +1483,18 @@ public class RecipeManagementServiceImpl extends ServiceImpl<RecipeManagementMap
map.put("detailData", recipeAlternative);
return map;
}
private void validateDrawingNoForNewFormalPart(PartInformationEntity partInformationEntity, String componentPart) {
if (partInformationEntity == null) {
return;
}
if (!"Y".equalsIgnoreCase(StringUtils.trimToEmpty(partInformationEntity.getStatus()))) {
// 临时物料不校验编码
return;
}
String drawingNo = StringUtils.trimToEmpty(partInformationEntity.getDrawingNo());
if (StringUtils.isBlank(drawingNo) || "NA".equalsIgnoreCase(drawingNo)) {
throw new RuntimeException("子物料【" + componentPart + "】未维护编码,不能新增!");
}
}
}
Loading…
Cancel
Save