diff --git a/pom.xml b/pom.xml
index f71549e..7d5f22a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,13 @@
3.6
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+ 2.9.0
+
+
diff --git a/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java b/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java
index ef087c1..0019b72 100644
--- a/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java
+++ b/src/main/java/com/ssf/mysqloracletest/domain/MetaActualUserInfo.java
@@ -121,31 +121,5 @@ public class MetaActualUserInfo implements Serializable {
*/
private String metaUpdateTime;
- /**
- * 创建时间
- */
- private Date createTime;
-
- /**
- * 创建者
- */
- private Integer createBy;
-
- /**
- * 更新时间
- */
- private Date updateTime;
-
- /**
- * 更新者
- */
- private Integer updateBy;
-
- /**
- * 0:不活跃,1:活跃
- */
- private Integer isActive;
- @TableField(exist = false)
- private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/src/main/java/com/ssf/mysqloracletest/domain/MetaImpUserInfo.java b/src/main/java/com/ssf/mysqloracletest/domain/MetaImpUserInfo.java
index 3213d2c..72375e9 100644
--- a/src/main/java/com/ssf/mysqloracletest/domain/MetaImpUserInfo.java
+++ b/src/main/java/com/ssf/mysqloracletest/domain/MetaImpUserInfo.java
@@ -1,18 +1,18 @@
package com.ssf.mysqloracletest.domain;
import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.util.Date;
import lombok.Data;
+import java.io.Serializable;
+
/**
* 重点人员信息表
+ *
* @TableName meta_imp_user_info
*/
-@TableName(value ="meta_imp_user_info")
+@TableName(value = "meta_imp_user_info")
@Data
public class MetaImpUserInfo implements Serializable {
/**
@@ -86,31 +86,4 @@ public class MetaImpUserInfo implements Serializable {
*/
private String registerUnitName;
- /**
- * 创建时间
- */
- private Date createTime;
-
- /**
- * 创建者
- */
- private Integer createBy;
-
- /**
- * 更新时间
- */
- private Date updateTime;
-
- /**
- * 更新者
- */
- private Integer updateBy;
-
- /**
- * 0:不活跃,1:活跃
- */
- private Integer isActive;
-
- @TableField(exist = false)
- private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/src/main/java/com/ssf/mysqloracletest/domain/VSySydwmMysql.java b/src/main/java/com/ssf/mysqloracletest/domain/VSySydwmMysql.java
index b8270f0..2418476 100644
--- a/src/main/java/com/ssf/mysqloracletest/domain/VSySydwmMysql.java
+++ b/src/main/java/com/ssf/mysqloracletest/domain/VSySydwmMysql.java
@@ -151,5 +151,11 @@ public class VSySydwmMysql {
@TableField(value = "YSBZK_GXSJ")
private String YSBZK_GXSJ;
+ /**
+ *
+ */
+ @TableField(value = "STATUS")
+ private String STATUS;
+
}
\ No newline at end of file
diff --git a/src/main/java/com/ssf/mysqloracletest/domain/ZhxfZdrygkRyjbxxViewMysql.java b/src/main/java/com/ssf/mysqloracletest/domain/ZhxfZdrygkRyjbxxViewMysql.java
index a05865f..eebed4f 100644
--- a/src/main/java/com/ssf/mysqloracletest/domain/ZhxfZdrygkRyjbxxViewMysql.java
+++ b/src/main/java/com/ssf/mysqloracletest/domain/ZhxfZdrygkRyjbxxViewMysql.java
@@ -120,5 +120,7 @@ public class ZhxfZdrygkRyjbxxViewMysql implements Serializable {
private String YWSJHM;
@TableField(value = "CXZT")
private String CXZT;
+ @TableField(value = "status")
+ private String status;
}
\ No newline at end of file
diff --git a/src/main/java/com/ssf/mysqloracletest/task/MetaImpUserInfoTask.java b/src/main/java/com/ssf/mysqloracletest/task/MetaImpUserInfoTask.java
index b21d2ef..068d951 100644
--- a/src/main/java/com/ssf/mysqloracletest/task/MetaImpUserInfoTask.java
+++ b/src/main/java/com/ssf/mysqloracletest/task/MetaImpUserInfoTask.java
@@ -1,40 +1,44 @@
package com.ssf.mysqloracletest.task;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.ssf.mysqloracletest.domain.MetaImpUserInfo;
-import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ssf.mysqloracletest.domain.*;
import com.ssf.mysqloracletest.service.MetaImpUserInfoService;
+import com.ssf.mysqloracletest.service.VillageActualUserInfoService;
import com.ssf.mysqloracletest.service.ZhxfZdrygkRyjbxxViewMysqlService;
import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.NumKit;
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 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
+@RequiredArgsConstructor
public class MetaImpUserInfoTask {
private static final Logger logger = LoggerFactory.getLogger(MetaImpUserInfoTask.class);
- @Resource
- private ZhxfZdrygkRyjbxxViewMysqlService zdryMysqlService;
+ private final ZhxfZdrygkRyjbxxViewMysqlService zdryMysqlService;
+ private final MetaImpUserInfoService metaImpUserInfoService;
+ private final VillageActualUserInfoService actualUserInfoService;
+
- @Resource
- private MetaImpUserInfoService metaImpUserInfoService;
- final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
- private boolean zdryTag = false;
/**
* 连云港 对接海康平台获取人员基础数据
@@ -46,70 +50,76 @@ public class MetaImpUserInfoTask {
if (!"true".equals(ConfigParam.metaImpUserSwitch)) {
return;
}
+ try {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.isNull("status");
+ Page page = new Page<>(1, 1000);
+ List resultList = zdryMysqlService.page(page, queryWrapper).getRecords();
+
+ CountDownLatch latch = new CountDownLatch(resultList.size());
+ ExecutorService impUserPool = Executors.newFixedThreadPool(5);
+
+ for (ZhxfZdrygkRyjbxxViewMysql bean : resultList) {
+ impUserPool.submit(() -> {
+ cleanImpUser(bean);
+ latch.countDown();
+ });
+ }
+ try {
+ // Wait for all threads to complete
+ latch.await();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ // 关闭线程池
+ impUserPool.shutdown();
+ } catch (Exception e) {
+ logger.info(StringKit.getTrace(e));
+ }
+ }
-
+ private void cleanImpUser(ZhxfZdrygkRyjbxxViewMysql bean) {
+ ZhxfZdrygkRyjbxxViewMysql beanCp = new ZhxfZdrygkRyjbxxViewMysql();
try {
- int countzdry = zdryMysqlService.count();
- logger.info("countzdry:" + countzdry);
-
- if (countzdry > 0) {
-
- int count = countzdry / oncesCounts;
-
- for (int i = 0; i <= count; i++) {
- Map zdryMap = new HashMap();
- zdryMap.put("rowStart", i * oncesCounts);
- zdryMap.put("rowEnd", (i + 1) * oncesCounts);
- try {
- List list = zdryMysqlService.lambdaQuery().list();
- for (ZhxfZdrygkRyjbxxViewMysql zdry : list) {
- MetaImpUserInfo metaImpUserInfo = new MetaImpUserInfo();
- metaImpUserInfo.setUserName(zdry.getXM());
- metaImpUserInfo.setIdCard(zdry.getZJHM());
- if (zdry.getXB() != null) {
- metaImpUserInfo.setSex(Integer.parseInt(zdry.getXB()));
- }
- metaImpUserInfo.setPhone(zdry.getSJHM());
- String s = "000000";
- if (zdry.getZDRYXL() != null && !zdry.getZDRYXL().contains(",")) {
- String substring = zdry.getZDRYXL().substring(0, 4);
- substring = substring + s;
- metaImpUserInfo.setImpUserType(substring);
- } else if (zdry.getZDRYXL().contains(",")) {
- String[] split = zdry.getZDRYXL().split(",");
- String substring = split[0].substring(0, 4);
- String substring1 = split[1].substring(0, 4);
- substring = substring + s + "," + substring1 + s;
- metaImpUserInfo.setImpUserType(substring);
- }
- 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 {
- UpdateWrapper metaImpUserInfoUpdateWrapper = new UpdateWrapper<>();
- metaImpUserInfoUpdateWrapper.eq("id_card", zdry.getZJHM());
- metaImpUserInfoService.update(metaImpUserInfo, metaImpUserInfoUpdateWrapper);
- logger.info("zdry-" + zdry.getZJHM() + ":更新成功");
- }
- }
- } catch (Exception e) {
- logger.info("zdrys:" + e.getMessage());
- }
- logger.info("zdryMap数据总量:" + countzdry + "," + "当前处理下标:" + zdryMap.get("rowStart") + "/" + zdryMap.get("rowEnd"));
- }
+
+ VillageActualUserInfo userInfoPara = new VillageActualUserInfo();
+ userInfoPara.setIdcard(StringKit.toString(beanCp.getZJHM()));
+ List actualUserInfos = actualUserInfoService.selectVillageActualUserInfoListLimit1(userInfoPara);
+ String userPic = "";
+ if (actualUserInfos != null && actualUserInfos.size() > 0) {
+ userPic = StringKit.toString(actualUserInfos.get(0).getUserPic());
}
+ BeanUtils.copyProperties(bean, beanCp);
+ MetaImpUserInfo userInfo = new MetaImpUserInfo();
+ userInfo.setUserPic(userPic);
+ userInfo.setUserName(StringKit.toString(beanCp.getXM()));
+ userInfo.setIdCard(StringKit.toString(beanCp.getZJHM()));
+ userInfo.setSex( "".equals(StringKit.toString(beanCp.getXB()))? 0: NumKit.checkInt(beanCp.getXB()));
+ userInfo.setPhone(StringKit.toString(beanCp.getSJHM()));
+
+ String zdrlx = StringKit.toString(beanCp.getZDRYXL());
+ if("".equals(zdrlx)){
+ userInfo.setImpUserType(zdrlx.substring(0,4) + "000000");
+ userInfo.setImpUserSubType(beanCp.getZDRYXL());
+ }
+ userInfo.setHouseHoldRegister(beanCp.getHJDQH());
+ userInfo.setHouseHoldAddress(beanCp.getHJDXZ());
+ userInfo.setHabitationRegister(beanCp.getXZDHQ());
+ userInfo.setHabitationAddress(beanCp.getXZDXZ());
+ userInfo.setRegisterUnitCode(beanCp.getDJRDWDM());
+ userInfo.setRegisterUnitName(beanCp.getDJRDWMC());
+
+ boolean b = metaImpUserInfoService.save(userInfo);
+
+ if (b) {
+ beanCp.setStatus("1");
+ zdryMysqlService.updateZdryjbxxById(beanCp);
+ }
} catch (Exception e) {
logger.info(StringKit.getTrace(e));
+ beanCp.setStatus("2");
+ zdryMysqlService.updateZdryjbxxById(beanCp);
}
}
diff --git a/src/main/resources/mapper/MetaActualUserInfoMapper.xml b/src/main/resources/mapper/MetaActualUserInfoMapper.xml
index 3481a5e..b6abfc3 100644
--- a/src/main/resources/mapper/MetaActualUserInfoMapper.xml
+++ b/src/main/resources/mapper/MetaActualUserInfoMapper.xml
@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, user_pic, user_name, id_card, sex, phone, landline, house_hold_register, house_hold_address, habitation_address, police_station_code, police_station_name, police_district_code, police_district_name, management_status, home_id, home_code, account_number, meta_create_time, meta_update_time, actual_user_type from meta_actual_user_info
-