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 | 173 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 96 insertions(+), 77 deletions(-) diff --git a/ltkj-admin/src/test/java/zjhTest.java b/ltkj-admin/src/test/java/zjhTest.java index 24ea44f..bea1f4b 100644 --- a/ltkj-admin/src/test/java/zjhTest.java +++ b/ltkj-admin/src/test/java/zjhTest.java @@ -1,22 +1,18 @@ 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 com.ltkj.system.service.ISysConfigService; +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,23 +21,26 @@ 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.List; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +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; +import static com.ltkj.framework.config.MatchUtils.getIdCardBirthDayStr; +import static com.ltkj.framework.config.MatchUtils.isIdCard; + /** * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞� @@ -52,84 +51,104 @@ @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; + + @Autowired + private ISysConfigService configService; @Test - public void 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(); // 鍏抽棴绾跨▼姹� +// 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); - List<TjProject> list = projectService.list(); - for (TjProject project : list) { - project.setProEngName(PinyinUtil.getFirstLetter(project.getProName(),"")); - projectService.updateById(project); + } + + 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 = "62272219610528411X"; + System.out.println(getBirthDayByIdCard(s)); + } -/* - -// 鐢熸垚鎸囧畾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(); + 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)$)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(idCardNumber); - - - 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); + // 鍒ゆ柇鏄惁鍖归厤韬唤璇佸彿鐮佺殑鏍煎紡 + 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