gaodm vor 5 Jahren
Ursprung
Commit
7360ab3193

+ 10 - 7
src/main/java/com/diagbot/facade/AlgorithmFacade.java

@@ -49,16 +49,16 @@ public class AlgorithmFacade {
     private String getLevel(BigDecimal score) {
         String level = "甲";
         //得分>90分为甲级
-        if (BigDecimalUtil.compareTo(score, new BigDecimal(90)) == 3) {
+        if (BigDecimalUtil.gt(score, new BigDecimal(90))) {
             level = "甲";
         }
         //得分≤90分且得分>80分为乙级
-        if (BigDecimalUtil.compareTo(score, new BigDecimal(90)) == 5
-                && BigDecimalUtil.compareTo(score, new BigDecimal(80)) == 4) {
+        if (BigDecimalUtil.le(score, new BigDecimal(90))
+                && BigDecimalUtil.gt(score, new BigDecimal(80))) {
             level = "乙";
         }
         //得分≤80分为丙级
-        if (BigDecimalUtil.compareTo(score, new BigDecimal(80)) == 5) {
+        if (BigDecimalUtil.le(score, new BigDecimal(80))) {
             level = "丙";
         }
 
@@ -168,13 +168,13 @@ public class AlgorithmFacade {
             //结果先减去单票否决计分总和
             res = res.subtract(rejectScore);
             //结果小于0按0计算
-            if (BigDecimalUtil.compareTo(res, BigDecimal.ZERO) == 1) {
+            if (BigDecimalUtil.lt(res, BigDecimal.ZERO)) {
                 return BigDecimal.ZERO;
             } else {
                 //模块计分
                 for (Map.Entry<Long, BigDecimal> casesScore : casesScoreMap.entrySet()) {
                     BigDecimal allSccore = casesMap.get(casesScore.getKey());
-                    if (BigDecimalUtil.compareTo(allSccore, casesScore.getValue()) == 5) {
+                    if (BigDecimalUtil.le(allSccore, casesScore.getValue())) {
                         //模块标准分小于等于模块减分总和就用模块标准分
                         res = res.subtract(allSccore);
                     } else {
@@ -184,7 +184,7 @@ public class AlgorithmFacade {
                 }
             }
             //结果小于0按0计算
-            if (BigDecimalUtil.compareTo(res, BigDecimal.ZERO) == 1) {
+            if (BigDecimalUtil.lt(res, BigDecimal.ZERO)) {
                 res = BigDecimal.ZERO;
             }
         }
@@ -204,5 +204,8 @@ public class AlgorithmFacade {
         System.out.println("60:" + algorithmFacade.getLevel(new BigDecimal(60)));
         System.out.println("0:" + algorithmFacade.getLevel(new BigDecimal(0)));
 
+        if (BigDecimalUtil.lt(new BigDecimal(-1), BigDecimal.ZERO)) {
+            System.out.println(BigDecimal.ZERO);
+        }
     }
 }

+ 59 - 12
src/main/java/com/diagbot/util/BigDecimalUtil.java

@@ -31,33 +31,54 @@ public class BigDecimalUtil {
         );
     }
 
-    public static Integer compareTo(BigDecimal a, BigDecimal b) {
-        Integer res = 1;
+    //a小于b
+    public static Boolean lt(BigDecimal a, BigDecimal b) {
+        Boolean res = false;
         if (a.compareTo(b) == -1) {
-            res = 1;
-            //System.out.println("a小于b");
+            res = true;
         }
+        return res;
+
+    }
 
+    //a等于b
+    public static Boolean eq(BigDecimal a, BigDecimal b) {
+        Boolean res = false;
         if (a.compareTo(b) == 0) {
-            res = 2;
-            //System.out.println("a等于b");
+            res = true;
         }
+        return res;
+
+    }
 
+    //a大于b
+    public static Boolean gt(BigDecimal a, BigDecimal b) {
+        Boolean res = false;
         if (a.compareTo(b) == 1) {
-            res = 3;
-            //System.out.println("a大于b");
+            res = true;
         }
+        return res;
 
+    }
+
+    //a大于等于b
+    public static Boolean ge(BigDecimal a, BigDecimal b) {
+        Boolean res = false;
         if (a.compareTo(b) > -1) {
-            res = 4;
-            //System.out.println("a大于等于b");
+            res = true;
         }
+        return res;
 
+    }
+
+    //a小于等于b
+    public static Boolean le(BigDecimal a, BigDecimal b) {
+        Boolean res = false;
         if (a.compareTo(b) < 1) {
-            res = 5;
-            //System.out.println("a小于等于b");
+            res = true;
         }
         return res;
+
     }
 
     public static void main(String[] args) {
@@ -69,5 +90,31 @@ public class BigDecimalUtil {
         System.out.println(df2.format(a));
         System.out.println(df.format(b));
         System.out.println(df2.format(b));
+
+        System.out.println("====a小于b====");
+        System.out.println(lt(new BigDecimal(1.1), new BigDecimal(1)) == false);
+        System.out.println(lt(new BigDecimal(1), new BigDecimal(1)) == false);
+        System.out.println(lt(new BigDecimal(0.9), new BigDecimal(1)) == true);
+
+        System.out.println("====a等于b====");
+        System.out.println(eq(new BigDecimal(1.1), new BigDecimal(1)) == false);
+        System.out.println(eq(new BigDecimal(1), new BigDecimal(1)) == true);
+        System.out.println(eq(new BigDecimal(0.9), new BigDecimal(1)) == false);
+
+        System.out.println("====a大于b====");
+        System.out.println(gt(new BigDecimal(1.1), new BigDecimal(1)) == true);
+        System.out.println(gt(new BigDecimal(1), new BigDecimal(1)) == false);
+        System.out.println(gt(new BigDecimal(0.9), new BigDecimal(1)) == false);
+
+        System.out.println("====a大于等于b====");
+        System.out.println(ge(new BigDecimal(1.1), new BigDecimal(1)) == true);
+        System.out.println(ge(new BigDecimal(1), new BigDecimal(1)) == true);
+        System.out.println(ge(new BigDecimal(0.9), new BigDecimal(1)) == false);
+
+        System.out.println("====a小于等于b====");
+        System.out.println(le(new BigDecimal(1.1), new BigDecimal(1)) == false);
+        System.out.println(le(new BigDecimal(1), new BigDecimal(1)) == true);
+        System.out.println(le(new BigDecimal(0.9), new BigDecimal(1)) == true);
+
     }
 }