From ad4326adc4ccad14f090fba5acb435deab8260db Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 22 七月 2025 16:09:14 +0800
Subject: [PATCH] zjh20250722

---
 ltkj-admin/src/test/java/zjhTest.java |  147 +++++++++++++++++++-----------------------------
 1 files changed, 58 insertions(+), 89 deletions(-)

diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java
index 0f94bb7..63f8201 100644
--- a/ltkj-admin/src/test/java/zjhTest.java
+++ b/ltkj-admin/src/test/java/zjhTest.java
@@ -1,22 +1,16 @@
 
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
-import cn.hutool.extra.pinyin.PinyinUtil;
-import com.ltkj.LtkjApplication;
-import com.ltkj.hosp.domain.TjProject;
-import com.ltkj.hosp.service.*;
+import com.ltkj.LtkjApplication;import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.hosp.domain.TjJcycxm;
+import com.ltkj.hosp.idutil.IdUtils;
+import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.joda.money.CurrencyUnit;
-import org.joda.money.Money;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.openqa.selenium.By;
 import org.openqa.selenium.Dimension;
 import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.WebElement;
 import org.openqa.selenium.chrome.ChromeDriver;
 import org.openqa.selenium.chrome.ChromeOptions;
-import org.openqa.selenium.support.ui.ExpectedConditions;
 import org.openqa.selenium.support.ui.WebDriverWait;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -25,24 +19,21 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.time.LocalTime;
-import java.time.ZonedDateTime;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.openqa.selenium.*;
-import org.springframework.core.io.ClassPathResource;
+
 import java.io.File;
 import java.io.IOException;
-import java.time.Duration;
 
-import static javafx.scene.input.ScrollEvent.VerticalTextScrollUnits.PAGES;
+
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
@@ -53,91 +44,69 @@
 @Slf4j
 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
 public class zjhTest {
-//
-//    @Autowired
-//    private ITjGroupingProService groupingProService;
+
     @Autowired
-    private ITjProjectService projectService;
-//    @Resource
-//    private ITjCustomerService tjCustomerService;
-//    @Resource
-//    private ITjPackageService tjPackageService;
-//
-//    @Resource
-//    private ITjOrderService tjOrderService;
-//    @Resource
-//    private ITjOrderDetailService tjOrderDetailService;
-//    @Resource
-//    private ITjOrderRemarkService remarkService;
-//
-//    @Resource
-//    private RedisCache redisCache;
-////
-//    @Autowired
-//    public RedisTemplate<Object,Object> redisTemplate;
-////    @Resource
-//    private StringRedisTemplate stringRedisTemplate;
-//@Resource
-//private IDictHospService dictHospService;
+    private IdUtils idUtils;
+
     @Value("${token.secret_key}")
     private String secret;
     @Test
-    public void test() {
+    public void test() throws InterruptedException {
 
-
-        List<TjProject> list = projectService.list();
-        for (TjProject project : list) {
-            project.setProEngName(PinyinUtil.getFirstLetter(project.getProName(),""));
-            projectService.updateById(project);
+        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);
+                }
+            });
         }
-/*
-
-// 鐢熸垚鎸囧畾url瀵瑰簲鐨勪簩缁寸爜鍒版枃浠讹紝瀹藉拰楂橀兘鏄�300鍍忕礌
-         QrCodeUtil.generate("https://ltpeis.xaltjdkj.cn:5516/1000110001240327094056%E7%8E%89%E5%BF%A0_%E4%BD%93%E6%A3%80%E6%8A%A5%E5%91%8A.pdf", 300, 300, FileUtil.file("D:\\Users\\w\\Desktop\\qrcode.jpg"));
-
-*/
-
-//        List<TjProject> list = projectService.list();
-//        for (TjProject tjProject : list) {
-//            tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
-//            projectService.updateById(tjProject);
-//        }
-//
-//        List<TjCustomer> list1 = tjCustomerService.list();
-//        for (TjCustomer customer : list1) {
-//            customer.setPym(PinyinUtil.getFirstLetter(customer.getCusName(),""));
-//            tjCustomerService.updateById(customer);
-//        }
-//
-//        List<TjPackage> list2 = tjPackageService.list();
-//        for (TjPackage tjPackage : list2) {
-//            tjPackage.setPym(PinyinUtil.getFirstLetter(tjPackage.getPacName(),""));
-//            tjPackageService.updateById(tjPackage);
-//        }
-
-
-//        PinyinUtil.getFirstLetter();
+        System.out.println(numbers);
+        executorService.shutdown(); // 鍏抽棴绾跨▼姹�
 
     }
 
+    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 {
 
+            String s = "62272219650528411X";
+            System.out.println(isValidIdCard(s) ? "鍚堟硶" : "闈炴硶");
 
-
-
-        public static void main(String[] args) {
-//            BigDecimal ordPrice =new BigDecimal("13.05");
-//            BigDecimal multiply = ordPrice.multiply((new BigDecimal("6.5").divide(BigDecimal.valueOf(10))));
-//            System.out.println(multiply);
-
-            String a="1,4";
-            String[] split = a.split(",|锛寍銆倈锛殀:");
-            List<String> list = Arrays.asList(split);
-            log.info("鍙傛暟閰嶇疆閲岄潰鐨勫�间负 list :"+list);
-
-            System.out.println( list.contains("1"));
         }
 
+    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