| | |
| | | |
| | | 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.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 |
| | |
| | | @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<>()); // 线程安全的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); |
| | | } |
| | | }); |
| | | } |
| | | 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 { |
| | | List<String> numbers = Arrays.asList( |
| | | "25032800283", "25032800284", "25032800285", "25032800286", |
| | | "25032800287", "25032800288", "25032800289", "25032800290", |
| | | "25032800291", "25032800292", "25032800293", "25032800294", |
| | | "25032800295", "25032800296", "25032800297", "25032800298", |
| | | "25032800299", "25032800300", "25032800301", "25032800302", |
| | | "25032800303", "25032800304", "25032800305", "25032800306", |
| | | "25032800307", "25032800308", "25032800309", "25032800310", |
| | | "25032800311", "25032800312", "25032800313", "25032800314", |
| | | "25032800315", "25032800316", "25032800317", "25032800318", |
| | | "25032800319", "25032800320", "25032800321", "25032800322", |
| | | "25032800323", "25032800324", "25032800325", "25032800326", |
| | | "25032800327", "25032800328", "25032800329", "25032800330", |
| | | "25032800331", "25032800332", "25032800333", "25032800334", |
| | | "25032800335", "25032800336", "25032800337", "25032800338", |
| | | "25032800339", "25032800340", "25032800341", "25032800342", |
| | | "25032800343", "25032800344", "25032800345", "25032800346", |
| | | "25032800347", "25032800348", "25032800349", "25032800350", |
| | | "25032800351", "25032800352", "25032800353", "25032800354", |
| | | "25032800355", "25032800356", "25032800357", "25032800358", |
| | | "25032800359", "25032800360", "25032800361", "25032800362", |
| | | "25032800363", "25032800364", "25032800365", "25032800366", |
| | | "25032800367", "25032800368", "25032800369", "25032800370", |
| | | "25032800371", "25032800372", "25032800373", "25032800374" |
| | | ); |
| | | |
| | | Set<String> uniqueNumbers = new HashSet<>(numbers); |
| | | if (uniqueNumbers.size() == numbers.size()) { |
| | | System.out.println("✅ 没有重复编号!"); |
| | | } else { |
| | | System.out.println("❌ 发现重复编号!"); |
| | | numbers.stream() |
| | | .filter(n -> Collections.frequency(numbers, n) > 1) |
| | | .distinct() |
| | | .forEach(n -> System.out.println("重复的编号:" + n)); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 执行生成 |
| | | * @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(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 将科学计数法文本转换成字符文本 |
| | | * @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); |
| | | |
| | | // 打开连接 |
| | | 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 大 |