From cbc1828ae240e37a37670f2760b80649c11679e2 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 11 八月 2025 08:58:56 +0800 Subject: [PATCH] zjh20250811 --- ltkj-admin/src/test/java/zjhTest.java | 74 +++++++++++++++++++++++++++++-------- 1 files changed, 58 insertions(+), 16 deletions(-) diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java index 4294610..bea1f4b 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.date.DateUtil; import cn.hutool.core.io.FileUtil; 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; @@ -21,6 +23,9 @@ import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.io.BufferedReader; import java.io.InputStreamReader; @@ -33,6 +38,8 @@ import java.io.File; import java.io.IOException; +import static com.ltkj.framework.config.MatchUtils.getIdCardBirthDayStr; +import static com.ltkj.framework.config.MatchUtils.isIdCard; /** @@ -50,24 +57,32 @@ @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); } @@ -76,10 +91,37 @@ public static void main(String[] args) throws Exception { String s = "62272219610528411X"; - System.out.println(isValidIdCard(s) ? "鍚堟硶" : "闈炴硶"); + System.out.println(getBirthDayByIdCard(s)); } + + public static String getBirthDayByIdCard(String idCard) throws Exception { + if (!isIdCard(idCard)) { + throw new Exception("韬唤璇佷笉姝g‘"); + } + // 鑾峰彇韬唤璇佺殑鍑虹敓骞存湀鏃ヤ覆 + String birth = getIdCardBirthDayStr(idCard); + // 鑾峰彇骞存湀鏃� + int year = Integer.parseInt(birth.substring(0, 4)); + int month = Integer.parseInt(birth.substring(4, 6)); + int day = Integer.parseInt(birth.substring(6, 8)); + String sr = year + "-" + month + "-" + day; + + // 瑙f瀽涓� Date + Date date = DateUtil.parse(sr, "yyyy-MM-dd"); + // 杞崲涓� LocalDateTime + LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + // 璁剧疆鍥哄畾鏃跺垎绉� + dateTime = dateTime.withHour(12).withMinute(34).withSecond(56); + + // 鏍煎紡鍖栦负瀛楃涓茶繑鍥� + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return dateTime.format(formatter); + } + + + public static boolean isValidIdCard(String idCardNumber) { // 姝e垯琛ㄨ揪寮忥紝鍖归厤韬唤璇佸彿鐮佺殑鏍煎紡 String regex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; -- Gitblit v1.8.0