diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java index 967375b8..7fcdf4db 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java @@ -15,11 +15,11 @@ import java.util.Objects; @Data public class ReverseReportVO { - @ApiModelProperty("bom-rowId(parent表)") - private Long rowId; + // @ApiModelProperty("bom-rowId(parent表)") + // private Long rowId; - @ApiModelProperty("层级") - private String orderNumber; + // @ApiModelProperty("层级") + // private String orderNumber; @ApiModelProperty("图号") private String drawingNo; @@ -33,8 +33,8 @@ public class ReverseReportVO { @ApiModelProperty("项目类别") private String projectType; - @ApiModelProperty("物料类别名称") - private String materialCategoryName; + // @ApiModelProperty("物料类别名称") + // private String materialCategoryName; @ApiModelProperty("物料描述") private String materialDesc; @@ -54,11 +54,11 @@ public class ReverseReportVO { @ApiModelProperty(value = "版本过期时间=下个版本的创建时间") private LocalDateTime expireEndTime; - @ApiModelProperty("是否子级 0-否 1-是") - private Integer childIs; - - @ApiModelProperty("父级行ID") - private Long parentRowId; + // @ApiModelProperty("是否子级 0-否 1-是") + // private Integer childIs; + // + // @ApiModelProperty("父级行ID") + // private Long parentRowId; @ApiModelProperty("子级报表") private String childDrawingNo; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java index 52fd998c..485f31af 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java @@ -3,12 +3,14 @@ package com.nflg.product.bomnew.service.domain.ReverseReport; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.constant.OriginalConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; import com.nflg.product.bomnew.service.*; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import com.nflg.product.bomnew.util.VUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,12 +45,18 @@ public class EBomQueryService { @Resource MaterialMainService materialMainService; + private static final ThreadLocal ADD = new ThreadLocal<>(); public void report(ReverseReportQuery queryParam , List result) { if(queryParam.getQueryType().equals(0)) { result.addAll(singleLevelReport(queryParam)); }else { - result.addAll(multipleLevelReport(queryParam)); + try { + ADD.set(true); + result.addAll(multipleLevelReport(queryParam)); + } finally { + ADD.remove(); + } } } @@ -100,7 +108,20 @@ public class EBomQueryService { } if (StrUtil.isBlank(version)) { List pVOs = ebomChildFormalService.getSuperiorByMaterialNo(queryParam.getMaterialNo()); + List materialNos = pVOs.stream().map(BomNewPbomParentVO::getMaterialNo).collect(Collectors.toList()); + List materialVOS = materialMainService.getMaterialBaseInfo(materialNos); pVOs.forEach(p -> { + if (!ADD.get()) return; + BaseMaterialVO materialMainEntity = materialVOS.stream() + .filter(m -> StrUtil.equals(m.getMaterialNo(), p.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialMainEntity)) { + if (MaterialshouldBomExistUtil.checkShouldBomExist(materialMainEntity.getMaterialCategoryCode() + , materialMainEntity.getMaterialGetType())) { + p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } + } vos.add(createVO(p, 1)); bindData(p, 1, vos); }); @@ -113,6 +134,7 @@ public class EBomQueryService { List pVOs = getSuperiors(parent.getRowId()); pVOs.forEach(p -> { + if (!ADD.get()) return; vos.add(createVO(p, 1)); bindData(p, 1, vos); }); @@ -136,14 +158,20 @@ public class EBomQueryService { } private void bindData(BomNewPbomParentVO pVO, Integer level, List vos) { + if (!ADD.get()) return; if (Objects.nonNull(pVO.getParentRowId())) { List parents = getSuperiors(pVO.getParentRowId()); level++; Integer finalLevel = level; - parents.forEach(it -> { + for (BomNewPbomParentVO it : parents) { + if (!ADD.get()) return; vos.add(createVO(it, finalLevel)); + if (vos.size() >= 1000) { + ADD.set(false); + return; + } bindData(it, finalLevel, vos); - }); + } } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildFormalMapper.xml index 6664ef9c..deacb5a0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildFormalMapper.xml @@ -51,9 +51,9 @@