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;