From 39ed6810ebd4129635287da6d538c2ae3bb66135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 18 Apr 2024 09:15:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ebom=E5=B7=A5=E4=BD=9C=E8=A1=A8?= =?UTF-8?q?=E7=B2=BE=E7=A1=AE=E6=90=9C=E7=B4=A2=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 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 ec9b68d0..c8f5e3e1 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 @@ -2077,40 +2077,41 @@ public class BomNewEbomParentService extends ServiceImpl roots = result.getRecords().stream() - .filter(r -> StrUtil.equals(r.getMaterialNo(), query.getMaterialNo()) || StrUtil.equals(r.getDrawingNo(), query.getDrawingNo())) - .collect(Collectors.toList()); - roots.forEach(this::buildChildren); - //从子级开始查找 - List boms = this.getBaseMapper().getBom(query.getMaterialNo(), query.getDrawingNo()); - boms.removeIf(c -> Objects.equals(c.getLastVersionIs(), 0)); - boms.forEach(this::buildChildren); - roots.addAll(boms.stream().filter(b -> b.getRootIs() == 0 && b.getUserRootIs() == 0 && b.getRootIsForWaitReview() == 0).map(this::buildParent).flatMap(List::stream).collect(Collectors.toList())); - - Map> map = roots.stream().collect(Collectors.groupingBy(BaseMaterialVO::getMaterialNo)); - List results = new ArrayList<>(); - map.forEach((k, v) -> { - if (v.size() == 1) { - results.add(v.get(0)); - } else { - BomNewEbomParentVO f1 = v.get(0); - for (int i = 1; i < v.size(); i++) { - merge(f1, v.get(i)); - } - results.add(f1); - } - }); - - Page pageResult = new Page<>(); - pageResult.setPages(1); - pageResult.setCurrent(1); - pageResult.setTotal(results.size()); - pageResult.setRecords(results); - return pageResult; } + //根据编号或图号搜索 + //从顶级开始查找 + List roots = result.getRecords().stream() + .filter(r -> StrUtil.equals(r.getMaterialNo(), query.getMaterialNo()) || StrUtil.equals(r.getDrawingNo(), query.getDrawingNo())) + .collect(Collectors.toList()); + roots.forEach(this::buildChildren); + //从子级开始查找 + List boms = this.getBaseMapper().getBom(query.getMaterialNo(), query.getDrawingNo()); + boms.removeIf(c -> Objects.equals(c.getLastVersionIs(), 0)); + boms.forEach(this::buildChildren); + roots.addAll(boms.stream().filter(b -> b.getRootIs() == 0 && b.getUserRootIs() == 0 && b.getRootIsForWaitReview() == 0).map(this::buildParent).flatMap(List::stream).collect(Collectors.toList())); + + Map> map = roots.stream().collect(Collectors.groupingBy(BaseMaterialVO::getMaterialNo)); + List results = new ArrayList<>(); + map.forEach((k, v) -> { + if (v.size() == 1) { + results.add(v.get(0)); + } else { + BomNewEbomParentVO f1 = v.get(0); + for (int i = 1; i < v.size(); i++) { + merge(f1, v.get(i)); + } + results.add(f1); + } + }); + + results.sort((r1, r2) -> r1.getBomRowId() >= r2.getBomRowId() ? r1.getBomRowId() > r2.getBomRowId() ? 1 : 0 : -1); + + Page pageResult = new Page<>(); + pageResult.setPages(1); + pageResult.setCurrent(1); + pageResult.setTotal(results.size()); + pageResult.setRecords(results); + return pageResult; } private void merge(BomNewEbomParentVO v1, BomNewEbomParentVO v2) {