zjh
2024-12-03 06ef175a1e9f72b3863757319b2f6ff76c5a2f05
ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
@@ -2,6 +2,7 @@
import com.ltkj.common.utils.StringUtils;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
@@ -211,9 +212,9 @@
        if (matches && idCardBuilder.length() == SECOND_ID_CARD_LENGTH) {
            int index = getIdCardCheckIndex(idCardBuilder);
            // 获取传入身份证的检验码
            //String check = String.valueOf(idCardBuilder.charAt(idCardBuilder.length() - 1));
            String check = String.valueOf(idCardBuilder.charAt(idCardBuilder.length() - 1));
            // 检验码校验
            //return StringUtils.equalsIgnoreCase(CHECK_INDEX[index], check);
            return StringUtils.equalsIgnoreCase(CHECK_INDEX[index], check);
        }
        return matches;
    }
@@ -311,7 +312,7 @@
    /**
     * @desc 计算出校验码所在校验码数组的下标值
     */
    private static int getIdCardCheckIndex(StringBuilder idCardBuilder) {
    public static int getIdCardCheckIndex(StringBuilder idCardBuilder) {
        // 判断传入的是17位还是18位身份证号
        int length = idCardBuilder.length() == SECOND_ID_CARD_LENGTH ? idCardBuilder.length() - 1 : idCardBuilder.length();
        // 计算出校验码
@@ -367,6 +368,34 @@
        return nativePlace;
    }
    /**
     *  将excel表中科学计数格式的手机号转成字符串形式
     * @param  number
     * @return
     */
    public static String translateToPlainStr(String number) {
        if (null == number || number.trim().length() == 0) {
            return number;
        }
        String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regEx);
        // 忽略大小写的写法
        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(number);
        // 字符串是否与正则表达式相匹配
        boolean rs = matcher.matches();
        // 判断是否为字符串的科学计数法
        if(rs){
            // 科学计数法转数字
            BigDecimal originValue = new BigDecimal(number);
//            System.out.println("手机号为 ==> " + originValue.toPlainString());
            // 数字转字符串
            return originValue.toPlainString();
        }
        return number;
    }
    private static String getNameString(int code) {
        switch (code) {
            case 11: