From 790c8c3a73af4ffce98b43ffb7585afb19b16926 Mon Sep 17 00:00:00 2001 From: hanrenchun Date: Thu, 14 Dec 2023 17:31:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=A4=84=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/MetaHandleAlarmTask.java | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java diff --git a/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java b/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java new file mode 100644 index 0000000..54dfcc9 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/MetaHandleAlarmTask.java @@ -0,0 +1,141 @@ +package com.ssf.mysqloracletest.task; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ssf.mysqloracletest.domain.JcjCjxxViewMysql; +import com.ssf.mysqloracletest.domain.MetaHandleAlarmInfo; +import com.ssf.mysqloracletest.service.JcjCjxxViewMysqlService; +import com.ssf.mysqloracletest.service.MetaHandleAlarmInfoService; +import com.ssf.mysqloracletest.utils.ConfigParam; +import com.ssf.mysqloracletest.utils.StringKit; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 用户数据接入 + */ +@Component +@RequiredArgsConstructor +public class MetaHandleAlarmTask { + + private static final Logger logger = LoggerFactory.getLogger(MetaHandleAlarmTask.class); + + private final MetaHandleAlarmInfoService metaHandleAlarmInfoService; + private final JcjCjxxViewMysqlService jcjCjxxViewMysqlService; + + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void transcjxx() { + + + if (!"true".equals(ConfigParam.metaHandleAlarmSwitch)) { + return; + } + + + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.isNull("status"); + Page page = new Page<>(1, 1000); + List resultList = jcjCjxxViewMysqlService.page(page, queryWrapper).getRecords(); + CountDownLatch latch = new CountDownLatch(resultList.size()); +// ExecutorService cjxxPool = Executors.newFixedThreadPool(5); + + for (JcjCjxxViewMysql bean : resultList) { +// cjxxPool.submit(() -> { + cleanCjxx(bean); + latch.countDown(); +// }); + } + + + try { + // Wait for all threads to complete + latch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 关闭线程池 +// cjxxPool.shutdown(); + + } catch (Exception e) { + logger.info(StringKit.getTrace(e)); + } + } + + private void cleanCjxx(JcjCjxxViewMysql bean) { + JcjCjxxViewMysql cjxx = new JcjCjxxViewMysql(); + try { + BeanUtils.copyProperties(bean, cjxx); + MetaHandleAlarmInfo metaHandleAlarmInfo = new MetaHandleAlarmInfo(); + metaHandleAlarmInfo.setAlarmCode(cjxx.getJJBH()); + metaHandleAlarmInfo.setHandleAlarmUnit(cjxx.getCJDWMC()); + metaHandleAlarmInfo.setHandleAlarmTime(cjxx.getCJSJ()); + metaHandleAlarmInfo.setHandleAlarmContent(cjxx.getCLJGNR()); + metaHandleAlarmInfo.setHandleAlarmAddress(cjxx.getCJXXDD()); + if (!containsChinese(cjxx.getCJR())) { + metaHandleAlarmInfo.setHandleAlarmUser(cjxx.getCJRHZXS()); + metaHandleAlarmInfo.setHandleAlarmUserCode(cjxx.getCJR()); + }else { + String s = extractChinese(cjxx.getCJR()); + String s1 = extractNonChinese(cjxx.getCJR()); + String substring = s1.substring(0, s1.length() - 1); + if (cjxx.getCJRHZXS()!=null) { + metaHandleAlarmInfo.setHandleAlarmUser(cjxx.getCJRHZXS() +","+ s); + }else { + metaHandleAlarmInfo.setHandleAlarmUser(s); + } + metaHandleAlarmInfo.setHandleAlarmUserCode(substring); + } + metaHandleAlarmInfo.setHandleAlarmResult(cjxx.getCJJGMC()); + boolean save = metaHandleAlarmInfoService.save(metaHandleAlarmInfo); + if (save) { + cjxx.setStatus("1"); + jcjCjxxViewMysqlService.updateCjxxById(cjxx); + } + } catch (Exception e) { + logger.info(StringKit.getTrace(e)); + cjxx.setStatus("2"); + jcjCjxxViewMysqlService.updateCjxxById(cjxx); + } + + } + + private static boolean containsChinese(String str) { + Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); + Matcher matcher = pattern.matcher(str); + return matcher.find(); + } + + // 提取字符串中的中文 + private static String extractChinese(String str) { + Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); + Matcher matcher = pattern.matcher(str); + + StringBuilder chineseCharacters = new StringBuilder(); + while (matcher.find()) { + chineseCharacters.append(matcher.group()); + } + return chineseCharacters.toString(); + } + + private static String extractNonChinese(String str) { + Pattern pattern = Pattern.compile("[^\u4e00-\u9fa5]"); + Matcher matcher = pattern.matcher(str); + + StringBuilder nonChineseCharacters = new StringBuilder(); + while (matcher.find()) { + nonChineseCharacters.append(matcher.group()); + } + + return nonChineseCharacters.toString(); + } +}