接警信息实时数据更新

develop
hanrenchun 10 months ago
parent d10dcfc2f6
commit 8942291ddf

@ -10,4 +10,6 @@ public interface JcjJjxxViewOracleMapper {
public int countJjxx(); public int countJjxx();
public List<JcjJjxxViewOracle> getJjxxList(Map map); public List<JcjJjxxViewOracle> getJjxxList(Map map);
public List<JcjJjxxViewOracle> getRealTimeRecording(String maxTime);
} }

@ -9,4 +9,6 @@ public interface JcjJxxViewMysqlMapper extends BaseMapper<JcjJjxxViewMysql> {
public int insertJjxx(JcjJjxxViewMysql bean); public int insertJjxx(JcjJjxxViewMysql bean);
public int updateJjxxByJJBH(JcjJjxxViewMysql bean); public int updateJjxxByJJBH(JcjJjxxViewMysql bean);
public JcjJjxxViewMysql selectRecordOrderByRksj();
} }

@ -15,4 +15,6 @@ public interface JcjJjxxViewMysqlService extends IService<JcjJjxxViewMysql>{
public int updateJjxxByJJBH(JcjJjxxViewMysql bean); public int updateJjxxByJJBH(JcjJjxxViewMysql bean);
public JcjJjxxViewMysql selectRecordOrderByRksj();
} }

@ -15,4 +15,6 @@ public interface JcjJjxxViewOracleService{
public int countJjxx(); public int countJjxx();
public List<JcjJjxxViewOracle> getJjxxList(Map map); public List<JcjJjxxViewOracle> getJjxxList(Map map);
public List<JcjJjxxViewOracle> getRealTimeRecording(String maxTime);
} }

@ -34,6 +34,11 @@ public class JcjJjxxViewMysqlServiceImpl extends ServiceImpl<JcjJxxViewMysqlMapp
public int updateJjxxByJJBH(JcjJjxxViewMysql bean) { public int updateJjxxByJJBH(JcjJjxxViewMysql bean) {
return jcxxMapper.updateJjxxByJJBH(bean); return jcxxMapper.updateJjxxByJJBH(bean);
} }
@Override
public JcjJjxxViewMysql selectRecordOrderByRksj() {
return jcxxMapper.selectRecordOrderByRksj();
}
} }

@ -31,6 +31,11 @@ public class JcjJjxxViewOracleServiceImpl implements JcjJjxxViewOracleService {
public List<JcjJjxxViewOracle> getJjxxList(Map map) { public List<JcjJjxxViewOracle> getJjxxList(Map map) {
return oracleMapper.getJjxxList(map); return oracleMapper.getJjxxList(map);
} }
@Override
public List<JcjJjxxViewOracle> getRealTimeRecording(String maxTime) {
return oracleMapper.getRealTimeRecording(maxTime);
}
} }

