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 9a3e9b76..5246146c 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 @@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; -import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; -import com.nflg.product.bomnew.pojo.vo.BomNewEbomUpgradeChangeVO; -import com.nflg.product.bomnew.pojo.vo.MaterialHistoryProjectTypeVO; -import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; +import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; +import com.nflg.product.bomnew.pojo.vo.*; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -53,9 +52,9 @@ public interface BomNewEbomParentMapper extends BaseMapper getSelfParentMaterialNo(@Param("createdBy") String createdBy ,@Param("list") Set list); - List getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList ,@Param("dataType") Integer dataType); + List getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList ,@Param("dataType") Integer dataType , @Param("createdBy") String createdBy); - List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("materialNo") String materialNo,@Param("dataType") Integer dataType ); + List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList,@Param("bomRowIds") Collection bomRowIds , @Param("createdBy") String createdBy ); void updateRootState(); @@ -73,4 +72,6 @@ public interface BomNewEbomParentMapper extends BaseMapper getMaterialParent(@Param("materialNos") Collection materialNos ,@Param("createdBy") String createdBy); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java index ee7a906e..ec3666ea 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewOriginalParentMapper.java @@ -7,6 +7,7 @@ import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -58,9 +59,16 @@ public interface BomNewOriginalParentMapper extends BaseMapper getParentForDrawingNoSeach(@Param("drawingNos") Set drawingNos, @Param("state") Integer state); + List getParentForDrawingNoSeach(@Param("drawingNos") List drawingNos ,@Param("state") Integer state); - List getChildForDrawingNoSeach(@Param("drawingNos") Set drawingNos, @Param("state") Integer state); + List getChildForDrawingNoSeach(@Param("drawingNos") List drawingNos,@Param("bomRowIds") Collection bomRowIds); + + /** + * 获取父级图号 + * @param drawingNos + * @return + */ + Set getMaterialParent(@Param("drawingNos") Collection drawingNos); void resetBomExist(Long rowId); 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 5363920d..38bd5752 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 @@ -124,12 +124,18 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = new ArrayList<>(); - List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); - materialNos.add(materialNo); +// List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()).stream().collect(Collectors.toList()); + //获取父级物料 + Boolean getSelfIs=!userRoleService.technician(); + List parentMaterialByMaterialNo = getParentMaterial(ImmutableList.of(materialNo),(getSelfIs && query.getDataType().equals(0) ) ).stream().collect(Collectors.toList()); +// materialNos.add(materialNo); materialNos.addAll(parentMaterialByMaterialNo); if (CollUtil.isNotEmpty(materialNos)) { - List parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType()); - List childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, materialNo, query.getDataType()); + List childs=new ArrayList<>(); + List parents = this.getBaseMapper().getParentForMaterialNoSeach(materialNos, query.getDataType() ,(getSelfIs && query.getDataType().equals(0) )?SessionUtil.getUserCode():null ); + if(CollUtil.isNotEmpty(parents)) { + childs = this.getBaseMapper().getChildForMaterialNoSeach(materialNos, parents.stream().map(u -> u.getRowId()).collect(Collectors.toSet()), (getSelfIs && query.getDataType().equals(0)) ? SessionUtil.getUserCode() : null); + } List data = new ArrayList<>(); data.addAll(parents); data.addAll(childs); @@ -221,6 +227,32 @@ public class BomNewEbomParentService extends ServiceImpl getParentMaterial(List materialNoList, Boolean bomType) { + Set result = new HashSet<>(); + result.addAll(materialNoList); + + Set useMaterialSku = this.getBaseMapper().getMaterialParent(materialNoList, bomType ? SessionUtil.getUserCode() : null); + + while (CollUtil.isNotEmpty(useMaterialSku)) { + //防止数据错误(循环依赖)-死循环 + Set difference = Sets.difference(useMaterialSku, result); + if (CollUtil.isNotEmpty(difference)) { + useMaterialSku = this.getBaseMapper().getMaterialParent(difference, bomType ? SessionUtil.getUserCode() : null); + result.addAll(difference); + } else { + break; + } + } + return new ArrayList<>(result); + } + /** * 批量获取物料所有父节点 @@ -267,6 +299,7 @@ public class BomNewEbomParentService extends ServiceImpl formalWorksheet(BomNewEbomParentQuery query) { Page result = this.getBaseMapper().formalWorksheet(new Page<>(query.getPage(), query.getPageSize()), query); + if (CollUtil.isNotEmpty(result.getRecords())) { materialMainService.intiMaterialInfo(result.getRecords()); } @@ -302,12 +335,12 @@ public class BomNewEbomParentService extends ServiceImpl materialNos = parentChild.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).map(u -> u.getMaterialNo()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) - .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()) ,BomNewEbomParentEntity::getLastVersionIs, 1) + .eq(!EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getLastVersionIs, 1) .eq(EBomStatusEnum.PUBLISHED.equalsValue(parent.getStatus()), BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); - if(EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())){ - list=list.stream().filter(u->EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList()); + if (EBomStatusEnum.CHECKED.equalsValue(parent.getStatus())) { + list = list.stream().filter(u -> EBomStatusEnum.CHECKED.equalsValue(u.getStatus())).collect(Collectors.toList()); } - Map bomListMap= list.parallelStream() + Map bomListMap = list.parallelStream() .collect(Collectors.toMap( BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo Function.identity(), @@ -377,6 +410,7 @@ public class BomNewEbomParentService extends ServiceImpl list = this.lambdaQuery().in(BomNewEbomParentEntity::getMaterialNo, materialNos) .eq(BomNewEbomParentEntity::getLastVersionIs, 1).list(); - Map bomListMap= list.parallelStream() + Map bomListMap = list.parallelStream() .collect(Collectors.toMap( BomNewEbomParentEntity::getMaterialNo, // key: DrawingNo Function.identity(), @@ -744,39 +778,43 @@ public class BomNewEbomParentService extends ServiceImpl 0).throwMessage("已生成过虚拟包,不能2次生成"); + VUtils.isTure(!Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) + .throwMessage("异常状态下不允许生成虚拟包"); + LogRecordContext.putVariable("gvbom", root); + +// Boolean flag = true; +// for (Integer f : paramDto.getVirtualPackageValue()) { +// flag = flag & ((root.getVirtrualPackageEnum() & f) == f); +// } +// VUtils.isTure(flag).throwMessage("已生成虚拟包,无需重复生成"); + + BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, root); + materialMainService.intiMaterialInfo(ImmutableList.of(parent), BomNewEbomParentVO::getMaterialNo); + if (parent.getMaterialCategoryCode().startsWith("30") || ImmutableList.of("200601", "200401").contains(parent.getMaterialCategoryCode())) { + VirtualPackageBase generate; + if (parent.getMaterialCategoryCode().startsWith("30")) { + generate = new VirtualPackageFor31(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); + } else { + generate = new VirtualPackageFor21(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); } - VUtils.isTure(flag).throwMessage("已生成虚拟包,无需重复生成"); - - BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, root); - materialMainService.intiMaterialInfo(ImmutableList.of(parent), BomNewEbomParentVO::getMaterialNo); - if (parent.getMaterialCategoryCode().startsWith("30") || ImmutableList.of("200601","200401").contains(parent.getMaterialCategoryCode())) { - VirtualPackageBase generate; - if (parent.getMaterialCategoryCode().startsWith("30")) { - generate = new VirtualPackageFor31(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); - } else { - generate = new VirtualPackageFor21(paramDto.getBomRowId(), paramDto.getVirtualPackageValue()); - } - generate.generateVirtualPackage(); - - if (CollUtil.isNotEmpty(generate.getParentResult())) { - this.saveOrUpdateBatch(generate.getParentResult()); - } - if (CollUtil.isNotEmpty(generate.getChildResult())) { - ebomChildService.saveOrUpdateBatch(generate.getChildResult()); - } + generate.generateVirtualPackage(); + if (CollUtil.isNotEmpty(generate.getParentResult())) { + this.saveOrUpdateBatch(generate.getParentResult()); } + if (CollUtil.isNotEmpty(generate.getChildResult())) { + ebomChildService.saveOrUpdateBatch(generate.getChildResult()); + } + + } } @@ -935,11 +973,11 @@ public class BomNewEbomParentService extends ServiceImpl result=param.getList(); - if(CollUtil.isEmpty(param.getList())){ - result=getChild(param.getBomRowId()); + List result = param.getList(); + if (CollUtil.isEmpty(param.getList())) { + result = getChild(param.getBomRowId()); } - final ListSheet listSheet = new ListSheet(Convert.toList(EbomExcelEditVO.class,result) ); + final ListSheet listSheet = new ListSheet(Convert.toList(EbomExcelEditVO.class, result)); EecExcelUtil.eecExcel("bom列表", listSheet, response); } @@ -948,7 +986,7 @@ public class BomNewEbomParentService extends ServiceImpl bomRowIds, HttpServletResponse response) throws IOException { List child = getChildBatch(bomRowIds); - final ListSheet listSheet = new ListSheet<>(Convert.toList(EbomExcelVO.class, child)); + final ListSheet listSheet = new ListSheet<>(Convert.toList(EbomExcelVO.class, child)); EecExcelUtil.eecExcel("bom列表", listSheet, response); } @@ -1024,7 +1062,7 @@ public class BomNewEbomParentService extends ServiceImpl delWrapper=new QueryWrapper<>(); - delWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId,dto.getRowId()); + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId, dto.getRowId()); SpringUtil.getBean(BomNewEbomChildService.class).getBaseMapper().delete(delWrapper); } @@ -1088,20 +1126,20 @@ public class BomNewEbomParentService extends ServiceImpl sameList=null; + List sameList = null; if (CollectionUtil.isNotEmpty(eBomEdit.childEntities)) { - QueryWrapper queryWrapper=new QueryWrapper<>(); - queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId,dto.getRowId()); - List oldChildList= SpringUtil.getBean(BomNewEbomChildService.class).list(queryWrapper); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(BomNewEbomChildEntity::getParentRowId, dto.getRowId()); + List oldChildList = SpringUtil.getBean(BomNewEbomChildService.class).list(queryWrapper); ebomChildService.saveOrUpdateBatch(eBomEdit.childEntities); - if(CollUtil.isNotEmpty(oldChildList)) { + if (CollUtil.isNotEmpty(oldChildList)) { //追加里包含相同 List appendList = eBomEdit.childEntities.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()); List oldList = oldChildList.stream().map(BomNewEbomChildEntity::getMaterialNo).collect(Collectors.toList()); - sameList = appendList.stream() + sameList = appendList.stream() .filter(oldList::contains) .collect(Collectors.toList()); @@ -1111,10 +1149,10 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = dto.getRowIdList(); @@ -1227,21 +1264,20 @@ public class BomNewEbomParentService extends ServiceImpl (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId().longValue() > 0 ) - && !ObjectUtil.equal(UserJobEnum.ENGINEER.getValue(),u.getCreatedJob()) - && ObjectUtil.equal(EBomStatusEnum.CHECKED.getValue(),u.getStatus()) + .filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId().longValue() > 0) + && !ObjectUtil.equal(UserJobEnum.ENGINEER.getValue(), u.getCreatedJob()) + && ObjectUtil.equal(EBomStatusEnum.CHECKED.getValue(), u.getStatus()) ) .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList())); - if (CollectionUtil.isNotEmpty(revertList)) { //parent表状态 UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.lambda() .set(BomNewEbomParentEntity::getRevertTime, LocalDateTime.now()) .set(BomNewEbomParentEntity::getRevertUserName, SessionUtil.getUserName()) - .set(BomNewEbomParentEntity::getRevertDesc,dto.getRevertDesc()) + .set(BomNewEbomParentEntity::getRevertDesc, dto.getRevertDesc()) .set(BomNewEbomParentEntity::getStatus, EBomStatusEnum.RETURNED.getValue()) .set(BomNewEbomParentEntity::getEditStatus, EbomEditStatusEnum.HANDLER_CREATED.getValue()) .in(BomNewEbomParentEntity::getRowId, revertList); @@ -1253,24 +1289,22 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = dto.getRowIdList(); @@ -1292,11 +1326,11 @@ public class BomNewEbomParentService extends ServiceImpl checkList=bomNewEbomParentEntityList.stream().filter(u->!u.getCreatedBy().equals(SessionUtil.getUserCode())).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(checkList)) { - String checkListMaterialNo=StrUtil.join(",",checkList.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toList())); - VUtils.isTure(true).throwMessage(StrUtil.format("{} 该节点不属于你,你无权复核",checkListMaterialNo)); - } + List checkList = bomNewEbomParentEntityList.stream().filter(u -> !u.getCreatedBy().equals(SessionUtil.getUserCode())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(checkList)) { + String checkListMaterialNo = StrUtil.join(",", checkList.stream().map(BomNewEbomParentEntity::getMaterialNo).collect(Collectors.toList())); + VUtils.isTure(true).throwMessage(StrUtil.format("{} 该节点不属于你,你无权复核", checkListMaterialNo)); + } Set materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); @@ -1346,8 +1380,8 @@ public class BomNewEbomParentService extends ServiceImpl rowIdList = dto.getRowIdList().stream().map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getRowId).collect(Collectors.toList()); List bomRowIdList = dto.getRowIdList().stream().filter(u -> u.getBomRowId() > 0).map(BomNewEbomProjectTypeDTO.BomNewEbomChangeProjectType::getBomRowId).collect(Collectors.toList()); - - // if (CollectionUtil.isNotEmpty(bomRowIdList)) { // UpdateWrapper parentUpdate = new UpdateWrapper<>(); // parentUpdate.lambda() @@ -1478,7 +1509,6 @@ public class BomNewEbomParentService extends ServiceImpl queryWrapper=new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda() .eq(BomNewEbomParentEntity::getRowId, bomRowId) + queryWrapper.lambda().eq(BomNewEbomParentEntity::getRowId, bomRowId) .eq(BomNewEbomParentEntity::getUserRootIs, 1); BomNewEbomParentEntity parentEntity = this.getBaseMapper().selectOne(queryWrapper); @@ -1605,19 +1631,19 @@ public class BomNewEbomParentService extends ServiceImpl parentList= eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)) - .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList()); - List childList= eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNull(u.getBomRowId()) || u.getBomRowId().longValue()==0l)) + List parentList = eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNotNull(u.getBomRowId()) && u.getBomRowId() > 0)) + .map(BomNewEbomParentVO::getBomRowId).collect(Collectors.toList()); + List childList = eBomDel.getDelEBom().stream().filter(u -> (ObjectUtil.isNull(u.getBomRowId()) || u.getBomRowId().longValue() == 0l)) .map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(parentList)) { + if (CollUtil.isNotEmpty(parentList)) { this.getBaseMapper().delBatch(parentList); } // QueryWrapper parentWrapper=new QueryWrapper<>(); // parentWrapper.lambda().in(BomNewEbomParentEntity::getRowId,parentList); // - if(CollUtil.isNotEmpty(childList)) { + if (CollUtil.isNotEmpty(childList)) { QueryWrapper childWrapper = new QueryWrapper<>(); childWrapper.lambda().in(BomNewEbomChildEntity::getRowId, childList); // @@ -1626,7 +1652,7 @@ public class BomNewEbomParentService extends ServiceImpl computeLevelNumAndRootState()); - computeLevelNumAndRootState(); + computeLevelNumAndRootState(); } return true; @@ -1678,11 +1703,11 @@ public class BomNewEbomParentService extends ServiceImpl @@ -1706,7 +1728,6 @@ public class BomNewEbomParentService extends ServiceImpl delList) { - if(CollUtil.isEmpty(delList)){ + if (CollUtil.isEmpty(delList)) { return; } - List rowIds=delList.stream().map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); - QueryWrapper queryChildWrapper=new QueryWrapper<>(); - queryChildWrapper.lambda().in(BomNewEbomChildEntity::getRowId,rowIds); + List rowIds = delList.stream().map(BomNewEbomParentVO::getRowId).collect(Collectors.toList()); + QueryWrapper queryChildWrapper = new QueryWrapper<>(); + queryChildWrapper.lambda().in(BomNewEbomChildEntity::getRowId, rowIds); - List delChildList=SpringUtil.getBean(BomNewEbomChildService.class).list(queryChildWrapper); + List delChildList = SpringUtil.getBean(BomNewEbomChildService.class).list(queryChildWrapper); List delTagList = new ArrayList<>(); @@ -1840,7 +1856,7 @@ public class BomNewEbomParentService extends ServiceImpl s1List = delChildList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource()) && !Objects.equals(u.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())).collect(Collectors.toList()); @@ -1868,16 +1883,16 @@ public class BomNewEbomParentService extends ServiceImpl getParentMaterialByDrawingNo(List drawingNos) { + Set result = new HashSet<>(); + result.addAll(drawingNos); + + Set useMaterialSku = this.getBaseMapper().getMaterialParent(drawingNos); + + while (CollUtil.isNotEmpty(useMaterialSku)) { + //防止数据错误(循环依赖)-死循环 + Set difference = Sets.difference(useMaterialSku, result); + if (CollUtil.isNotEmpty(difference)) { + useMaterialSku = this.getBaseMapper().getMaterialParent(difference); + result.addAll(difference); + } else { + break; + } + } + return new ArrayList<>(result); + } + private Page handSeachToTree(List parents, List childs) { Page resutlData = new Page<>(); Set parentSet = parents.stream().map(u -> u.getDrawingNo()).collect(Collectors.toSet()); @@ -157,10 +181,34 @@ public class BomNewOriginalParentService extends ServiceImpl materialBoms = this.lambdaQuery().in(BomNewOriginalParentEntity::getDrawingNo, queryDrawingNos).eq(BomNewOriginalParentEntity::getLastVersionIs, 1) +// .eq(BomNewOriginalParentEntity::getStatus, OriginalStatusEnum.UN_CONVERT.getValue()).list(); +// if(query.getStatus().equals(1) && CollUtil.isEmpty(materialBoms)){ +// return result; +// } + List parentDrawingNos = new ArrayList<>(getParentMaterialByDrawingNo(queryDrawingNos)); +// parentDrawingNos.addAll(queryDrawingNos); Set parentDrawingNos = new HashSet<>(getParentDrawingNoByMaterialNo(queryDrawingNos)); parentDrawingNos.addAll(queryDrawingNos); if (CollUtil.isNotEmpty(parentDrawingNos)) { + List childs=new ArrayList<>(); List parents = this.getBaseMapper().getParentForDrawingNoSeach(parentDrawingNos, query.getStatus()); + materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + if(CollUtil.isNotEmpty(parents)) { + childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos, parents.stream().map(u -> u.getRowId()).collect(Collectors.toSet())); + materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + childs.stream().filter(f -> StrUtil.isBlank(f.getCurrentVersion())).forEach(f -> { + if (MaterialshouldBomExistUtil.checkShouldBomExist(f.getMaterialCategoryCode(), f.getMaterialGetType())) { + f.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } else { + f.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION); + } + }); + } +// List data = new ArrayList<>(); +// data.addAll(parents); +// data.addAll(childs); +// materialMainService.intiMaterialInfo(data, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); materialMainService.intiMaterialInfo(parents, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); List childs = this.getBaseMapper().getChildForDrawingNoSeach(parentDrawingNos,query.getStatus()); materialMainService.intiMaterialInfo(childs, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); 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 ce1b8ee9..af7c633b 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 @@ -170,10 +170,12 @@ public class EBomToPBom { pBomParent.setFacCode(facCode); pBomParent.setTechnologyUserCode(SessionUtil.getUserCode()); pBomParent.setTechnologyUserName(SessionUtil.getRealName()); - pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); + //pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); + //版本=EBom版本 + pBomParent.setCurrentVersion(parentVo.getCurrentVersion()); pBomParent.setEditStatus(PBomEditStatusEnum.HANDLER_CREATED.getValue()); if(Objects.nonNull(oldParent)){ - pBomParent.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); + // pBomParent.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); oldParent.setExpireEndTime(LocalDateTime.now()); oldParent.setLastVersionIs(0); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java index 9a2fcbf7..6cc36f9f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java @@ -39,7 +39,7 @@ public class VirtualPackageFor21 extends VirtualPackageBase { BomNewEbomParentEntity parent = getParentByRowId(bomRowId); BomNewEbomParentVO vo= Convert.convert(BomNewEbomParentVO.class,parent ); - if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()){ + if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()&VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!= VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()){ generateVMNoF21(parent.getDrawingNo(), ImmutableList.of(vo),VirtualPackageTypeEnum.MAKING_PACKAGE, VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); } else { @@ -58,7 +58,7 @@ public class VirtualPackageFor21 extends VirtualPackageBase { buildChild(directDeliveryPackage, bomRowId, "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE,parent.getMaterialNo()); } - if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) { + if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()& VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) { //构建构建发货前装配包 if(Objects.isNull(makingPackage)){ makingPackage=getParentZhiZuo(parent.getDrawingNo()); 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 09430052..863bd418 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 @@ -98,45 +98,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - - and a.status = 4 - + + + + + + + + + - and material_no in - - #{item} - - + + @@ -222,8 +275,9 @@ + update t_bom_new_ebom_parent set root_is_for_wait_review=0 ; update t_bom_new_ebom_parent a left join ( - select b.row_id, b.material_no,a.`status` 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` =2 + select b.row_id, b.material_no,a.`status` 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` in(1,3) and last_version_is=1 ) b on a.material_no=b.material_no set a.root_is_for_wait_review=1 where a.`status` in (1,3) and last_version_is=1 and b.row_id is null ; @@ -283,6 +337,18 @@ select COUNT(1) from t_bom_new_ebom_child where material_no=#{materialNo} and edit_status=1 + + - SELECT status,row_id as bomRowId, row_id as childBomRowId, a.* + SELECT status , created_by as bomCreatedBy , row_id as bomRowId, row_id as childBomRowId, a.* FROM t_bom_new_original_parent a - where status=#{state} + join (select drawing_no,max(current_version) current_version from t_bom_new_original_parent where status=#{state} and drawing_no in #{item} - order by row_id desc + group by drawing_no ) b on a.drawing_no=b.drawing_no and a.current_version=b.current_version + order by created_time desc + + + + + + + + + + + + + + + + + + +