develop
hanrenchun 9 months ago
parent 1829fd77f7
commit 790c8c3a73

@ -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<JcjCjxxViewMysql> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("status");
Page<JcjCjxxViewMysql> page = new Page<>(1, 1000);
List<JcjCjxxViewMysql> 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();
}
}
Loading…
Cancel
Save