diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesMaterialBomServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesMaterialBomServiceImpl.java index e438bf83..026780ec 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesMaterialBomServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesMaterialBomServiceImpl.java @@ -88,6 +88,13 @@ public class MesMaterialBomServiceImpl implements IMesMaterialBomService @Override public int deleteMesMaterialBomByMaterialBomIds(Long[] materialBomIds) { + //遍历删除子集物料BOM + MesMaterialBom materialBom = new MesMaterialBom(); + materialBom.setAncestors(String.valueOf(materialBomIds[0])); + List materialBomList = mesMaterialBomMapper.selectMesMaterialBomList(materialBom); + for (MesMaterialBom bom : materialBomList) { + mesMaterialBomMapper.deleteMesMaterialBomByMaterialBomId(bom.getMaterialBomId()); + } return mesMaterialBomMapper.deleteMesMaterialBomByMaterialBomIds(materialBomIds); } @@ -144,7 +151,7 @@ public class MesMaterialBomServiceImpl implements IMesMaterialBomService * @return */ public MesMaterialBom recursionSelectTopMaterialBom(MesMaterialBom mesMaterialBom) { - if (mesMaterialBom.getTopFlag() == 1L){ + if (StringUtils.isNull(mesMaterialBom) || mesMaterialBom.getTopFlag() == 1L){ //返回顶级BOM信息 return mesMaterialBom; } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductOrderServiceImpl.java index 9e11f73c..5e151843 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductOrderServiceImpl.java @@ -201,6 +201,9 @@ public class MesProductOrderServiceImpl implements IMesProductOrderService { public Boolean verifyBOMIsProduction(Long materialBomId) { //查询顶级BOM MesMaterialBom mesMaterialBom = mesMaterialBomService.selectTopMaterialBomByMaterialBomId(materialBomId); + if (StringUtils.isNull(mesMaterialBom)){ + return false; + } //通过顶级BOM主键查询生产工单 MesProductOrder mesProductOrder = new MesProductOrder(); mesProductOrder.setMaterialBomId(mesMaterialBom.getMaterialBomId()); diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialBomMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialBomMapper.xml index 1da6bd3f..335a49c8 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialBomMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesMaterialBomMapper.xml @@ -50,7 +50,7 @@ and parent_id = #{parentId} - and ancestors = #{ancestors} + and ancestors like concat('%', #{ancestors},'%') and material_id = #{materialId} and material_name like concat('%', #{materialName}, '%') diff --git a/hw-ui/src/views/mes/materialBom/index.vue b/hw-ui/src/views/mes/materialBom/index.vue index cb5ca44c..eee19355 100644 --- a/hw-ui/src/views/mes/materialBom/index.vue +++ b/hw-ui/src/views/mes/materialBom/index.vue @@ -391,9 +391,6 @@ export default { } //BOM说明,顶级不能为空,在选择bom时可以用此字段区分 this.rules.materialBomDesc[0].required = this.form.parentId === 0; - this.open = true; - this.title = "添加物料BOM信息"; - }).catch((e) => { this.$modal.msgError("该物料BOM已被生产工单选择,无法新增!"); return; @@ -401,6 +398,8 @@ export default { } else { this.form.parentId = 0; } + this.open = true; + this.title = "添加物料BOM信息"; }, /** 新增按钮操作 */ handleMaterialAdd() {