From 9ac01b48ef00a0855306d72e8c680b912a9a8d03 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 07 八月 2025 08:44:50 +0800 Subject: [PATCH] zjh20250807 --- ltkj-admin/src/test/java/zjhTest.java | 80 ++++++++++++++++++++++++++++++--------- 1 files changed, 61 insertions(+), 19 deletions(-) diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java index 761b949..4f48657 100644 --- a/ltkj-admin/src/test/java/zjhTest.java +++ b/ltkj-admin/src/test/java/zjhTest.java @@ -1,8 +1,10 @@ import cn.hutool.core.io.FileUtil; -import com.ltkj.LtkjApplication; -import com.ltkj.framework.config.MatchUtils; +import com.ltkj.LtkjApplication;import com.ltkj.framework.config.MatchUtils; +import com.ltkj.hosp.domain.TjJcycxm; import com.ltkj.hosp.idutil.IdUtils; +import com.ltkj.system.service.ISysConfigService; +import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; @@ -31,6 +33,9 @@ import java.io.File; import java.io.IOException; + + + /** * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞� * @Date: 2022/12/12 9:05 @@ -46,34 +51,71 @@ @Value("${token.secret_key}") private String secret; + + @Autowired + private ISysConfigService configService; @Test public void test() throws InterruptedException { +// +// ExecutorService executorService = Executors.newFixedThreadPool(20); // 20涓嚎绋嬫睜 +// Set<String> numbers = Collections.synchronizedSet(new HashSet<>()); // 绾跨▼瀹夊叏鐨凷et锛屽瓨鏀剧敓鎴愮殑缂栧彿 +// // 骞跺彂鎵ц +// for (int i = 0; i < 20; i++) { +// executorService.execute(() -> { +// try { +// String number = idUtils.getNewTjNumberRedisLock(); // 璋冪敤鑾峰彇缂栧彿鐨勬柟娉� +// numbers.add(number); // 娣诲姞鍒� Set +// } catch (RuntimeException e) { +// throw new RuntimeException(e); +// } +// }); +// } +// System.out.println(numbers); +// executorService.shutdown(); // 鍏抽棴绾跨▼姹� - ExecutorService executorService = Executors.newFixedThreadPool(20); // 20涓嚎绋嬫睜 - Set<String> numbers = Collections.synchronizedSet(new HashSet<>()); // 绾跨▼瀹夊叏鐨凷et锛屽瓨鏀剧敓鎴愮殑缂栧彿 - // 骞跺彂鎵ц - for (int i = 0; i < 20; i++) { - executorService.execute(() -> { - try { - String number = idUtils.getNewTjNumberRedisLock(); // 璋冪敤鑾峰彇缂栧彿鐨勬柟娉� - numbers.add(number); // 娣诲姞鍒� Set - } catch (RuntimeException e) { - throw new RuntimeException(e); - } - }); - } - System.out.println(numbers); - executorService.shutdown(); // 鍏抽棴绾跨▼姹� +// String regex = configService.selectConfigByKey("jcycxmzz"); +// String input = "鍙充晶棰堟�诲姩鑴夊彲瑙佽寖鍥�4.2x1.3mm鏂戝潡锛涘乏渚ч鍐呭姩鑴夊彲瑙佽寖鍥�7.8x1.5mm鏂戝潡锛屼綑绠¤厰鍐呮湭瑙佹槑鏄惧紓甯稿洖澹帮紝CDFI锛氬叾鍐呭僵鑹茶娴佸厖鐩堣壇濂斤紝琛�娴侀�熷害姝e父"; +// String[] split = input.replaceAll("\n", "").split(regex); +// System.out.println(split); } + private static final String[] CHECK_INDEX = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"}; public static void main(String[] args) throws Exception { - System.out.println(MatchUtils.isIdCard("622723197401030409")); - System.out.println(MatchUtils.isMobileNO("15346732733")); + String s = "62272219610528411X"; + System.out.println(isValidIdCard(s) ? "鍚堟硶" : "闈炴硶"); + } + public static boolean isValidIdCard(String idCardNumber) { + // 姝e垯琛ㄨ揪寮忥紝鍖归厤韬唤璇佸彿鐮佺殑鏍煎紡 + String regex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(idCardNumber); + + // 鍒ゆ柇鏄惁鍖归厤韬唤璇佸彿鐮佺殑鏍煎紡 + if (!matcher.matches()) { + return false; + } + + // 楠岃瘉韬唤璇佸彿鐮佷腑鐨勬牎楠屼綅 + if (idCardNumber.length() == 18) { + int[] weights = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; + char[] chars = idCardNumber.toCharArray(); + int sum = 0; + for (int i = 0; i < weights.length; i++) { + sum += (chars[i] - '0') * weights[i]; + } + char[] checkCodes = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; + char checkCode = checkCodes[sum % 11]; + return chars[17] == checkCode || (chars[17] == 'x' && checkCode == 'X'); + } + + return true; + } + /** * 鎵ц鐢熸垚 -- Gitblit v1.8.0