zjh
2025-06-18 b115eea2b161adddeb92c5e885019aba8763bb0e
ltkj-admin/src/test/java/zjhTest.java
@@ -1,52 +1,38 @@
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.pinyin.PinyinUtil;
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.framework.config.MatchUtils;
import com.ltkj.hosp.domain.DictHosp;
import com.ltkj.hosp.domain.TjCustomer;
import com.ltkj.hosp.domain.TjPackage;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.domain.TjJcycxm;
import com.ltkj.hosp.idutil.IdUtils;
import jodd.util.StringUtil;
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 javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Properties;
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 java.io.File;
import java.io.IOException;
/**
 * @Author: 西安路泰科技有限公司/赵佳豪
 * @Date: 2022/12/12 9:05
@@ -56,86 +42,108 @@
@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<>()); // 线程安全的Set,存放生成的编号
        // 并发执行
        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(); // 关闭线程池
    }
        public static void main(String[] args) throws Exception {
            String s = "610124199809053678";
            String s1 = "610622199805230627";
            System.out.println(String.valueOf(MatchUtils.getAgeByIdCard(s)));
            System.out.println(String.valueOf(MatchUtils.getAgeByIdCard(s1)));
        public static void main(String[] args) {
//            System.out.println(DateUtil.date());
//            System.out.println(DateUtil.offsetMonth(DateUtil.date(),-1));
        }
    /**
     * 执行生成
     * @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");  // 禁用沙盒模式(可选,适用于某些Linux环境)
        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();
        }
    }
        public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
    /**
     * 将科学计数法文本转换成字符文本
     * @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+)$";
        // 编译正则表达式
        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;
    }
    public static void forwardUrl(String targetUrl, String forwardUrl) throws Exception {
            // 创建URL对象
            URL url = new URL(forwardUrl);