Browse Source

Merge branch 'yantai_zhengwu_master'

master
lichao 2 years ago
parent
commit
3807112850
  1. 12
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YtHsResUtils.java
  2. 35
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/DataSyncRecordMaritalPageFormDTO.java
  3. 72
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/DataSyncRecordMaritalPageResultDTO.java
  4. 90
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordMaritalController.java
  5. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordMaritalDao.java
  6. 64
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/DataSyncRecordMaritalExcel.java
  7. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordMaritalService.java
  8. 326
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  9. 90
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordMaritalServiceImpl.java
  10. 30
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordMaritalDao.xml

12
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YtHsResUtils.java

@ -128,11 +128,19 @@ public class YtHsResUtils {
// 4)start开始默认0
// 5)limit每页记录数
Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, "IGE8TMM6f4t1Sef7FfstOLHAL");
/* param.put(APP_KEY, "IGE8TMM6f4t1Sef7FfstOLHAL");
param.put("id_card", cardNo);
param.put("name", userName);
param.put("start", 0);
param.put("limit", 1);
param.put("limit", 1);*/
param.put(APP_KEY, "A2zfd4LYCqZWFddgKaihMKD5e");
param.put("AccountId", 1);
param.put("AccessToken", 1);
param.put("CertificateHolderCode", cardNo);
param.put("CertificateType", "死亡医学证明");
param.put("UseFor", "1");
param.put("CertificateHolderType", "");
param.put("CertificateNumber", "");
log.info("siWang api param:{}", param);

35
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/DataSyncRecordMaritalPageFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.form.dataSync;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
/**
* @Description
* @Author yzm
* @Date 2022/10/13 14:16
*/
@Data
public class DataSyncRecordMaritalPageFormDTO extends PageFormDTO {
/**
* 姓名
*/
private String name;
/**
* 身份证
*/
private String idCard;
private String customerId;
/**
* 当前工作人员id
*/
private String staffId;
/**
* 当前工作人员所属组织id
*/
private String agencyId;
private String userId;
}

72
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/DataSyncRecordMaritalPageResultDTO.java

@ -0,0 +1,72 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 数据同步记录-居民婚姻信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-05-18
*/
@Data
public class DataSyncRecordMaritalPageResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 姓名
*/
private String name;
/**
* 身份证
*/
private String idCard;
/**
* 电话
*/
private String mobile;
/**
* 居民Idic_resi_user.id
*/
private String icResiUserId;
/**
* 婚姻状况
*/
private String maritalStatusName;
/**
* 婚姻状况
*/
private String maritalStatus;
/**
* 处理状态更新至居民信息 0:未处理1:处理成功2处理失败
*/
private Integer dealStatus;
private String dealStatusName;
/**
* 处理结果
*/
private String dealResult;
}

90
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordMaritalController.java

