Quellcode durchsuchen

Merge remote-tracking branch 'origin/develop' into dev/mapping_20210824

zhaops vor 3 Jahren
Ursprung
Commit
b4933de398
2 geänderte Dateien mit 139 neuen und 0 gelöschten Zeilen
  1. 114 0
      common/src/main/java/com/diagbot/util/AgeUtil.java
  2. 25 0
      mrqcman-service/.gitignore

+ 114 - 0
common/src/main/java/com/diagbot/util/AgeUtil.java

@@ -0,0 +1,114 @@
+package com.diagbot.util;
+
+import java.math.BigDecimal;
+
+/**
+ * @description: 年龄工具类
+ * @author: zhoutg
+ * @time: 2020/7/30 15:18
+ */
+public class AgeUtil {
+
+    /**
+     * 年龄字符串转换成double类型
+     *
+     * @param ageStr
+     * @return
+     */
+    public static Double convertAge(String ageStr) {
+        try {
+            // 防止程序出错
+            if (StringUtil.isEmpty(ageStr)) {
+                return 20.0;
+            }
+            // 数值,当成年龄处理
+            if (isNumbers(ageStr)) {
+                return Double.parseDouble(ageStr);
+            }
+            // 20日 | 20天
+            if (ageStr.endsWith("日") || ageStr.endsWith("天")) {
+                return getHalfUp((Double.parseDouble(ageStr.substring(0, ageStr.length() - 1))) / 365);
+            }
+            // 3岁
+            if (ageStr.endsWith("岁")) {
+                return Double.parseDouble(ageStr.substring(0, ageStr.length() - 1));
+            }
+            // 3岁7个月 | 3岁7月
+            if (ageSuiYue(ageStr)) {
+                String[] ageArr = new String[2];
+                int indexSui = ageStr.indexOf("岁");
+                ageArr[0] = ageStr.substring(0, indexSui);
+                if (ageStr.indexOf("个月") > -1) { // 3岁7个月
+                    ageArr[1] = ageStr.substring(indexSui + 1, ageStr.indexOf("个月"));
+                } else { // 3岁7月
+                    ageArr[1] = ageStr.substring(indexSui + 1, ageStr.indexOf("月"));
+                }
+                return Double.parseDouble(ageArr[0]) + getHalfUp(Double.parseDouble(ageArr[1]) / 12);
+            }
+            // 1.08月 | .11月 | 3月
+            if (ageYue(ageStr)) {
+                String noUnit = ageStr.substring(0, ageStr.length() - 1);
+                return getHalfUp(Double.parseDouble(noUnit) / 12);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 20.0;
+        }
+        return 20.0;
+    }
+
+    /**
+     * 判断字符串是否 仅 包含数字
+     *
+     * @param str
+     * @return
+     */
+    public static boolean numbersOnly(String str) {
+        String regex = "^[0-9]+$";
+        return str.matches(regex);
+    }
+
+    /**
+     * 判断字符串是否数值(正)
+     *
+     * @param str
+     * @return
+     */
+    public static boolean isNumbers(String str) {
+        String regex = "[0-9]+|([0-9]+\\.)+[0-9]*|[0-9]*(\\.[0-9]+)+";
+        return str.matches(regex);
+    }
+
+    /**
+     * 判断年龄字符串:xx月
+     *
+     * @param str
+     * @return
+     */
+    public static boolean ageYue(String str) {
+        String regex = "^[0-9]*[\\.]*[0-9]{1,2}月$";
+        return str.matches(regex);
+    }
+
+    /**
+     * 判断年龄字符串:3岁7个月
+     *
+     * @param str
+     * @return
+     */
+    public static boolean ageSuiYue(String str) {
+        String regex = "^[0-9]{1,3}岁[0-9]{1,2}个{0,1}月$";
+        return str.matches(regex);
+    }
+
+    /**
+     * 四舍五入保留2位小数
+     *
+     * @param ageStr
+     * @return
+     */
+    public static Double getHalfUp(Double ageStr) {
+        BigDecimal bg = new BigDecimal(String.valueOf(ageStr));
+        return bg.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+    }
+}

+ 25 - 0
mrqcman-service/.gitignore

@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/