diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 302f2ab9..65e6a989 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -199,7 +199,7 @@ public class PBomApi extends BaseApi { @PostMapping("getAllocationFactoryBom") @ApiOperation("分工厂-获取BOM树") public ResultVO > getAllocationFactoryBom(@Valid @RequestBody AllocationFactoryBomQuery param ) throws ExecutionException, InterruptedException { - return ResultVO.success(bomNewPbomParentService.getAllocationFactoryBom(param)); + return ResultVO.success(bomNewPbomParentService.getAllocationFactoryBomTree(param)); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java index ae6a654d..051e0840 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java @@ -63,4 +63,8 @@ public interface BomNewEbomParentMapper extends BaseMapper rowIds); void updateStateBatchByRowIds(@Param("status") Integer status, @Param("list") List list ); + + Integer checkIsRoot(@Param("materialNo") String materialNo); + + Integer checkIsUserRoot(@Param("materialNo")String materialNo, @Param("jobNo")String jobNo); } 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 78d27848..636f0113 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 @@ -132,7 +132,7 @@ public class BomNewEbomParentService extends ServiceImpl data = getBomTree(bomRowId); BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId)); - LogRecordContext.putVariable("bom",parent); + LogRecordContext.putVariable("bom", parent); //初始化物料信息 materialMainService.intiMaterialInfo(data); productTypeInitDo(parent, data); @@ -613,7 +613,7 @@ public class BomNewEbomParentService extends ServiceImpl list = getChild(root.getRowId()); List makeList = list.stream().filter(u -> VirtualPackageTypeEnum.MAKING_PACKAGE.equalsValue(u.getVirtualPartType())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(makeList)) { - Integer virtualPartTypeEnum = VirtualPackageTypeEnum.MAKING_PACKAGE.getValue() | VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue(); + Integer virtualPartTypeEnum = VirtualPackageTypeEnum.MAKING_PACKAGE.getValue() | VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue(); List preList = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, makeList.get(0).getBomRowId()) .eq(BomNewEbomChildEntity::getVirtualPartType, VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()).list(); if (CollUtil.isNotEmpty(preList)) { @@ -636,14 +636,14 @@ public class BomNewEbomParentService extends ServiceImpl delSet = eBomToPBom.getVirtualPackageCompositionResult().stream().map(u -> StrUtil.join("-", u.getVirtualPackageMaterialNo(), u.getParentMaterialNo())).collect(Collectors.toSet()); @@ -738,14 +740,14 @@ public class BomNewEbomParentService extends ServiceImpl bomChildren=new ArrayList<>(); - bomTree.forEach(k->{ - BomNewEbomChildEntity entChild=new BomNewEbomChildEntity(); + List bomChildren = new ArrayList<>(); + bomTree.forEach(k -> { + BomNewEbomChildEntity entChild = new BomNewEbomChildEntity(); entChild.setRowId(k.getRowId()); entChild.setBomVersionRowId(k.getBomRowId()); bomChildren.add(entChild); }); - if(CollUtil.isNotEmpty(bomChildren)) { + if (CollUtil.isNotEmpty(bomChildren)) { ebomChildService.updateBatchById(bomChildren); } @@ -754,6 +756,18 @@ public class BomNewEbomParentService extends ServiceImpl0?0:1); + ebomParent.setUserRootIs(userRootIs>0?0:1); + this.updateById(ebomParent); + + + } + /** * 发起变更 * @@ -764,36 +778,42 @@ public class BomNewEbomParentService extends ServiceImpl list = this.lambdaQuery().in(BomNewEbomParentEntity::getRowId, paramDTO.getBomRowIds()).list(); List notConvertToPbom = list.stream().filter(u -> u.getStatus() < EBomStatusEnum.PUBLISHED.getValue()).map(u -> u.getMaterialNo()).collect(Collectors.toList()); VUtils.isTure(CollUtil.isNotEmpty(notConvertToPbom)).throwMessage(StrUtil.join(",", notConvertToPbom) + "未转PBom,不能发起变更"); + //检查是否存在发布前的版本,有则不能发起变更 + List materialNos = list.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + List existEnt = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos).lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); + Set existMaterialNos = existEnt.stream().map(u -> u.getMaterialNo()).collect(Collectors.toSet()); + VUtils.isTure(CollUtil.isNotEmpty(existMaterialNos)).throwMessage(StrUtil.join(",", existMaterialNos, "存在发布前版本。")); List parentResult = new ArrayList<>(); List childResult = new ArrayList<>(); for (Long bomRowId : paramDTO.getBomRowIds()) { BomNewEbomParentEntity parent = this.getById(bomRowId); - LogRecordContext.putVariable("bom",parent); - List existEnt = this.lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parent.getMaterialNo()).lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); - //含发布前版本则无需升级 - if (CollUtil.isEmpty(existEnt)) { - List child = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, bomRowId).list(); - BomNewEbomParentEntity newParent = new BomNewEbomParentEntity(); - BeanUtil.copyProperties(parent, newParent); - newParent.setRowId(IdWorker.getId()); - newParent.setLastVersionIs(1); - newParent.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(parent.getCurrentVersion())); - newParent.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_11.getValue()); - newParent.setChangeDesc(paramDTO.getChangeDesc()); - newParent.setNoticeNums(paramDTO.getNoticeNums()); - newParent.setStatus(EBomStatusEnum.WAIT_CHECK.getValue()); - parent.setLastVersionIs(0); - parentResult.add(newParent); - parentResult.add(parent); - for (BomNewEbomChildEntity childEnt : child) { - BomNewEbomChildEntity newChild = new BomNewEbomChildEntity(); - BeanUtil.copyProperties(childEnt, newChild); - newChild.setRowId(IdWorker.getId()); - newChild.setParentRowId(newParent.getRowId()); - childResult.add(newChild); - } + LogRecordContext.putVariable("bom", parent); + + + List child = ebomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, bomRowId).list(); + BomNewEbomParentEntity newParent = new BomNewEbomParentEntity(); + BeanUtil.copyProperties(parent, newParent); + newParent.setRowId(IdWorker.getId()); + newParent.setLastVersionIs(1); + newParent.setCurrentVersion(VersionUtil.getNextVersionForSmallVersion(parent.getCurrentVersion())); + newParent.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_11.getValue()); + newParent.setChangeDesc(paramDTO.getChangeDesc()); + newParent.setNoticeNums(paramDTO.getNoticeNums()); + newParent.setStatus(EBomStatusEnum.WAIT_CHECK.getValue()); + newParent.setRootIs(1); + newParent.setUserRootIs(1); + parent.setLastVersionIs(0); + parentResult.add(newParent); + parentResult.add(parent); + for (BomNewEbomChildEntity childEnt : child) { + BomNewEbomChildEntity newChild = new BomNewEbomChildEntity(); + BeanUtil.copyProperties(childEnt, newChild); + newChild.setRowId(IdWorker.getId()); + newChild.setParentRowId(newParent.getRowId()); + childResult.add(newChild); } + } if (CollUtil.isNotEmpty(parentResult)) { @@ -1047,7 +1067,7 @@ public class BomNewEbomParentService extends ServiceImpl materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); - LogRecordContext.putVariable("log",materialNoAndVersion); + LogRecordContext.putVariable("log", materialNoAndVersion); if (rowIds.size() != bomNewEbomParentEntityList.size()) { @@ -1154,7 +1174,7 @@ public class BomNewEbomParentService extends ServiceImpl materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); - LogRecordContext.putVariable("log",materialNoAndVersion); + LogRecordContext.putVariable("log", materialNoAndVersion); if (rowIds.size() != bomNewEbomParentEntityList.size()) { VUtils.isTure(true).throwMessage("数据中包含有下级BOM无法进行复核"); @@ -1274,7 +1294,6 @@ public class BomNewEbomParentService extends ServiceImpl datas){ + private void superMaterialStatus(List datas) { - List superTagList=datas.stream().filter(item-> item.getSuperMaterialStatus()!=null - // && item.getSuperMaterialStatus().equals(EBomSuperMaterialStatusEnum.SUPER_MATERIAL_1.getValue()) - && item.getBomRowId()!=null && item.getBomRowId().longValue()>0 + List superTagList = datas.stream().filter(item -> item.getSuperMaterialStatus() != null + // && item.getSuperMaterialStatus().equals(EBomSuperMaterialStatusEnum.SUPER_MATERIAL_1.getValue()) + && item.getBomRowId() != null && item.getBomRowId().longValue() > 0 ).collect(Collectors.toList()); - List updateList=new ArrayList<>(); - for (BomNewEbomParentVO vo:superTagList){ - BomNewEbomParentEntity entity=new BomNewEbomParentEntity(); + List updateList = new ArrayList<>(); + for (BomNewEbomParentVO vo : superTagList) { + BomNewEbomParentEntity entity = new BomNewEbomParentEntity(); entity.setRowId(vo.getBomRowId()); entity.setSuperMaterialStatus(vo.getSuperMaterialStatus()); updateList.add(entity); } - if(CollectionUtil.isNotEmpty(updateList)){ - this.updateBatchById(updateList); - } + if (CollectionUtil.isNotEmpty(updateList)) { + this.updateBatchById(updateList); + } } @@ -1748,11 +1766,11 @@ public class BomNewEbomParentService extends ServiceImpl getAllocationFactoryBomTree(AllocationFactoryBomQuery param) throws ExecutionException, InterruptedException { + List allBom = getAllBom(param.getBomRowId(), 0); + materialMainService.intiMaterialInfo(allBom, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + return CTreePBomUtils.toTree(param.getBomRowId(), allBom, BomNewPbomParentVO::getParentRowId, BomNewPbomParentVO::getBomRowId); + } + public List getAllocationFactoryBom(AllocationFactoryBomQuery param) throws ExecutionException, InterruptedException { List allBom = getAllBom(param.getBomRowId(), 1); materialMainService.intiMaterialInfo(allBom, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - return CTreePBomUtils.toTree(param.getBomRowId(), allBom, BomNewPbomParentVO::getParentRowId, BomNewPbomParentVO::getBomRowId); + } @@ -621,7 +627,10 @@ public class BomNewPbomParentService extends ServiceImpl{ try { - List allBom = this.getAllBomTree(k.getBomRowId()); + AllocationFactoryBomQuery query=new AllocationFactoryBomQuery(); + query.setBomRowId(k.getBomRowId()); + + List allBom = this.getAllocationFactoryBom(query); List rowIds =new ArrayList<>(); rowIds.add(k.getRowId()); rowIds.addAll(allBom.stream().map(u -> u.getRowId()).collect(Collectors.toList())); 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 432eeea8..a78ce42a 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 @@ -95,7 +95,7 @@ + select COUNT(1) from t_bom_new_ebom_parent a join t_bom_new_ebom_child b on a.row_id=b.parent_row_id and a.`status`=4 and a.last_version_is=1 + and b.material_no=#{materialNo} + + + +