| | |
| | | |
| | | import cn.hutool.core.io.FileUtil; |
| | | import com.ltkj.LtkjApplication; |
| | | import com.ltkj.framework.config.MatchUtils; |
| | | 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.io.File; |
| | | import java.io.IOException; |
| | | |
| | | |
| | | |
| | | /** |
| | | * @Author: 西安路泰科技有限公司/赵佳豪 |
| | | * @Date: 2022/12/12 9:05 |
| | |
| | | |
| | | @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); |
| | | |
| | | } |
| | | |
| | | 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 = "L4/5、L5/S1椎间盘突出,腰椎椎体轻度骨质增生。"; |
| | | String s = "62272219610528411X"; |
| | | System.out.println(isValidIdCard(s) ? "合法" : "非法"); |
| | | |
| | | String[] split = s.replaceAll("\n", "").split("。|;|;"); |
| | | for (String jg : split) { |
| | | if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常") |
| | | && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见") |
| | | && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")){ |
| | | System.out.println(1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static boolean isValidIdCard(String idCardNumber) { |
| | | // 正则表达式,匹配身份证号码的格式 |
| | | String regex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; |
| | | Pattern pattern = Pattern.compile(regex); |
| | | Matcher matcher = pattern.matcher(idCardNumber); |
| | | |
| | | // 判断是否匹配身份证号码的格式 |
| | | 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; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 执行生成 |