|
|
@ -281,88 +281,91 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao |
|
|
|
|
|
|
|
List<NatUserInfoResultDTO> dbResiList = null; |
|
|
|
|
|
|
|
for (DataSyncConfigDTO config : configData) { |
|
|
|
String scope = config.getScopeList().stream().map(DataSyncScopeDTO::getId).collect(Collectors.joining(",")); |
|
|
|
|
|
|
|
// 查询上一次定时任务 居民位置记录
|
|
|
|
LambdaQueryWrapper<IcResiUserTaskLogEntity> logEntityLambdaQueryWrapper = new LambdaQueryWrapper<IcResiUserTaskLogEntity>().eq(IcResiUserTaskLogEntity::getDataScope,scope).eq(IcResiUserTaskLogEntity::getType,"siwang").orderByDesc(IcResiUserTaskLogEntity::getCreatedTime).last("limit 1"); |
|
|
|
IcResiUserTaskLogEntity logEntity = resiUserTaskLogDao.selectOne(logEntityLambdaQueryWrapper); |
|
|
|
|
|
|
|
List<NatUserInfoResultDTO> userInfoResultDTOS = new ArrayList<>(); |
|
|
|
boolean isNum = false; |
|
|
|
int start = 0; |
|
|
|
if (logEntity == null){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000); |
|
|
|
if (userInfoResultDTOS.size() < 50000){ |
|
|
|
isNum = true; |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if (logEntity.getDataType() == 1){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(logEntity.getDataCount(),50000); |
|
|
|
isNum = true; |
|
|
|
}else if (logEntity.getDataType() == 0){ |
|
|
|
start = logEntity.getDataCount(); |
|
|
|
} |
|
|
|
List<DataSyncScopeDTO> orgListLast = new ArrayList<>();; |
|
|
|
|
|
|
|
for (DataSyncConfigDTO config : configData) { |
|
|
|
orgListLast.addAll(config.getScopeList()); |
|
|
|
// String scope = config.getScopeList().stream().map(DataSyncScopeDTO::getId).collect(Collectors.joining(","));
|
|
|
|
} |
|
|
|
// 查询上一次定时任务 居民位置记录 .eq(IcResiUserTaskLogEntity::getDataScope,scope)
|
|
|
|
LambdaQueryWrapper<IcResiUserTaskLogEntity> logEntityLambdaQueryWrapper = new LambdaQueryWrapper<IcResiUserTaskLogEntity>().eq(IcResiUserTaskLogEntity::getType,"siwang").orderByDesc(IcResiUserTaskLogEntity::getCreatedTime).last("limit 1"); |
|
|
|
IcResiUserTaskLogEntity logEntity = resiUserTaskLogDao.selectOne(logEntityLambdaQueryWrapper); |
|
|
|
|
|
|
|
List<NatUserInfoResultDTO> userInfoResultDTOS = new ArrayList<>(); |
|
|
|
boolean isNum = false; |
|
|
|
int start = 0; |
|
|
|
if (logEntity == null){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000); |
|
|
|
if (userInfoResultDTOS.size() < 50000){ |
|
|
|
isNum = true; |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if (logEntity.getDataType() == 1){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(logEntity.getDataCount(),50000); |
|
|
|
isNum = true; |
|
|
|
}else if (logEntity.getDataType() == 0){ |
|
|
|
start = logEntity.getDataCount(); |
|
|
|
} |
|
|
|
|
|
|
|
IcResiUserTaskLogEntity newLog = new IcResiUserTaskLogEntity(); |
|
|
|
newLog.setCreatedTime(new Date()); |
|
|
|
newLog.setDataScope(scope); |
|
|
|
newLog.setType("siwang"); |
|
|
|
|
|
|
|
// 设置查询数据范围
|
|
|
|
formDTO.setOrgList(config.getScopeList()); |
|
|
|
DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode()); |
|
|
|
if (isNum){ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(50000-userInfoResultDTOS.size()); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
} |
|
|
|
|
|
|
|
IcResiUserTaskLogEntity newLog = new IcResiUserTaskLogEntity(); |
|
|
|
newLog.setCreatedTime(new Date()); |
|
|
|
// newLog.setDataScope(scope);
|
|
|
|
newLog.setType("siwang"); |
|
|
|
|
|
|
|
// 设置查询数据范围
|
|
|
|
formDTO.setOrgList(orgListLast); |
|
|
|
DataSyncEnum anEnum = DataSyncEnum.getEnum(EpidemicConstant.DATA_CODE_DEATH); |
|
|
|
if (isNum){ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(50000-userInfoResultDTOS.size()); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
}else{ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(start+50000); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
if (dbResiList.size()<50000){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
}else{ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(start+50000); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
if (dbResiList.size()<50000){ |
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
if (dbResiList.size() < 50000){ |
|
|
|
formDTO.setStart(0); |
|
|
|
formDTO.setEnd(50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(getNatUserInfoFromDbLimit(formDTO)); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
|
|
|
|
}else{ |
|
|
|
newLog.setDataType(1); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
if (dbResiList.size() < 50000){ |
|
|
|
formDTO.setStart(0); |
|
|
|
formDTO.setEnd(50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(getNatUserInfoFromDbLimit(formDTO)); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(start+50000); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
|
|
|
|
}else{ |
|
|
|
newLog.setDataType(1); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(start+50000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(dbResiList)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
switch (anEnum) { |
|
|
|
case SI_WANG: |
|
|
|
try { |
|
|
|
//查询正常状态的居民
|
|
|
|
siWang(dbResiList); |
|
|
|
resiUserTaskLogDao.insert(newLog); |
|
|
|
log.info("======siWang信息拉取结束======"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("death thread execute exception", e); |
|
|
|
} |
|
|
|
default: |
|
|
|
log.warn("没有要处理的数据"); |
|
|
|
} |
|
|
|
/* if (CollectionUtils.isEmpty(dbResiList)) { |
|
|
|
continue; |
|
|
|
}*/ |
|
|
|
switch (anEnum) { |
|
|
|
case SI_WANG: |
|
|
|
try { |
|
|
|
//查询正常状态的居民
|
|
|
|
siWang(dbResiList); |
|
|
|
resiUserTaskLogDao.insert(newLog); |
|
|
|
log.info("======siWang信息拉取结束======"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("death thread execute exception", e); |
|
|
|
} |
|
|
|
default: |
|
|
|
log.warn("没有要处理的数据"); |
|
|
|
} |
|
|
|
// }
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -744,6 +747,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao |
|
|
|
if(StringUtils.isBlank(thirdResultData)){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
if (thirdResultData.equals("INR:匹配不成功") || thirdResultData.equals("null:null")){ |
|
|
|
continue; |
|
|
|
} |
|
|
|
// JSONObject thirdResultObject = JSON.parseObject(thirdResultData);
|
|
|
|
|
|
|
|
LambdaQueryWrapper<DataSyncRecordMaritalEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
@ -1673,101 +1679,105 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao |
|
|
|
|
|
|
|
List<NatUserInfoResultDTO> dbResiList = null; |
|
|
|
|
|
|
|
// String scope="";
|
|
|
|
List<DataSyncScopeDTO> allScope = new ArrayList<>(); |
|
|
|
for (DataSyncConfigDTO config : configData) { |
|
|
|
allScope.addAll(config.getScopeList()); |
|
|
|
} |
|
|
|
|
|
|
|
String scope = config.getScopeList().stream().map(DataSyncScopeDTO::getId).collect(Collectors.joining(",")); |
|
|
|
|
|
|
|
// 查询上一次定时任务 居民位置记录
|
|
|
|
LambdaQueryWrapper<IcResiUserTaskLogEntity> logEntityLambdaQueryWrapper = new LambdaQueryWrapper<IcResiUserTaskLogEntity>().eq(IcResiUserTaskLogEntity::getDataScope,scope).eq(IcResiUserTaskLogEntity::getType,"hunyin").orderByDesc(IcResiUserTaskLogEntity::getCreatedTime).last("limit 1"); |
|
|
|
IcResiUserTaskLogEntity logEntity = resiUserTaskLogDao.selectOne(logEntityLambdaQueryWrapper); |
|
|
|
// userInfoResultDTOS 待处理的数据存放
|
|
|
|
List<NatUserInfoResultDTO> userInfoResultDTOS = new ArrayList<>(); |
|
|
|
|
|
|
|
boolean isNum = false; |
|
|
|
int start = 0; |
|
|
|
// 如果没有log数据 说明第一次进入循环
|
|
|
|
if (logEntity == null){ |
|
|
|
// 从0开始 优先获取规定的几个社区
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000); |
|
|
|
// 如果不满5000条数据 下面再从别的社区取 isNum = true
|
|
|
|
if (userInfoResultDTOS.size() < 50000){ |
|
|
|
isNum = true; |
|
|
|
} |
|
|
|
}else{ |
|
|
|
// 如果有log数据 判断一下上次停留在特殊数据还是普通数据 1是特殊数据(优先的几个社区)
|
|
|
|
if (logEntity.getDataType() == 1){ |
|
|
|
// 从上次停止的数据开始获取
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(logEntity.getDataCount(),50000); |
|
|
|
// 下面再从别的社区取 isNum = true 凑够50000
|
|
|
|
isNum = true; |
|
|
|
}else if (logEntity.getDataType() == 0){ |
|
|
|
// 如果是普通数据 直接从次停留在特殊数据获取
|
|
|
|
start = logEntity.getDataCount(); |
|
|
|
} |
|
|
|
|
|
|
|
// String scope = config.getScopeList().stream().map(DataSyncScopeDTO::getId).collect(Collectors.joining(","));
|
|
|
|
|
|
|
|
// 查询上一次定时任务 居民位置记录
|
|
|
|
LambdaQueryWrapper<IcResiUserTaskLogEntity> logEntityLambdaQueryWrapper = new LambdaQueryWrapper<IcResiUserTaskLogEntity>().eq(IcResiUserTaskLogEntity::getType,"hunyin").orderByDesc(IcResiUserTaskLogEntity::getCreatedTime).last("limit 1"); |
|
|
|
// .eq(IcResiUserTaskLogEntity::getDataScope,scope)
|
|
|
|
IcResiUserTaskLogEntity logEntity = resiUserTaskLogDao.selectOne(logEntityLambdaQueryWrapper); |
|
|
|
// userInfoResultDTOS 待处理的数据存放
|
|
|
|
List<NatUserInfoResultDTO> userInfoResultDTOS = new ArrayList<>(); |
|
|
|
|
|
|
|
boolean isNum = false; |
|
|
|
int start = 0; |
|
|
|
// 如果没有log数据 说明第一次进入循环
|
|
|
|
if (logEntity == null){ |
|
|
|
// 从0开始 优先获取规定的几个社区
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000); |
|
|
|
// 如果不满5000条数据 下面再从别的社区取 isNum = true
|
|
|
|
if (userInfoResultDTOS.size() < 50000){ |
|
|
|
isNum = true; |
|
|
|
} |
|
|
|
// 建立一个最后插入log的标志
|
|
|
|
IcResiUserTaskLogEntity newLog = new IcResiUserTaskLogEntity(); |
|
|
|
newLog.setCreatedTime(new Date()); |
|
|
|
newLog.setType("hunyin"); |
|
|
|
newLog.setDataScope(scope); |
|
|
|
|
|
|
|
// 设置查询数据范围
|
|
|
|
formDTO.setOrgList(config.getScopeList()); |
|
|
|
DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode()); |
|
|
|
// 如果true 说明之前获取过特殊数据了 把50000补完普通数据
|
|
|
|
if (isNum){ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(50000-userInfoResultDTOS.size()); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
}else{ |
|
|
|
// 如果有log数据 判断一下上次停留在特殊数据还是普通数据 1是特殊数据(优先的几个社区)
|
|
|
|
if (logEntity.getDataType() == 1){ |
|
|
|
// 从上次停止的数据开始获取
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(logEntity.getDataCount(),50000); |
|
|
|
// 下面再从别的社区取 isNum = true 凑够50000
|
|
|
|
isNum = true; |
|
|
|
}else if (logEntity.getDataType() == 0){ |
|
|
|
// 如果是普通数据 直接从次停留在特殊数据获取
|
|
|
|
start = logEntity.getDataCount(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
// 建立一个最后插入log的标志
|
|
|
|
IcResiUserTaskLogEntity newLog = new IcResiUserTaskLogEntity(); |
|
|
|
newLog.setCreatedTime(new Date()); |
|
|
|
newLog.setType("hunyin"); |
|
|
|
// newLog.setDataScope(scope);
|
|
|
|
|
|
|
|
// 设置查询数据范围
|
|
|
|
formDTO.setOrgList(allScope); |
|
|
|
DataSyncEnum anEnum = DataSyncEnum.getEnum(EpidemicConstant.DATA_CODE_MARITAL); |
|
|
|
// 如果true 说明之前获取过特殊数据了 把50000补完普通数据
|
|
|
|
if (isNum){ |
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(50000-userInfoResultDTOS.size()); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
}else{ |
|
|
|
// false 说明之前没有获取过特殊数据了
|
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(start+50000); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
// 如果不够五万了 从头再来
|
|
|
|
if (dbResiList.size()<50000){ |
|
|
|
// 特殊数据
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
}else{ |
|
|
|
// false 说明之前没有获取过特殊数据了
|
|
|
|
formDTO.setStart(start); |
|
|
|
formDTO.setEnd(start+50000); |
|
|
|
dbResiList = getNatUserInfoFromDbLimit(formDTO); |
|
|
|
// 如果不够五万了 从头再来
|
|
|
|
if (dbResiList.size()<50000){ |
|
|
|
// 特殊数据
|
|
|
|
userInfoResultDTOS = getNatUserInfoFromDbForSiWang(0,50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(userInfoResultDTOS); |
|
|
|
// 特殊数据不够 在获取普通数据
|
|
|
|
if (dbResiList.size() < 50000){ |
|
|
|
formDTO.setStart(0); |
|
|
|
formDTO.setEnd(50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(getNatUserInfoFromDbLimit(formDTO)); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
|
|
|
|
}else{ |
|
|
|
newLog.setDataType(1); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
// 特殊数据不够 在获取普通数据
|
|
|
|
if (dbResiList.size() < 50000){ |
|
|
|
formDTO.setStart(0); |
|
|
|
formDTO.setEnd(50000-dbResiList.size()); |
|
|
|
dbResiList.addAll(getNatUserInfoFromDbLimit(formDTO)); |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(start+50000); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
|
|
|
|
}else{ |
|
|
|
newLog.setDataType(1); |
|
|
|
newLog.setDataCount(50000-dbResiList.size()); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
newLog.setDataType(0); |
|
|
|
newLog.setDataCount(start+50000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(dbResiList)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
switch (anEnum) { |
|
|
|
case HUN_YIN: |
|
|
|
try { |
|
|
|
//查询正常状态的居民
|
|
|
|
hunYin(dbResiList); |
|
|
|
resiUserTaskLogDao.insert(newLog); |
|
|
|
log.info("======hunyin信息拉取结束======"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("marry thread execute exception", e); |
|
|
|
} |
|
|
|
default: |
|
|
|
log.warn("没有要处理的数据"); |
|
|
|
} |
|
|
|
/* if (CollectionUtils.isEmpty(dbResiList)) { |
|
|
|
continue; |
|
|
|
}*/ |
|
|
|
switch (anEnum) { |
|
|
|
case HUN_YIN: |
|
|
|
try { |
|
|
|
//查询正常状态的居民
|
|
|
|
hunYin(dbResiList); |
|
|
|
resiUserTaskLogDao.insert(newLog); |
|
|
|
log.info("======hunyin信息拉取结束======"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("marry thread execute exception", e); |
|
|
|
} |
|
|
|
default: |
|
|
|
log.warn("没有要处理的数据"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|