From 24edba0da33dd49a6e130aa72fee7b299998772b Mon Sep 17 00:00:00 2001 From: jing's Date: Sat, 6 Jul 2024 22:56:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=94=E8=BE=83=E7=BB=93=E6=9E=9C=E6=8C=89?= =?UTF-8?q?=E5=B1=82=E7=BA=A7=E5=8D=87=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/CompareReportService.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CompareReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CompareReportService.java index 63132ace..3ffda21b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CompareReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CompareReportService.java @@ -255,6 +255,54 @@ public class CompareReportService { compareFunc, queryType, ReportConstant.SymbolEnum.NULL_R); + + // 比较器排序 + Collections.sort(compareReportVOList, new Comparator() { + @Override + public int compare(CompareReportVO p1, CompareReportVO p2) { + + ForwardReportVO item1Left= p1.getLeft(); + ForwardReportVO item1Right= p1.getRight(); + + ForwardReportVO item2Left= p2.getLeft(); + ForwardReportVO item2Right= p2.getRight(); + + int left=0,right=0; + + if (Objects.isNull(item1Left)){ + left=item1Right.getLevelNum().intValue(); + } + if (Objects.isNull(item1Right)){ + left=item1Left.getLevelNum().intValue(); + } + if (Objects.nonNull(item1Left) && Objects.nonNull(item1Right)){ + + left= Math.min(item1Left.getLevelNum(),item1Right.getLevelNum()); + + } + if (Objects.isNull(item2Left)){ + right=item2Right.getLevelNum().intValue(); + } + if (Objects.isNull(item2Right)){ + right=item2Left.getLevelNum().intValue(); + } + if (Objects.nonNull(item2Left) && Objects.nonNull(item2Right)){ + + right= Math.min(item2Left.getLevelNum(),item2Right.getLevelNum()); + + } + int diff = left -right; + if(diff>0){ + return 1; + }else if( diff<0){ + return -1; + } + return 0; + + } + }); + + return compareReportVOList;