diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index a38ba16b..b117b057 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -335,7 +335,7 @@ public class BomNewEbomParentService extends ServiceImpl parentChild = this.getBaseMapper().getParentChild(rowId); //排除项目类别的赋值 - materialMainService.intiMaterialInfoInPattern(parentChild, "^21 | ^31", EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + materialMainService.intiMaterialInfoInPattern(parentChild, "^21 | ^31", EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); if (CollUtil.isNotEmpty(parentChild)) { List materialNos = parentChild.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { @@ -838,11 +838,22 @@ public class BomNewEbomParentService extends ServiceImpl parents = this.getBaseMapper().selectBatchIds(paramDto.getBomRowIds()); - VUtils.isTure(paramDto.getFacCodes().contains("1020") && parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31"))) - .throwMessage("31码不能生成仙桃(1020)的pbom"); + // VUtils.isTure(paramDto.getFacCodes().contains("1020") && parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31"))) + // .throwMessage("31码不能生成仙桃(1020)的pbom"); - VUtils.isTure(parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31") && u.getVirtrualPackageEnum() <= 0)) - .throwMessage("31码须有虚拟包"); + // VUtils.isTure(parents.stream().anyMatch(u -> u.getMaterialNo().startsWith("31") && u.getVirtrualPackageEnum() <= 0)) + // .throwMessage("31码须有虚拟包"); + parents.forEach(p -> { + if (p.getMaterialNo().startsWith("31")) { + List errors = new ArrayList<>(); + if (ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, p.getRowId()) + .eq(BomNewEbomChildEntity::getVirtualPartType, VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue()) + .exists()) { + errors.add(p.getMaterialNo() + "下还有未生成发货包的物料"); + } + VUtils.isTure(CollUtil.isNotEmpty(errors)).throwMessage(StrUtil.join("
", errors)); + } + }); //检查该版本是否已转换过该工厂的Pbom for (BomNewEbomParentEntity parent : parents){ List list = pBomParentService.lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()).eq(BomNewPbomParentEntity::getCurrentVersion, parent.getCurrentVersion()) @@ -864,7 +875,9 @@ public class BomNewEbomParentService extends ServiceImpl parent.getStatus(), BomNewPbomParentEntity::getLastVersionIs, 1) - .gt(PBomStatusEnum.PUBLISH.getValue() <= parent.getStatus(), BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .ge(PBomStatusEnum.PUBLISH.getValue() <= parent.getStatus(), BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) .list(); Map bomListMap= list.parallelStream() 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 ffe325ea..66bca524 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 @@ -3,10 +3,7 @@ package com.nflg.product.bomnew.service.domain.EBom; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.*; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -198,7 +195,7 @@ public class EBomEdit { EBomEdit.checkVirtualPackage(child); //新增数据 - if (child.getRowId() == null || child.getRowId().longValue() == 0) { + if (child.getRowId() == null || child.getRowId() == 0) { child.setRowId(IdWorker.getId()); child.setIdentityNo(StrUtil.join("_", parentEntity.getRowId(), child.getRowId())); child.setSource(source); @@ -207,7 +204,7 @@ public class EBomEdit { child.setSourceRowId(""); child.setParentRowId(parentEntity.getRowId()); if(StrUtil.isEmpty(child.getOrderNumber())){ - child.setOrderNumber("00"); + child.setOrderNumber("001"); } if (dto.getOpType() == 2) { child.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); @@ -218,6 +215,9 @@ public class EBomEdit { child.setProjectType(child.getProjectType().toUpperCase()); } if (StrUtil.equals(BomConstant.PROJECT_TYPE_TEMPORARY, child.getProjectType(), true)) { + String id = RandomUtil.randomNumbers(9); + child.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); + child.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY + id); if (StrUtil.isBlank(child.getMaterialUnit())) { child.setMaterialUnit("PC"); } @@ -228,6 +228,9 @@ public class EBomEdit { child.setNum(BigDecimal.ONE); } } + if (parentEntity.getMaterialNo().startsWith("31")) { + child.setVirtualPartRootMaterialNo(parentEntity.getMaterialNo()); + } }