@ -1,19 +1,40 @@
package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.DataSyncRecordDeathDTO;
import com.epmet.dto.DataSyncRecordMaritalDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordDeathPageFormDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordDisabilityFormDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordMaritalPageFormDTO;
import com.epmet.dto.result.DataSyncRecordMaritalPageResultDTO;
import com.epmet.excel.DataSyncRecordMaritalExcel;
import com.epmet.service.DataSyncRecordMaritalService;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -24,6 +45,7 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-05-18
*/
@Log4j
@RestController
@RequestMapping("dataSyncRecordMarital")
public class DataSyncRecordMaritalController {
@ -31,10 +53,12 @@ public class DataSyncRecordMaritalController {
@Autowired
private DataSyncRecordMaritalService dataSyncRecordMaritalService;
@RequestMapping("page")
public Result<PageData<DataSyncRecordMaritalDTO>> page(@RequestParam Map<String, Object> params){
PageData<DataSyncRecordMaritalDTO> page = dataSyncRecordMaritalService.page(params);
return new Result<PageData<DataSyncRecordMaritalDTO>>().ok(page);
@PostMapping("page")
public Result<PageData<DataSyncRecordMaritalPageResultDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody DataSyncRecordMaritalPageFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
PageData<DataSyncRecordMaritalPageResultDTO> page = dataSyncRecordMaritalService.page(formDTO);
return new Result<PageData<DataSyncRecordMaritalPageResultDTO>>().ok(page);
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
@ -69,4 +93,62 @@ public class DataSyncRecordMaritalController {
return new Result();
}
/**
* @Description: 导出
* @param tokenDto:
* @param formDTO:
* @param response:
* @Return void
* @Author: lichao
* @Date: 2023/5/22 16:18
*/
@PostMapping("export")
public void export(@LoginUser TokenDto tokenDto, @RequestBody DataSyncRecordMaritalPageFormDTO formDTO, HttpServletResponse response) throws IOException {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
formDTO.setIsPage(false);
ExcelWriter excelWriter = null;
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
int pageNo = formDTO.getPageNo();
try {
String today = DateUtils.format(new Date(), DateUtils.DATE_PATTERN_MMDD);
String fileName = "数据比对-婚姻数据".concat(today);
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), DataSyncRecordMaritalExcel.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
PageData<DataSyncRecordMaritalPageResultDTO> data = null;
do {
data = dataSyncRecordMaritalService.page(formDTO);
List<DataSyncRecordMaritalExcel> list = ConvertUtils.sourceToTarget(data.getList(), DataSyncRecordMaritalExcel.class);
formDTO.setPageNo(++pageNo);
excelWriter.write(list, writeSheet);
} while (org.apache.commons.collections4.CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize());
} catch (Exception e) {
log.error("export exception", e);
} finally {
// 千万别忘记finish 会帮忙关闭流
if (excelWriter != null) {
excelWriter.finish();
}
}
}
/**
* 批量更新
* 更新婚姻状态
*
* @param tokenDto
* @param ids
* @return
*/
@NoRepeatSubmit
@PostMapping("batchupdate")
public Result batchUpdate(@LoginUser TokenDto tokenDto, @RequestBody List<String> ids) {
if (CollectionUtils.isEmpty(ids)) {
return new Result();
}
dataSyncRecordMaritalService.batchUpdate(tokenDto.getUserId(), tokenDto.getCustomerId(), ids);
return new Result();
}
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordMaritalDao.java

@ -1,8 +1,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.DataSyncRecordMaritalDTO;
import com.epmet.dto.result.DataSyncRecordMaritalPageResultDTO;
import com.epmet.entity.DataSyncRecordMaritalEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 数据同步记录-居民婚姻信息
@ -12,5 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface DataSyncRecordMaritalDao extends BaseDao<DataSyncRecordMaritalEntity> {
List<DataSyncRecordMaritalPageResultDTO> pageSelect(@Param("customerId") String customerId, @Param("idCard") String idCard, @Param("name") String name, @Param("agencyId") String agencyId);
}

64
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/DataSyncRecordMaritalExcel.java

@ -1,6 +1,8 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.util.Date;
@ -14,59 +16,27 @@ import java.util.Date;
@Data
public class DataSyncRecordMaritalExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id")
private String customerId;
@Excel(name = "组织Id")
private String agencyId;
@Excel(name = "组织的pids 含agencyId本身")
private String pids;
@Excel(name = "网格ID")
private String gridId;
@Excel(name = "姓名")
/**
* 姓名
*/
@ColumnWidth(10)
@ExcelProperty("姓名")
private String name;
@Excel(name = "身份证")
@ColumnWidth(25)
@ExcelProperty("证件号")
private String idCard;
@Excel(name = "电话")
private String mobile;
@Excel(name = "居民Id,ic_resi_user.id")
private String icResiUserId;
@Excel(name = "婚姻状况")
private String maritalStatusName;
@ColumnWidth(25)
@ExcelProperty("婚姻状态")
private String maritalStatus;
@Excel(name = "处理状态(更新至居民信息) 0:未处理;1:处理成功;2处理失败")
private Integer dealStatus;
@ColumnWidth(25)
@ExcelProperty("状态")
private String dealStatusName;
@Excel(name = "处理结果")
@ColumnWidth(25)
@ExcelProperty("失败原因")
private String dealResult;
@Excel(name = "删除标识:0.未删除 1.已删除")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordMaritalService.java

@ -5,9 +5,12 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.DataSyncRecordDeathDTO;
import com.epmet.dto.DataSyncRecordMaritalDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordMaritalPageFormDTO;
import com.epmet.dto.result.DataSyncRecordMaritalPageResultDTO;
import com.epmet.entity.DataSyncRecordDeathEntity;
import com.epmet.entity.DataSyncRecordMaritalEntity;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@ -22,12 +25,12 @@ public interface DataSyncRecordMaritalService extends BaseService<DataSyncRecord
/**
* 默认分页
*
* @param params
* @param formDTO
* @return PageData<DataSyncRecordMaritalDTO>
* @author generator
* @date 2023-05-18
*/
PageData<DataSyncRecordMaritalDTO> page(Map<String, Object> params);
PageData<DataSyncRecordMaritalPageResultDTO> page(DataSyncRecordMaritalPageFormDTO formDTO);
/**
* 默认查询
@ -80,4 +83,6 @@ public interface DataSyncRecordMaritalService extends BaseService<DataSyncRecord
void delete(String[] ids);
DataSyncRecordMaritalDTO selectOne(LambdaQueryWrapper<DataSyncRecordMaritalEntity> queryWrapper);
void batchUpdate(String userId, String customerId, List<String> ids);
}

326
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java

@ -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("没有要处理的数据");
}
}

90
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordMaritalServiceImpl.java

@ -4,20 +4,36 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dao.DataSyncRecordMaritalDao;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.ChangeDeathDTO;
import com.epmet.dto.DataSyncRecordDeathDTO;
import com.epmet.dto.DataSyncRecordMaritalDTO;
import com.epmet.dto.form.dataSync.DataSyncRecordMaritalPageFormDTO;
import com.epmet.dto.result.DataSyncRecordMaritalPageResultDTO;
import com.epmet.entity.DataSyncRecordDeathEntity;
import com.epmet.entity.DataSyncRecordMaritalEntity;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.service.DataSyncRecordMaritalService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -31,13 +47,20 @@ import java.util.Map;
@Service
public class DataSyncRecordMaritalServiceImpl extends BaseServiceImpl<DataSyncRecordMaritalDao, DataSyncRecordMaritalEntity> implements DataSyncRecordMaritalService {
@Autowired
private IcResiUserDao icResiUserDao;
@Override
public PageData<DataSyncRecordMaritalDTO> page(Map<String, Object> params) {
IPage<DataSyncRecordMaritalEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, DataSyncRecordMaritalDTO.class);
public PageData<DataSyncRecordMaritalPageResultDTO> page(DataSyncRecordMaritalPageFormDTO formDTO) {
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
formDTO.setAgencyId(null != staffInfoCacheResult ? staffInfoCacheResult.getAgencyId() : null);
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage());
List<DataSyncRecordMaritalPageResultDTO> records = baseDao.pageSelect(formDTO.getCustomerId(),formDTO.getIdCard(), formDTO.getName(), formDTO.getAgencyId());
PageInfo<DataSyncRecordMaritalPageResultDTO> pi = new PageInfo<>(records);
return new PageData<>(records, pi.getTotal());
}
@Override
@ -89,4 +112,59 @@ public class DataSyncRecordMaritalServiceImpl extends BaseServiceImpl<DataSyncRe
return ConvertUtils.sourceToTarget(entity, DataSyncRecordMaritalDTO.class);
}
@Override
public void batchUpdate(String userId, String customerId, List<String> ids) {
for (String id : ids) {
DataSyncRecordMaritalEntity entity = baseDao.selectById(id);
if (NumConstant.ONE == entity.getDealStatus() || StringUtils.isBlank(entity.getIcResiUserId())) {
// 已处理的跳过
continue;
}
entity.setDealStatus(NumConstant.ONE);
try {
Boolean existedFlag=true;
LambdaQueryWrapper<IcResiUserEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IcResiUserEntity::getIdCard, entity.getIdCard())
.eq(IcResiUserEntity::getCustomerId, entity.getCustomerId())
.eq(IcResiUserEntity::getDelFlag, NumConstant.ZERO_STR)
.select(IcResiUserEntity::getId);
IcResiUserEntity icResiUserEntity = icResiUserDao.selectOne(queryWrapper);
if (null == icResiUserEntity) {
existedFlag = false;
entity.setDealStatus(NumConstant.TWO);
// entity.setIcResiUserId(null);
entity.setDealResult("居民信息表不存在此居民");
}else{
entity.setIcResiUserId(icResiUserEntity.getId());
}
if(existedFlag){
//IA:结婚','结婚',if(d.MARITAL_STATUS_NAME = 'IB:离婚
if (entity.getMaritalStatusName().equals("IA:结婚")){
icResiUserEntity.setHyzk("chuhun");
}else if (entity.getMaritalStatusName().equals("IB:离婚")){
icResiUserEntity.setHyzk("lihun");
}else{
icResiUserEntity.setHyzk("weihun");
}
icResiUserDao.updateById(icResiUserEntity);
}
} catch (EpmetException epmetException) {
//0:未处理;1:处理成功;2处理失败
entity.setDealStatus(NumConstant.TWO);
entity.setDealResult("系统内部异常:" + epmetException.getMsg());
epmetException.printStackTrace();
} catch (Exception e) {
//0:未处理;1:处理成功;2处理失败
entity.setDealStatus(NumConstant.TWO);
entity.setDealResult("未知错误");
e.printStackTrace();
} finally {
baseDao.updateById(entity);
}
}
}
}

30
epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordMaritalDao.xml

@ -24,5 +24,35 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="pageSelect" resultType="com.epmet.dto.result.DataSyncRecordMaritalPageResultDTO">
select
d.ID,
d.IC_RESI_USER_ID,
d.NAME AS name,d.ID_CARD,
if(d.MARITAL_STATUS_NAME = 'IA:结婚','结婚',if(d.MARITAL_STATUS_NAME = 'IB:离婚','离婚','单身')) as maritalStatus,
if(d.DEAL_STATUS = 0,'未处理',if(d.DEAL_STATUS = 1,'已处理','')) as dealStatusName,
d.DEAL_RESULT
from
data_sync_record_marital d
where
d.DEL_FLAG = '0'
and
d.MARITAL_STATUS_NAME!='INR:匹配不成功'
and
d.MARITAL_STATUS_NAME!='null:null'
AND d.CUSTOMER_ID = #{customerId}
<if test="agencyId != null and agencyId != ''">
AND d.PIDS LIKE concat( '%', #{agencyId}, '%' )
</if>
<if test="idCard != null and idCard != ''">
AND d.ID_CARD LIKE concat('%',#{idCard},'%')
</if>
<if test="name != null and name != ''">
AND d.`NAME` LIKE concat('%',#{name},'%')
</if>
ORDER BY
d.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save