parent
d7260291fb
commit
d8b1663d26
@ -0,0 +1,128 @@
|
|||||||
|
package com.ssf.mysqloracletest.task;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.ssf.mysqloracletest.domain.MetaImpUserInfo;
|
||||||
|
import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql;
|
||||||
|
import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewOracle;
|
||||||
|
import com.ssf.mysqloracletest.service.MetaImpUserInfoService;
|
||||||
|
import com.ssf.mysqloracletest.service.ZhxfZdrygkRyjbxxViewMysqlService;
|
||||||
|
import com.ssf.mysqloracletest.service.ZhxfZdrygkRyjbxxViewOracleService;
|
||||||
|
import com.ssf.mysqloracletest.utils.ConfigParam;
|
||||||
|
import com.ssf.mysqloracletest.utils.NumKit;
|
||||||
|
import com.ssf.mysqloracletest.utils.StringKit;
|
||||||
|
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 javax.annotation.Resource;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户数据接入
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class metaImpUserInfoTask {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(metaImpUserInfoTask.class);
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ZhxfZdrygkRyjbxxViewMysqlService zdryMysqlService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MetaImpUserInfoService metaImpUserInfoService;
|
||||||
|
|
||||||
|
final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
|
||||||
|
|
||||||
|
private boolean zdryTag = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连云港 对接海康平台获取人员基础数据
|
||||||
|
* //
|
||||||
|
*/
|
||||||
|
@Scheduled(initialDelay = 100, fixedDelay = 3000)
|
||||||
|
public void transzdry() {
|
||||||
|
|
||||||
|
if (zdryTag) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!"true".equals(ConfigParam.metaImpUserSwitch)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
int countzdry = zdryMysqlService.count();
|
||||||
|
logger.info("countzdry:" + countzdry);
|
||||||
|
|
||||||
|
if (countzdry > 0) {
|
||||||
|
|
||||||
|
zdryTag = true;
|
||||||
|
|
||||||
|
int count = countzdry / oncesCounts;
|
||||||
|
CountDownLatch latch = new CountDownLatch(count);
|
||||||
|
ExecutorService zdryPool = Executors.newFixedThreadPool(50);
|
||||||
|
|
||||||
|
for (int i = 0; i <= count; i++) {
|
||||||
|
Map zdryMap = new HashMap();
|
||||||
|
zdryMap.put("rowStart", i * oncesCounts);
|
||||||
|
zdryMap.put("rowEnd", (i + 1) * oncesCounts);
|
||||||
|
zdryPool.submit(() -> {
|
||||||
|
try {
|
||||||
|
List<ZhxfZdrygkRyjbxxViewMysql> list = zdryMysqlService.lambdaQuery().list();
|
||||||
|
for (ZhxfZdrygkRyjbxxViewMysql zdry : list) {
|
||||||
|
MetaImpUserInfo metaImpUserInfo = new MetaImpUserInfo();
|
||||||
|
metaImpUserInfo.setUserName(zdry.getXM());
|
||||||
|
metaImpUserInfo.setIdCard(zdry.getZJHM());
|
||||||
|
metaImpUserInfo.setSex(Integer.parseInt(zdry.getXB()));
|
||||||
|
metaImpUserInfo.setPhone(zdry.getSJHM());
|
||||||
|
metaImpUserInfo.setImpUserType(zdry.getZDRRYLBBJ());
|
||||||
|
metaImpUserInfo.setImpUserSubType(zdry.getZDRYXL());
|
||||||
|
metaImpUserInfo.setHouseHoldRegister(zdry.getHJDQH());
|
||||||
|
metaImpUserInfo.setHouseHoldAddress(zdry.getHJDXZ());
|
||||||
|
metaImpUserInfo.setHabitationRegister(zdry.getXZDHQ());
|
||||||
|
metaImpUserInfo.setHabitationAddress(zdry.getXZDXZ());
|
||||||
|
metaImpUserInfo.setRegisterUnitCode(zdry.getDJRDWDM());
|
||||||
|
metaImpUserInfo.setRegisterUnitName(zdry.getDJRDWMC());
|
||||||
|
//确定一个数据是否唯一
|
||||||
|
MetaImpUserInfo one = metaImpUserInfoService.lambdaQuery().eq(MetaImpUserInfo::getIdCard, zdry.getZJHM()).one();
|
||||||
|
if (one == null) {
|
||||||
|
metaImpUserInfoService.save(metaImpUserInfo);
|
||||||
|
logger.info("zdry-" + zdry.getZJHM() + ":插入成功");
|
||||||
|
} else {
|
||||||
|
metaImpUserInfoService.update(new QueryWrapper<>(metaImpUserInfo));
|
||||||
|
logger.info("zdry-" + zdry.getZJHM() + ":更新成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.info("zdrys:" + e.getMessage());
|
||||||
|
}
|
||||||
|
latch.countDown();
|
||||||
|
});
|
||||||
|
logger.info("zdryMap数据总量:" + countzdry + "," + "当前处理下标:" + zdryMap.get("rowStart") + "/" + zdryMap.get("rowEnd"));
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Wait for all threads to complete
|
||||||
|
latch.await();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// 关闭线程池
|
||||||
|
zdryPool.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.info(StringKit.getTrace(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue