From a01778112d86acfadd7001e034b7d1ca93dd05f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 18 Apr 2024 18:53:59 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81ebom-=E8=BD=ACpBOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/BomNewEbomParentService.java | 16 ++++++++++++---- .../bomnew/service/domain/EBom/EBomToPBom.java | 3 ++- 2 files changed, 14 insertions(+), 5 deletions(-) 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 71c112ea..94dde9c3 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 @@ -23,10 +23,7 @@ import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper; import com.nflg.product.bomnew.pojo.dto.*; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomMaterialUseEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; +import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.vo.*; @@ -47,6 +44,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.math.BigDecimal; +import java.sql.Struct; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ExecutionException; @@ -836,6 +834,16 @@ public class BomNewEbomParentService extends ServiceImpl u.getMaterialNo().startsWith("31") && u.getVirtrualPackageEnum() <= 0)) .throwMessage("31码须有虚拟包"); + //检查该版本是否已转换过该工厂的Pbom + for (BomNewEbomParentEntity parent : parents){ + List list = pBomParentService.lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parent.getMaterialNo()).eq(BomNewPbomParentEntity::getCurrentVersion, parent.getCurrentVersion()) + .select(BomNewPbomParentEntity::getFacCode).list(); + if(CollUtil.isNotEmpty(list)){ + Set dbExistsFac = list.stream().map(u -> u.getFacCode()).collect(Collectors.toSet()); + Set checkResultFac = Sets.intersection(dbExistsFac, new HashSet<>(paramDto.getFacCodes())); + VUtils.isTure(CollUtil.isNotEmpty(checkResultFac)).throwMessage("物料:"+parent.getMaterialNo()+"已经转换过"+ StrUtil.join(",", checkResultFac)+"工厂"); + } + } for (Long bomRowId : paramDto.getBomRowIds()) { BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId)); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java index af7c633b..9af8e09b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPBom.java @@ -86,7 +86,7 @@ public class EBomToPBom { //buildPBomParent(parent, facCode); for (BomNewEbomParentVO vo : parentList) { String hasConvertKey=StrUtil.join("-",facCode,vo.getBomRowId()); - if(hasConvert.contains(hasConvertKey)){ + if(hasConvert.contains(hasConvertKey) || PBomStatusEnum.PUBLISH.equalsValue(vo.getStatus()) ){ continue; } hasConvert.add(hasConvertKey); @@ -164,6 +164,7 @@ public class EBomToPBom { } else { BomNewPbomParentEntity pBomParent = new BomNewPbomParentEntity(); BeanUtil.copyProperties(parentVo, pBomParent); + pBomParent.setSourceRowId(parentVo.getBomRowId()); pBomParent.setRowId(IdWorker.getId()); pBomParent.setStatus(PBomStatusEnum.WAIT_PUBLISH.getValue()); pBomParent.setLastVersionIs(1);