From 8d26ce919a11cccb93a080cfcbbb33126aacfda1 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 17:28:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1=E3=80=81pbom-=E5=8D=87=E7=BA=A7=E5=8F=8A?= =?UTF-8?q?=E6=9C=AA=E5=8F=91=E5=B8=83=E5=88=97=E8=A1=A8=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/master/BomNewPbomParentMapper.java | 7 ++++ .../service/BomNewEbomParentService.java | 5 +++ .../service/domain/PBom/PBomUpgrade.java | 6 ++++ .../mapper/master/BomNewEbomParentMapper.xml | 4 +-- .../mapper/master/BomNewPbomParentMapper.xml | 34 +++++++++++++++++-- 5 files changed, 52 insertions(+), 4 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java index 9f44e4c8..ed6c917c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java @@ -9,7 +9,10 @@ import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomWorkExcelVO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.Collections; import java.util.List; +import java.util.Set; /** * t_bom_new_pbom_parent 表数据库访问层 @@ -53,4 +56,8 @@ public interface BomNewPbomParentMapper extends BaseMapper exportExcel(List bomRowIds); void resetBomExist(Long rowId); + + void updateWaitPublicRootState(@Param("materialNoList") Collection materialNoList); + + } 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 cd5e81ef..71c112ea 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 @@ -857,6 +857,11 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = bomTree.stream().map(u -> u.getMaterialNo()).collect(Collectors.toSet()); + if(CollUtil.isNotEmpty(materialNos)){ + pBomParentService.getBaseMapper().updateWaitPublicRootState(materialNos); + } //标记跟节点 upRootMark(parent); if (CollUtil.isNotEmpty(eBomToPBom.getVirtualPackageCompositionResult())) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java index 207a7002..21b6646f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java @@ -74,6 +74,12 @@ public class PBomUpgrade { } private void buildParent(BomNewPbomParentVO parentVO, boolean rootIs) { + //判断有无未发布版本-有则直接跳过 + List waitPublishBomList = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, parentVO.getMaterialNo()) + .eq(BomNewPbomParentEntity::getStatus, PBomStatusEnum.WAIT_PUBLISH.getValue()).list(); + if(CollUtil.isNotEmpty(waitPublishBomList)){ + return; + } BomNewPbomParentEntity pbomParent = new BomNewPbomParentEntity(); BeanUtil.copyProperties(parentVO, pbomParent); pbomParent.setRowId(IdWorker.getId()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 9348a08c..a64cf73c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -306,13 +306,13 @@ diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index 0aa28317..8b82b6bb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -78,7 +78,7 @@ select * , row_id as bomRowId - from t_bom_new_pbom_parent where status >= 4 and last_version_is=1 + from t_bom_new_pbom_parent a join + (select material_no, max(current_version) current_version from t_bom_new_pbom_parent where status >= 4 + + and material_no = #{query.materialNo} + + + and drawing_no = #{query.drawingNo} + + group by material_no + ) b + on a.material_no=b.material_no and a.current_version=b.current_version + where status >= 4 and root_is=1 @@ -231,4 +242,23 @@ SET p.bom_exist = (IF(EXISTS (SELECT 1 FROM t_bom_new_pbom_child WHERE parent_row_id = p.row_id), 1, 0)) WHERE p.row_id = #{rowId}; + + + + #{item} + + + + + update t_bom_new_pbom_parent a left join ( + select b.material_no , a.fac_code from t_bom_new_pbom_parent a join t_bom_new_pbom_child b on a.row_id=b.parent_row_id and a.`status` < 4 and a.last_version_is=1 + and b.material_no in + ) b on a.material_no=b.material_no and a.fac_code =b.fac_code + set a.root_state=1 + where a.`status` < 4 and last_version_is=1 and b.material_no is null + and a.material_no in + + + + From 626fe44ce6d1991897b28a6a107d118aa7852e50 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:13:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1=E3=80=81pbom-=E5=8D=87=E7=BA=A7=E5=8F=8A?= =?UTF-8?q?=E6=9C=AA=E5=8F=91=E5=B8=83=E5=88=97=E8=A1=A8=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java index ad82a013..eb7e7b0b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java @@ -67,6 +67,7 @@ public class EBomDetailTask extends RecursiveTask> { detailVO.setDeviseName(ebomParentEntity.getDeviseName()); detailVO.setBomExist(ebomParentEntity.getBomExist()); detailVO.setStatus(ebomParentEntity.getStatus()); + detailVO.setBatchNo(ebomParentEntity.getBatchNo()); } } 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 3/3] =?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);