From 6d09c6301492d3095ff64dba2336f0d0b69638e6 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 10 四月 2025 18:04:44 +0800
Subject: [PATCH] zjh20250410

---
 ltkj-admin/src/test/java/zjhTest.java |  206 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 153 insertions(+), 53 deletions(-)

diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java
index 7662430..761b949 100644
--- a/ltkj-admin/src/test/java/zjhTest.java
+++ b/ltkj-admin/src/test/java/zjhTest.java
@@ -1,37 +1,36 @@
 
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUnit;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
-import cn.hutool.extra.qrcode.QrCodeUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.LtkjApplication;
-import com.ltkj.common.core.redis.RedisCache;
-import com.ltkj.common.utils.SecurityUtils;
-import com.ltkj.hosp.domain.DictHosp;
-import com.ltkj.hosp.domain.TjProject;
-import com.ltkj.hosp.service.*;
+import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.hosp.idutil.IdUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.openqa.selenium.Dimension;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.support.ui.WebDriverWait;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.data.redis.core.Cursor;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.ScanOptions;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.web.bind.annotation.PostMapping;
+import java.math.BigDecimal;
+import java.net.HttpURLConnection;
+import java.net.URL;
+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 javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-
+import java.io.File;
+import java.io.IOException;
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
  * @Date: 2022/12/12 9:05
@@ -41,47 +40,148 @@
 @Slf4j
 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
 public class zjhTest {
-//
-//    @Autowired
-//    private ITjGroupingProService groupingProService;
+
     @Autowired
-    private ITjProjectService projectService;
-//
-//    @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 {
 
-// 鐢熸垚鎸囧畾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"));
-
+        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(); // 鍏抽棴绾跨▼姹�
 
     }
 
 
-//    public static void main(String[] args) {
-//
-//        String a ="1,2,3";
-//        boolean contains = a.contains("1");
-//        System.out.println(contains);
-//
-//    }
+        public static void main(String[] args) throws Exception {
+
+            System.out.println(MatchUtils.isIdCard("622723197401030409"));
+            System.out.println(MatchUtils.isMobileNO("15346732733"));
+        }
+
+
+    /**
+     * 鎵ц鐢熸垚
+     * @param filePath 鍥剧墖鐢熸垚璺緞
+     * @return 鏄惁鎴愬姛
+     */
+    private void chrome(String filePath) throws IOException {
+        System.setProperty("webdriver.chrome.driver", "D:\\tools\\chromedriver.exe");
+        ChromeOptions options = new ChromeOptions();
+        options.setBinary("D:\\tools\\124063440\\chrome.exe");
+        options.addArguments("--headless");  // 鍚敤鏃犲ご妯″紡
+        options.addArguments("--disable-gpu");  // 绂佺敤GPU鍔犻��
+        options.addArguments("--no-sandbox");  // 绂佺敤娌欑洅妯″紡锛堝彲閫夛紝閫傜敤浜庢煇浜汱inux鐜锛�
+        System.setProperty("webdriver.chrome.verboseLogging", "true");
+        WebDriver driver = null;
+        try {
+            driver = new ChromeDriver(options);
+            driver.manage().window().setSize(new Dimension(600, 730));
+            driver.get("www.baidu.com");
+            WebDriverWait wait = new WebDriverWait(driver,10);
+            File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
+            FileUtil.copyFile(screenshot, new File("D:\\"+filePath));
+        }catch (Exception e){
+            log.error("鐜╁淇℃伅寮傚父 ->{}",String.valueOf(e));
+        }finally {
+            if (driver != null)
+                driver.quit();
+        }
+    }
+
+    /**
+     * 灏嗙瀛﹁鏁版硶鏂囨湰杞崲鎴愬瓧绗︽枃鏈�
+     * @param number
+     * @return
+     */
+    public static String translateToPlainStr(String number) {
+
+        return getString(number);
+    }
+
+    private static String getString(String number) {
+        if (null == number || number.trim().length() == 0) {
+            return number;
+        }
+        String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";
+        // 缂栬瘧姝e垯琛ㄨ揪寮�
+        Pattern pattern = Pattern.compile(regEx);
+        // 蹇界暐澶у皬鍐欑殑鍐欐硶
+        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(number);
+        // 瀛楃涓叉槸鍚︿笌姝e垯琛ㄨ揪寮忕浉鍖归厤
+        boolean rs = matcher.matches();
+        // 鍒ゆ柇鏄惁涓哄瓧绗︿覆鐨勭瀛﹁鏁版硶
+        if(rs){
+            // 绉戝璁℃暟娉曡浆鏁板瓧
+            BigDecimal originValue = new BigDecimal(number);
+            System.out.println("鎵嬫満鍙蜂负 ==> " + originValue.toPlainString());
+            // 鏁板瓧杞瓧绗︿覆
+            return originValue.toPlainString();
+        }
+        return number;
+    }
+
+
+    public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
+            // 鍒涘缓URL瀵硅薄
+            URL url = new URL(forwardUrl);
+
+            // 鎵撳紑杩炴帴
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+
+            // 璁剧疆璇锋眰鏂规硶
+            connection.setRequestMethod("GET");
+
+            // 璁剧疆璇锋眰澶达紝渚嬪Referer鎴栧叾浠栦綘闇�瑕佽浆鍙戠殑澶翠俊鎭�
+            connection.setRequestProperty("Referer", targetUrl);
+
+            // 杩炴帴
+            connection.connect();
+
+            // 妫�鏌ュ搷搴斾唬鐮�
+            int responseCode = connection.getResponseCode();
+            if (responseCode == HttpURLConnection.HTTP_OK) {
+                // 璇诲彇鏈嶅姟鍣ㄥ搷搴�
+                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+                String inputLine;
+                StringBuilder response = new StringBuilder();
+
+                while ((inputLine = in.readLine()) != null) {
+                    response.append(inputLine);
+                }
+
+                in.close();
+
+                // 鎵撳嵃鏈嶅姟鍣ㄥ搷搴�
+                System.out.println(response.toString());
+            } else {
+                System.out.println("GET request not worked");
+            }
+
+            // 鍏抽棴杩炴帴
+            connection.disconnect();
+        }
+
+
+
+
+
 //
 //    public static String getAdd(String log, String lat ){
 //        //lat 灏�  log  澶�

--
Gitblit v1.8.0