@ -1,115 +1,145 @@
//package com.ssf.mysqloracletest.task; package com.ssf.mysqloracletest.task;
//
//import com.ssf.mysqloracletest.domain.JcjJjxxViewMysql; import com.ssf.mysqloracletest.domain.JcjJjxxViewMysql;
//import com.ssf.mysqloracletest.domain.JcjJjxxViewOracle; import com.ssf.mysqloracletest.domain.JcjJjxxViewOracle;
//import com.ssf.mysqloracletest.service.JcjJjxxViewMysqlService; import com.ssf.mysqloracletest.service.JcjJjxxViewMysqlService;
//import com.ssf.mysqloracletest.service.JcjJjxxViewOracleService; import com.ssf.mysqloracletest.service.JcjJjxxViewOracleService;
//import com.ssf.mysqloracletest.utils.ConfigParam; import com.ssf.mysqloracletest.utils.ConfigParam;
//import com.ssf.mysqloracletest.utils.NumKit; import com.ssf.mysqloracletest.utils.NumKit;
//import com.ssf.mysqloracletest.utils.StringKit; import com.ssf.mysqloracletest.utils.StringKit;
//import org.slf4j.Logger; import org.slf4j.Logger;
//import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
//import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
//import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource; import javax.annotation.Resource;
//import java.util.HashMap; import java.util.HashMap;
//import java.util.List; import java.util.List;
//import java.util.Map; import java.util.Map;
//import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
//import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
//import java.util.concurrent.Executors; import java.util.concurrent.Executors;
//
///** /**
// * 用户数据接入 *
// */ */
//@Component @Component
//public class JcjJjxxTask { public class JcjJjxxTask {
//
// private static final Logger logger = LoggerFactory.getLogger(JcjJjxxTask.class); private static final Logger logger = LoggerFactory.getLogger(JcjJjxxTask.class);
//
// @Resource @Resource
// private JcjJjxxViewMysqlService jcjJjxxViewMysqlService; private JcjJjxxViewMysqlService jcjJjxxViewMysqlService;
//
// @Resource @Resource
// private JcjJjxxViewOracleService jcjJjxxViewOracleService; private JcjJjxxViewOracleService jcjJjxxViewOracleService;
//
// final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts); final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
//
// private boolean JjxxTag = false; private boolean JjxxTag = false;
//
// /** /**
// * 连云港 对接海康平台获取人员基础数据 *
// * // * //
// */ */
// @Scheduled(initialDelay = 100, fixedDelay = 3000) @Scheduled(initialDelay = 100, fixedDelay = 3000)
// public void transJjxx() { public void transJjxx() {
//
// if (JjxxTag) { if (JjxxTag) {
// return; return;
// } }
//
// if (!"true".equals(ConfigParam.JjxxSwitch)) { if (!"true".equals(ConfigParam.JjxxSwitch)) {
// return; return;
// } }
//
//
// try { try {
// int countJjxx = jcjJjxxViewOracleService.countJjxx(); int countJjxx = jcjJjxxViewOracleService.countJjxx();
// logger.info("countJjxx:" + countJjxx); logger.info("countJjxx:" + countJjxx);
//
// logger.info("countJjxx:" + countJjxx); logger.info("countJjxx:" + countJjxx);
// if (countJjxx > 0) { if (countJjxx > 0) {
//
// JjxxTag = true; JjxxTag = true;
//
// int count = countJjxx / oncesCounts; int count = countJjxx / oncesCounts;
// CountDownLatch latch = new CountDownLatch(count); CountDownLatch latch = new CountDownLatch(count);
// ExecutorService JjxxPool = Executors.newFixedThreadPool(50); ExecutorService JjxxPool = Executors.newFixedThreadPool(50);
//
// for (int i = 0; i <= count; i++) { for (int i = 0; i <= count; i++) {
// Map JjxxMap = new HashMap(); Map JjxxMap = new HashMap();
// JjxxMap.put("rowStart", i * oncesCounts); JjxxMap.put("rowStart", i * oncesCounts);
// JjxxMap.put("rowEnd", (i + 1) * oncesCounts); JjxxMap.put("rowEnd", (i + 1) * oncesCounts);
// JjxxPool.submit(() -> { JjxxPool.submit(() -> {
// try { try {
// List<JcjJjxxViewOracle> Jjxxs = jcjJjxxViewOracleService.getJjxxList(JjxxMap); List<JcjJjxxViewOracle> Jjxxs = jcjJjxxViewOracleService.getJjxxList(JjxxMap);
// for (JcjJjxxViewOracle Jjxx : Jjxxs) { for (JcjJjxxViewOracle Jjxx : Jjxxs) {
// JcjJjxxViewMysql sBean = new JcjJjxxViewMysql(); JcjJjxxViewMysql sBean = new JcjJjxxViewMysql();
// BeanUtils.copyProperties(Jjxx, sBean); BeanUtils.copyProperties(Jjxx, sBean);
// //确定一个数据是否唯一 //确定一个数据是否唯一
// JcjJjxxViewMysql checkJjxx = jcjJjxxViewMysqlService.selectJcjJxxByJJBH(Jjxx.getJJBH()); JcjJjxxViewMysql checkJjxx = jcjJjxxViewMysqlService.selectJcjJxxByJJBH(Jjxx.getJJBH());
// if (checkJjxx == null) { if (checkJjxx == null) {
// jcjJjxxViewMysqlService.insertJjxx(sBean); jcjJjxxViewMysqlService.insertJjxx(sBean);
// logger.info("Jjxx-" + Jjxx.getJJBH() + ":插入成功"); logger.info("Jjxx-" + Jjxx.getJJBH() + ":插入成功");
// } else { } else {
// jcjJjxxViewMysqlService.updateJjxxByJJBH(sBean); jcjJjxxViewMysqlService.updateJjxxByJJBH(sBean);
// logger.info("Jjxx-" + Jjxx.getJJBH() + ":更新成功"); logger.info("Jjxx-" + Jjxx.getJJBH() + ":更新成功");
// } }
// } }
// } catch (Exception e) { } catch (Exception e) {
// logger.info("Jjxxs:" + StringKit.getTrace(e)); logger.info("Jjxxs:" + StringKit.getTrace(e));
// } }
// latch.countDown(); latch.countDown();
// }); });
// logger.info("JjxxMap数据总量:" + countJjxx + "," + "当前处理下标:" + JjxxMap.get("rowStart") + "/" + JjxxMap.get("rowEnd")); logger.info("JjxxMap数据总量:" + countJjxx + "," + "当前处理下标:" + JjxxMap.get("rowStart") + "/" + JjxxMap.get("rowEnd"));
// } }
//
// try { try {
// // Wait for all threads to complete // Wait for all threads to complete
// latch.await(); latch.await();
// } catch (InterruptedException e) { } catch (InterruptedException e) {
// e.printStackTrace(); e.printStackTrace();
// } }
// // 关闭线程池 // 关闭线程池
// JjxxPool.shutdown(); JjxxPool.shutdown();
// } }
//
// } catch (Exception e) { } catch (Exception e) {
// logger.info(StringKit.getTrace(e)); logger.info(StringKit.getTrace(e));
// } }
// } }
//
// @Scheduled(initialDelay = 100, fixedDelay = 3000)
//} public void transcjxxNow() {
try {
//1 去mysql查出当前最大时间
JcjJjxxViewMysql jcjJjxxViewMysql = jcjJjxxViewMysqlService.selectRecordOrderByRksj();
//2 用得到的最大时间去oracle 查询大于这个时间的记录
List<JcjJjxxViewOracle> list = jcjJjxxViewOracleService.getRealTimeRecording(jcjJjxxViewMysql.getWS_RKSJ());
//3 解析入库
for (JcjJjxxViewOracle Jjxx : list) {
JcjJjxxViewMysql sBean = new JcjJjxxViewMysql();
BeanUtils.copyProperties(Jjxx, sBean);
//确定一个数据是否唯一
JcjJjxxViewMysql checkJjxx = jcjJjxxViewMysqlService.selectJcjJxxByJJBH(Jjxx.getJJBH());
if (checkJjxx == null) {
jcjJjxxViewMysqlService.insertJjxx(sBean);
logger.info("Jjxx-" + Jjxx.getJJBH() + ":插入成功");
} else {
jcjJjxxViewMysqlService.updateJjxxByJJBH(sBean);
logger.info("Jjxx-" + Jjxx.getJJBH() + ":更新成功");
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}

Loading…
Cancel
Save