| | |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.io.FileUtil; |
| | | 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.junit.Test; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | 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.io.File; |
| | | import java.io.IOException; |
| | | |
| | | import static com.ltkj.framework.config.MatchUtils.getIdCardBirthDayStr; |
| | | import static com.ltkj.framework.config.MatchUtils.isIdCard; |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | @Value("${token.secret_key}") |
| | | private String secret; |
| | | |
| | | @Autowired |
| | | private ISysConfigService configService; |
| | | @Test |
| | | public void test() throws InterruptedException { |
| | | // |
| | | // 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(); // 关闭线程池 |
| | | |
| | | 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(); // 关闭线程池 |
| | | // String regex = configService.selectConfigByKey("jcycxmzz"); |
| | | // String input = "右侧颈总动脉可见范围4.2x1.3mm斑块;左侧颈内动脉可见范围7.8x1.5mm斑块,余管腔内未见明显异常回声,CDFI:其内彩色血流充盈良好,血流速度正常"; |
| | | // String[] split = input.replaceAll("\n", "").split(regex); |
| | | // System.out.println(split); |
| | | |
| | | } |
| | | |
| | |
| | | public static void main(String[] args) throws Exception { |
| | | |
| | | String s = "62272219610528411X"; |
| | | System.out.println(isValidIdCard(s) ? "合法" : "非法"); |
| | | System.out.println(getBirthDayByIdCard(s)); |
| | | |
| | | } |
| | | |
| | | |
| | | public static String getBirthDayByIdCard(String idCard) throws Exception { |
| | | if (!isIdCard(idCard)) { |
| | | throw new Exception("身份证不正确"); |
| | | } |
| | | // 获取身份证的出生年月日串 |
| | | 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; |
| | | |
| | | // 解析为 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) { |
| | | // 正则表达式,匹配身份证号码的格式 |
| | | String regex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; |