Browse Source

改字段了

master
jianjun 3 years ago
parent
commit
26a23ceb31
  1. 105
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YtHsResUtils.java
  2. 24
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java
  3. 24
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/DataSyncRecordDisabilityEntity.java
  4. 112
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  5. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml
  6. 6
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml
  7. 22
      epmet-user/epmet-user-server/src/test/java/com/epmet/service/DataSyncConfigServiceTest.java

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

@ -26,6 +26,7 @@ public class YtHsResUtils {
private static final String PAGE_SIZE = "PAGESIZE";
private static final String START = "ROWNUM";
private static final String LIMIT = "PAGESIZE";
/**
* desc:图片同步扫描
*
@ -35,24 +36,28 @@ public class YtHsResUtils {
try {
//String param = String.format("&card_no=%s&ROWNUM=%s&PAGESIZE=%s", cardNo, rowNum, pageSize);
//String apiUrl = url.concat(param);
Map<String,Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE);
param.put(CARD_NO,cardNo);
param.put(ROW_NUM,rowNum);
param.put(PAGE_SIZE,pageSize);
log.info("hsjc api param:{}",param);
Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"hsjcxx", param);
log.info("hsjc api result:{}",JSON.toJSONString(result));
Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, APP_KEY_VALUE);
param.put(CARD_NO, cardNo);
param.put(ROW_NUM, rowNum);
param.put(PAGE_SIZE, pageSize);
log.info("hsjc api param:{}", param);
//todo 核酸检测 mock数据 放开她
//Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"hsjcxx", param);
String mockData = "{\"code\":\"200\",\"msg\":\"请求成功\",\"data\":[{\"id\":\"6a31eb2d38c011eda054fa163ebc7ff4\",\"name\":\"数据同步测试用户\",\"card_no\":\"370283199912010302\",\"telephone\":\"13697890860\",\"address\":\"保利香榭里公馆18-1-302\",\"test_time\":\"2022-09-20 12:52:28\",\"depart_name\":\"天仁医学检验实验室有限公司\",\"county\":\"莱山区\",\"upload_time\":\"2022-09-20 21:23:10\",\"sample_result_pcr\":\"2\",\"sample_time\":\"2022-09-20 06:48:28\",\"sampling_org_pcr\":\"采样点327\"}],\"total\":1}";
Result<String> result = new Result<String>().ok(mockData);
log.info("hsjc api result:{}", JSON.toJSONString(result));
if (result.success()) {
return JSON.parseObject(result.getData(), YtHsjcResDTO.class);
}
} catch (Exception e) {
log.warn(String.format("烟台核酸检测结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage()));
log.error(String.format("烟台核酸检测结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage()));
}
YtHsjcResDTO resultResult = new YtHsjcResDTO();
resultResult.setData(new ArrayList<>());
return resultResult;
}
/**
* desc:死亡数据同步
*
@ -65,48 +70,55 @@ public class YtHsResUtils {
// 3)idcard身份证号 必填
// 4)start开始默认0
// 5)limit每页记录数
Map<String,Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE);
param.put("id_card",cardNo);
param.put("name",userName);
param.put("start",0);
param.put("limit",1);
Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, APP_KEY_VALUE);
param.put("id_card", cardNo);
param.put("name", userName);
param.put("start", 0);
param.put("limit", 1);
log.info("siWang api param:{}",param);
log.info("siWang api param:{}", param);
//todo 放开他
//Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"mzt_hhrysj1", param);
String mockData2 = "{\"code\":200,\"data\":\"{\\\"data\\\":[{\\\"AGE\\\":\\\"73\\\",\\\"CARD_TYPE\\\":\\\"9\\\",\\\"CREATE_ORGAN_NAME\\\":\\\"菏泽市巨野县殡仪馆\\\",\\\"CREMATION_TIME\\\":\\\"2014-04-17 14:46\\\",\\\"DEAD_ID\\\":\\\"SZ-371724-2012-1006560\\\",\\\"DEATH_DATE\\\":\\\"2014-04-17\\\",\\\"FAMILY_ADD\\\":\\\"菏泽市巨野县开发区马庄村\\\",\\\"FOLK\\\":\\\"01\\\",\\\"ID_CARD\\\":\\\"1\\\",\\\"NAME\\\":\\\"郭**\\\",\\\"NATION\\\":\\\"156\\\",\\\"POPULACE\\\":\\\"3381C3014B60439FE05319003C0A0897\\\",\\\"POPULACE_NAME\\\":\\\"菏泽市巨野县开发区马庄村\\\",\\\"RECORD_ID\\\":\\\"E-371724-2012-100000000000407849\\\",\\\"RN\\\":\\\"1\\\",\\\"SEX\\\":\\\"1\\\"}],\\\"fields\\\":[\\\"RN\\\",\\\"RECORD_ID\\\",\\\"DEAD_ID\\\",\\\"NAME\\\",\\\"SEX\\\",\\\"CARD_TYPE\\\",\\\"ID_CARD\\\",\\\"BIRTHDAY\\\",\\\"AGE\\\",\\\"NATION\\\",\\\"FOLK\\\",\\\"IF_LOCAL\\\",\\\"POPULACE\\\",\\\"FAMILY_ADD\\\",\\\"WORK_NAME\\\",\\\"DEATH_DATE\\\",\\\"CREMATION_TIME\\\",\\\"CREATE_ORGAN_NAME\\\",\\\"POPULACE_NAME\\\"],\\\"total\\\":\\\"4903\\\"}\",\"message\":\"\"}";
String mockData = "{\"code\":200,\"data\":\"{\\\"data\\\":[],\\\"fields\\\":[\\\"RN\\\",\\\"RECORD_ID\\\",\\\"DEAD_ID\\\",\\\"NAME\\\",\\\"SEX\\\",\\\"CARD_TYPE\\\",\\\"ID_CARD\\\",\\\"BIRTHDAY\\\",\\\"AGE\\\",\\\"NATION\\\",\\\"FOLK\\\",\\\"IF_LOCAL\\\",\\\"POPULACE\\\",\\\"FAMILY_ADD\\\",\\\"WORK_NAME\\\",\\\"DEATH_DATE\\\",\\\"CREMATION_TIME\\\",\\\"CREATE_ORGAN_NAME\\\",\\\"POPULACE_NAME\\\"],\\\"total\\\":\\\"4903\\\"}\",\"message\":\"\"}";
String mockData = "{\"code\":\"200\",\"msg\":\"请求成功\",\"data\":\"{\\\"code\\\":200,\\\"data\\\":\\\"{\\\\\\\"data\\\\\\\":[{\\\\\\\"AGE\\\\\\\":\\\\\\\"82\\\\\\\",\\\\\\\"BIRTHDAY\\\\\\\":\\\\\\\"1933-02-23\\\\\\\",\\\\\\\"CARD_TYPE\\\\\\\":\\\\\\\"1\\\\\\\",\\\\\\\"CREATE_ORGAN_NAME\\\\\\\":\\\\\\\"莱州市殡仪馆\\\\\\\",\\\\\\\"CREMATION_TIME\\\\\\\":\\\\\\\"2016-01-03 13:01\\\\\\\",\\\\\\\"DEAD_ID\\\\\\\":\\\\\\\"8abc809851ffaf1501520600555c2849\\\\\\\",\\\\\\\"DEATH_DATE\\\\\\\":\\\\\\\"2016-01-02\\\\\\\",\\\\\\\"FAMILY_ADD\\\\\\\":\\\\\\\"山东省莱州市光州西路420号\\\\\\\",\\\\\\\"FOLK\\\\\\\":\\\\\\\"01\\\\\\\",\\\\\\\"ID_CARD\\\\\\\":\\\\\\\"370625193302231929\\\\\\\",\\\\\\\"NAME\\\\\\\":\\\\\\\"陈秀芬\\\\\\\",\\\\\\\"NATION\\\\\\\":\\\\\\\"156\\\\\\\",\\\\\\\"POPULACE\\\\\\\":\\\\\\\"3381C300B4B9439FE05319003C0A0897\\\\\\\",\\\\\\\"POPULACE_NAME\\\\\\\":\\\\\\\"烟台市莱州市文昌路街道\\\\\\\",\\\\\\\"RECORD_ID\\\\\\\":\\\\\\\"8abc809851ffaf1501520600694e2877\\\\\\\",\\\\\\\"RN\\\\\\\":\\\\\\\"1\\\\\\\",\\\\\\\"SEX\\\\\\\":\\\\\\\"2\\\\\\\"}],\\\\\\\"fields\\\\\\\":[\\\\\\\"RN\\\\\\\",\\\\\\\"RECORD_ID\\\\\\\",\\\\\\\"DEAD_ID\\\\\\\",\\\\\\\"NAME\\\\\\\",\\\\\\\"SEX\\\\\\\",\\\\\\\"CARD_TYPE\\\\\\\",\\\\\\\"ID_CARD\\\\\\\",\\\\\\\"BIRTHDAY\\\\\\\",\\\\\\\"AGE\\\\\\\",\\\\\\\"NATION\\\\\\\",\\\\\\\"FOLK\\\\\\\",\\\\\\\"IF_LOCAL\\\\\\\",\\\\\\\"POPULACE\\\\\\\",\\\\\\\"FAMILY_ADD\\\\\\\",\\\\\\\"WORK_NAME\\\\\\\",\\\\\\\"DEATH_DATE\\\\\\\",\\\\\\\"CREMATION_TIME\\\\\\\",\\\\\\\"CREATE_ORGAN_NAME\\\\\\\",\\\\\\\"POPULACE_NAME\\\\\\\"],\\\\\\\"total\\\\\\\":\\\\\\\"1\\\\\\\"}\\\",\\\"message\\\":\\\"\\\"}\",\"total\":0}";
Result<String> result = new Result<String>().ok(mockData);
log.info("siWang api result:{}",JSON.toJSONString(result));
log.info("siWang api result:{}", JSON.toJSONString(result));
String data = result.getData();
JSONObject jsonObject = JSON.parseObject(data);
//他们的结果是成功的
if (jsonObject!= null && "200".equals(jsonObject.getString("code"))){
//第一层data
JSONObject realObject = JSON.parseObject(jsonObject.getString("data"));
if (realObject!= null&& realObject.getJSONArray("data") != null) {
if (jsonObject != null && "200".equals(jsonObject.getString("code"))) {
//第一层
JSONObject firstData = JSON.parseObject(jsonObject.getString("data"));
//第二层 data
Object thirdData = realObject.getJSONArray("data").get(0);
YtDataSyncResDTO ytDataSyncResDTO = new YtDataSyncResDTO(200,"",thirdData.toString());
return ytDataSyncResDTO;
}else {
log.warn("canji 调用蓝图接口成功但是蓝图的结果中 省平台失败");
if (firstData != null && "200".equals(firstData.getString("code"))) {
//第一层
JSONObject secondData = JSON.parseObject(firstData.getString("data"));
Object thirdData = "";
if (secondData != null && secondData.getJSONArray("data") != null) {
//第二层 data
thirdData = secondData.getJSONArray("data").get(0);
}
}else {
log.warn("canji 调用蓝图接口败");
return new YtDataSyncResDTO(200, "", thirdData.toString());
} else {
log.warn("siWang 调用蓝图接口成功但是蓝图的结果中 省平台失败");
}
} else {
log.warn("siWang 调用蓝图接口败");
}
} catch (Exception e) {
log.warn(String.format("烟台siWang结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage()));
log.error(String.format("烟台siWang结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage()));
}
return new YtDataSyncResDTO();
}
/**
* desc:残疾数据同步
* @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理
*
* @return
* @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理
*/
public static YtDataSyncResDTO canji(String idCard, String userName) {
@ -117,19 +129,19 @@ public class YtHsResUtils {
// 1)appkey
// 2)name姓名
// 3)citizenId身份证号
Map<String,Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE);
param.put("citizenId",idCard);
param.put("name",userName);
Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, APP_KEY_VALUE);
param.put("citizenId", idCard);
param.put("name", userName);
log.info("canji api param:{}",param);
log.info("canji api param:{}", param);
//todo 上线放开她
//Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"sdcl_xxzx_czcjr1", param);
String mockData = "{\"code\":\"200\",\"msg\":\"请求成功\",\"data\":\"{\\\"code\\\":200,\\\"data\\\":{\\\"result\\\":true,\\\"errorcode\\\":0,\\\"msg\\\":\\\"获取成功\\\",\\\"data\\\":{\\\"isNewRecord\\\":\\\"true\\\",\\\"delFlag\\\":\\\"0\\\",\\\"pageNo\\\":\\\"0\\\",\\\"pageSize\\\":\\\"0\\\",\\\"name\\\":\\\"姓名\\\",\\\"genderName\\\":\\\"性别\\\",\\\"citizenId\\\":\\\"身份证号\\\",\\\"cardNum\\\":\\\"残疾证号\\\",\\\"idtKindName\\\":\\\"残疾类别\\\",\\\"idtLevelName\\\":\\\"残疾等级\\\",\\\"eduLevelName\\\":\\\"教育程度\\\",\\\"marriagerName\\\":\\\"婚姻状况\\\",\\\"guardian\\\":\\\"监护人\\\",\\\"guardianPhone\\\":\\\"监护人联系方式\\\",\\\"residentAdd\\\":\\\"户籍地址\\\",\\\"nowAdd\\\":\\\"现居住地\\\",\\\"phoneNo\\\":\\\"联系电话\\\"}},\\\"message\\\":\\\"\\\"}\",\"total\":0}";
String mockData = "{\"code\":\"200\",\"msg\":\"请求成功\",\"data\":\"{\\\"code\\\":200,\\\"data\\\":\\\"{\\\\\\\"result\\\\\\\":true,\\\\\\\"errorcode\\\\\\\":0,\\\\\\\"msg\\\\\\\":\\\\\\\"获取成功\\\\\\\",\\\\\\\"data\\\\\\\":{\\\\\\\"isNewRecord\\\\\\\":true,\\\\\\\"delFlag\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"pageNo\\\\\\\":0,\\\\\\\"pageSize\\\\\\\":0,\\\\\\\"name\\\\\\\":\\\\\\\"数据同步测试用户\\\\\\\",\\\\\\\"genderName\\\\\\\":\\\\\\\"男\\\\\\\",\\\\\\\"citizenId\\\\\\\":\\\\\\\"370682198002072719\\\\\\\",\\\\\\\"cardNum\\\\\\\":\\\\\\\"370283199912010302\\\\\\\",\\\\\\\"idtKindName\\\\\\\":\\\\\\\"精神\\\\\\\",\\\\\\\"idtLevelName\\\\\\\":\\\\\\\"二级\\\\\\\",\\\\\\\"eduLevelName\\\\\\\":\\\\\\\"小学\\\\\\\",\\\\\\\"marriagerName\\\\\\\":\\\\\\\"未婚\\\\\\\",\\\\\\\"guardian\\\\\\\":\\\\\\\"盖希仁\\\\\\\",\\\\\\\"guardianPhone\\\\\\\":\\\\\\\"13854516627\\\\\\\",\\\\\\\"guardianRName\\\\\\\":\\\\\\\"兄/弟/姐/妹\\\\\\\",\\\\\\\"raceName\\\\\\\":\\\\\\\"汉族\\\\\\\",\\\\\\\"certDate\\\\\\\":1620779842000,\\\\\\\"residentAdd\\\\\\\":\\\\\\\"姜疃镇凤头村248号附1号\\\\\\\",\\\\\\\"nowAdd\\\\\\\":\\\\\\\"山东省烟台市莱阳市姜疃镇凤头村委会\\\\\\\",\\\\\\\"phoneNo\\\\\\\":\\\\\\\"13854516627\\\\\\\"}}\\\",\\\"message\\\":\\\"\\\"}\",\"total\":0}";
Result<String> result = new Result<String>().ok(mockData);
log.info("canji api result:{}",JSON.toJSONString(result));
log.info("canji api result:{}", JSON.toJSONString(result));
if (result.success()) {
/*返回示例
{
@ -153,25 +165,24 @@ public class YtHsResUtils {
String data = result.getData();
JSONObject jsonObject = JSON.parseObject(data);
//他们的结果是成功的
if (jsonObject!= null && "200".equals(jsonObject.getString("code"))){
if (jsonObject != null && "200".equals(jsonObject.getString("code"))) {
//第一层data
JSONObject realObject = JSON.parseObject(jsonObject.getString("data"));
if (realObject!= null && "200".equals(realObject.getString("code"))) {
if (realObject != null && "200".equals(realObject.getString("code"))) {
//第二层 data
String thirdData = realObject.getString("data");
YtDataSyncResDTO ytDataSyncResDTO = JSON.parseObject(thirdData, YtDataSyncResDTO.class);
return ytDataSyncResDTO;
}else {
return JSON.parseObject(thirdData, YtDataSyncResDTO.class);
} else {
log.warn("canji 调用蓝图接口成功但是蓝图的结果中 省平台失败");
}
}else {
} else {
log.warn("canji 调用蓝图接口败");
}
}
} catch (Exception e) {
log.warn(String.format("烟台canji结果查询异常cardNo:%s,异常信息:%s", idCard, e.getMessage()));
log.error(String.format("烟台canji结果查询异常cardNo:%s,异常信息:%s", idCard, e.getMessage()));
}
return failResult;
}
@ -179,11 +190,11 @@ public class YtHsResUtils {
public static void main(String[] args) {
YtDataSyncResDTO canji = canji("123", "123");
System.out.println("残疾结果:"+JSON.toJSON(canji));
System.out.println("残疾结果:" + JSON.toJSON(canji));
YtDataSyncResDTO siwang = siWang("1213", "!23");
System.out.println("死亡结果:"+JSON.toJSON(siwang));
System.out.println("死亡结果:" + JSON.toJSON(siwang));
}

24
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java

@ -84,9 +84,29 @@ public class DataSyncRecordDisabilityDTO implements Serializable {
private String eduLevel;
/**
* 婚姻状况
* 婚姻状况 中文
*/
private String maritalStatus;
private String maritalStatusName;
/**
* 民族 中文
*/
private String mzCn;
/**
* 性别1男2女
*/
private Integer gender;
/**
* 户籍地址
*/
private String residentAdd;
/**
* 现居住地址
*/
private String nowAdd;
/**
* 监护人

24
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/DataSyncRecordDisabilityEntity.java

@ -79,9 +79,29 @@ public class DataSyncRecordDisabilityEntity extends BaseEpmetEntity {
private String eduLevel;
/**
* 婚姻状况
* 婚姻状况 中文
*/
private String maritalStatus;
private String maritalStatusName;
/**
* 民族 中文
*/
private String mzCn;
/**
* 性别1男2女
*/
private Integer gender;
/**
* 户籍地址
*/
private String residentAdd;
/**
* 现居住地址
*/
private String nowAdd;
/**
* 监护人

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

@ -9,6 +9,7 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.dto.result.YtDataSyncResDTO;
import com.epmet.commons.tools.dto.result.YtHsjcResDTO;
import com.epmet.commons.tools.enums.GenderEnum;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
@ -40,10 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -182,7 +180,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
//TODO 根据dataCode 调用不同的方法 抽取数据
if (CollectionUtils.isNotEmpty(allConfigList)) {
if (CollectionUtils.isEmpty(allConfigList)) {
log.warn("dataSyncForYanTaiTask don't have any resi data to pull data form YanTai interface");
return;
}
@ -196,7 +194,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
//没传具体参数 则 按照
int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_THOUSAND;
int pageSize = 1;//todo fangkaita NumConstant.ONE_THOUSAND;
//ToDo 去掉
formDTO.setIdCards(Collections.singletonList("370283199912010302"));
List<NatUserInfoResultDTO> dbResiList = null;
//设置查询数据范围
formDTO.setOrgList(config.getScopeList());
@ -206,7 +206,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
switch (anEnum) {
case HE_SUAN:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize);
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
if (CollectionUtils.isEmpty(dbResiList)) {
break;
}
@ -215,24 +215,25 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
case CAN_JI:
//查询正常状态的居民 并回显 残疾状态
formDTO.setCategoryColumn("IS_CJ");
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize);
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
canJi(dbResiList);
break;
case SI_WANG:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize);
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
siWang(dbResiList);
break;
default:
log.warn("没有要处理的数据");
}
pageNo++;
} while (dbResiList != null && dbResiList.size() == pageSize);
} while (false);//todo fangkaita(dbResiList != null && dbResiList.size() == pageSize);
}
}
private void siWang(List<NatUserInfoResultDTO> dbResiList) {
try {
List<DataSyncRecordDeathEntity> list = new ArrayList<>();
for (NatUserInfoResultDTO dbResi : dbResiList) {
YtDataSyncResDTO thirdResult = YtHsResUtils.siWang(dbResi.getIdCard(), dbResi.getName());
@ -249,13 +250,15 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
//获取数据库里的记录
DataSyncRecordDeathDTO dbDeathEntity = dataSyncRecordDeathService.selectOne(queryWrapper);
JudgeDealStatus judgeDealStatus= new JudgeDealStatus(thirdResultObject,dbDeathEntity).invokeDeath();
JudgeDealStatus judgeDealStatus = new JudgeDealStatus(thirdResultObject, dbDeathEntity).invokeDeath();
if (judgeDealStatus.isStop()) {
continue;
}
DataSyncRecordDeathEntity entity = new DataSyncRecordDeathEntity();
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())) {
entity.setId(dbDeathEntity.getId());
}
entity.setCustomerId(dbResi.getCustomerId());
entity.setAgencyId(dbResi.getAgencyId());
entity.setPids(dbResi.getPids());
@ -263,7 +266,8 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
entity.setName(dbResi.getName());
entity.setIdCard(dbResi.getIdCard());
entity.setIcResiUserId(dbResi.getUserId());
//死亡未获取到数据
if (thirdResultObject != null) {
entity.setAge(thirdResultObject.getString("AGE"));
entity.setAddress(thirdResultObject.getString("FAMILY_ADD"));
entity.setDeathDate(thirdResultObject.getString("DEATH_DATE"));
@ -272,18 +276,24 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
entity.setOrganName(thirdResultObject.getString("CREATE_ORGAN_NAME"));
entity.setNation(thirdResultObject.getString("NATION"));
entity.setThirdRecordId(thirdResultObject.getString("RECORD_ID"));
}
entity.setDealStatus(NumConstant.ZERO);
entity.setDealResult(StrConstant.EPMETY_STR);
if (judgeDealStatus.isNeedSetStatus) {
entity.setDealResult(judgeDealStatus.dealResult);
entity.setDealStatus(judgeDealStatus.dealStatus);
}
entity.setUpdatedTime(new Date());
list.add(entity);
}
if (list.size()==NumConstant.ZERO){
if (list.size() == NumConstant.ZERO) {
return;
}
dataSyncRecordDeathService.saveOrUpdateBatch(list,NumConstant.TWO_HUNDRED);
dataSyncRecordDeathService.saveOrUpdateBatch(list, NumConstant.TWO_HUNDRED);
} catch (Exception e) {
log.error("siwang exception", e);
}
}
/**
@ -295,13 +305,13 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
* @param pageSize
* @return
*/
private List<NatUserInfoResultDTO> getNatUserInfoFromDb(DataSyncTaskParam formDTO, DataSyncEnum anEnum, int pageNo, int pageSize) {
private List<NatUserInfoResultDTO> getNatUserInfoFromDb(DataSyncTaskParam formDTO, int pageNo, int pageSize) {
//根据 组织 分页获取 居民数据
PageInfo<NatUserInfoResultDTO> pageInfo = PageHelper.startPage(pageNo, pageSize, false)
.doSelectPageInfo(() -> baseDao.getIdCardsByScope(formDTO));
List<NatUserInfoResultDTO> dbResiList;
dbResiList = pageInfo.getList();
//如果传了身份证号 则按照身份证号查询 并同步记录, userId如果为空则是 手动录入的 此人没有录入居民库 但是也可以同步
/* //如果传了身份证号 则按照身份证号查询 并同步记录, userId如果为空则是 手动录入的 此人没有录入居民库 但是也可以同步
if (CollectionUtils.isNotEmpty(formDTO.getIdCards()) && DataSyncEnum.HE_SUAN.getCode().equals(anEnum.getCode())) {
List<NatUserInfoResultDTO> collect = formDTO.getIdCards().stream().map(id -> {
NatUserInfoResultDTO e = new NatUserInfoResultDTO();
@ -314,11 +324,12 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
dbResiList.stream().filter(u -> u.getIdCard().equals(c.getIdCard())).forEach(u -> c.setUserId(u.getUserId()));
}
dbResiList = collect;
}
}*/
return dbResiList;
}
private void canJi(List<NatUserInfoResultDTO> resiList) {
try {
List<DataSyncRecordDisabilityEntity> list = new ArrayList<>();
for (NatUserInfoResultDTO dbResi : resiList) {
YtDataSyncResDTO thirdResult = YtHsResUtils.canji(dbResi.getIdCard(), dbResi.getName());
@ -336,7 +347,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
DataSyncRecordDisabilityEntity entity = new DataSyncRecordDisabilityEntity();
if (dbDisablityEntity != null && StringUtils.isNotBlank(dbDisablityEntity.getId())) {
entity.setId(dbDisablityEntity.getId());
}
//居民库里 是否是残疾
String categoryColumn = dbResi.getCategoryColumn();
@ -381,18 +394,28 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
entity.setPids(dbResi.getPids());
entity.setGridId(dbResi.getGridId());
entity.setName(dbResi.getName());
entity.setIdCard(thirdResultObject.getString("citizenId"));
entity.setMobile(thirdResultObject.getString("phoneNo"));
entity.setIdCard(dbResi.getIdCard());
entity.setIcResiUserId(dbResi.getUserId());
if (thirdResultObject != null){
entity.setMobile(thirdResultObject.getString("phoneNo"));
entity.setCardNum(thirdResultObject.getString("cardNum"));
entity.setCjzk(thirdResultObject.getString("idtLevelName"));
entity.setCjlb(thirdResultObject.getString("idtKindName"));
entity.setEduLevel(thirdResultObject.getString("eduLevelName"));
entity.setMaritalStatus(thirdResultObject.getString("marriagerName"));
entity.setMaritalStatusName(thirdResultObject.getString("marriagerName"));
entity.setGuardian(thirdResultObject.getString("guardian"));
entity.setGuardianPhone(thirdResultObject.getString("guardianPhone"));
entity.setMzCn(thirdResultObject.getString("raceName"));
String genderName = thirdResultObject.getString("genderName");
if (GenderEnum.MAN.getName().equals(genderName)){
entity.setGender(NumConstant.ONE);
}else {
entity.setGender(NumConstant.TWO);
}
entity.setResidentAdd(thirdResultObject.getString("residentAdd"));
entity.setNowAdd(thirdResultObject.getString("nowAdd"));
}
entity.setDealStatus(NumConstant.ZERO);
entity.setDisabilityStatus(disabilityStatus);
entity.setDealResult(StrConstant.EPMETY_STR);
@ -400,9 +423,13 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
entity.setDealResult(judgeDealStatus.getDealResult());
entity.setDealStatus(judgeDealStatus.getDealStatus());
}
entity.setUpdatedTime(new Date());
list.add(entity);
}
dataSyncRecordDisabilityService.saveOrUpdateBatch(list, NumConstant.TWO_HUNDRED);
} catch (Exception e) {
log.error("canJi exception", e);
}
}
@ -414,7 +441,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
* @author zxc
* @date 2022/9/27 11:08
*/
private void hsjc(List<NatUserInfoResultDTO> idCards, String customerId) {
@Transactional(rollbackFor = Exception.class)
public void hsjc(List<NatUserInfoResultDTO> idCards, String customerId) {
try {
List<IcNatEntity> entities = new ArrayList<>();
idCards.forEach(idCard -> {
YtHsjcResDTO natInfoResult = YtHsResUtils.hsjc(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE);
@ -429,7 +458,12 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
e.setMobile(StringUtils.isNotBlank(natInfo.getTelephone()) ? natInfo.getTelephone() : "");
e.setIdCard(StringUtils.isNotBlank(natInfo.getCard_no()) ? natInfo.getCard_no() : "");
e.setNatTime(DateUtils.parseDate(natInfo.getTest_time(), DateUtils.DATE_TIME_PATTERN));
e.setNatResult(natInfo.getSample_result_pcr());
String resultPcr = natInfo.getSample_result_pcr();
//检测结果 转换 我们 0:阴性 1:阳性, 他们 :1:阳性,2:阴性
e.setNatResult(NumConstant.ZERO_STR);
if (NumConstant.ONE_STR.equals(resultPcr)){
e.setNatResult(NumConstant.ONE_STR);
}
e.setNatAddress(natInfo.getSampling_org_pcr());
e.setAgencyId(idCard.getAgencyId());
e.setPids(idCard.getPids());
@ -444,13 +478,11 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
entities.forEach(e -> existNatInfos.stream().filter(i -> i.getUserId().equals(e.getUserId()) && i.getIdCard().equals(e.getIdCard())).forEach(i -> e.setExistStatus(true)));
Map<Boolean, List<IcNatEntity>> groupByStatus = entities.stream().collect(Collectors.groupingBy(IcNatEntity::getExistStatus));
if (CollectionUtils.isNotEmpty(groupByStatus.get(false))) {
for (List<IcNatEntity> icNatEntities : ListUtils.partition(groupByStatus.get(false), 500)) {
for (List<IcNatEntity> icNatEntities : ListUtils.partition(groupByStatus.get(false), NumConstant.FIVE_HUNDRED)) {
icNatService.insertBatch(icNatEntities);
}
}
//组织关系表
List<IcNatRelationEntity> relationEntities = new ArrayList<>();
entities.forEach(ne -> {
icNatEntities.forEach(ne -> {
// 不是居民的先不加关系表吧
if (ne.getIsResiUser().equals(NumConstant.ONE_STR)) {
IcNatRelationEntity e = new IcNatRelationEntity();
@ -463,10 +495,14 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
}
});
if (CollectionUtils.isNotEmpty(relationEntities)) {
for (List<IcNatRelationEntity> icNatRelationEntities : ListUtils.partition(relationEntities, 500)) {
icNatRelationService.insertBatch(icNatRelationEntities);
icNatRelationService.insertBatch(relationEntities);
}
}
}
}
} catch (Exception e) {
log.error("hsjc exception", e);
}
}
@ -488,7 +524,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
this.dbDisablityEntity = dbDisablityEntity;
}
public JudgeDealStatus(JSONObject thirdResultObject,DataSyncRecordDeathDTO dbDeathEntity) {
public JudgeDealStatus(JSONObject thirdResultObject, DataSyncRecordDeathDTO dbDeathEntity) {
this.thirdResultObject = thirdResultObject;
this.dbDeathEntity = dbDeathEntity;
}
@ -550,27 +586,27 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
public JudgeDealStatus invokeDeath() {
//获取到了死亡记录 同步记录不存在 或者存在且状态不为为已处理 则返回true 继续下一个数据
if (thirdResultObject != null) {
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())){
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())) {
Integer dealStatusDb = dbDeathEntity.getDealStatus();
//数据库中的状态如果是已处理 改为未处理
if (dealStatusDb.equals(NumConstant.ONE)){
if (dealStatusDb.equals(NumConstant.ONE)) {
dealStatus = 0;
dealResult = "";
isNeedSetStatus = true;
}else{
} else {
isNext = true;
return this;
}
}
}else{
} else {
//没有获取到 死亡记录
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())){
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())) {
Integer dealStatusDb = dbDeathEntity.getDealStatus();
//数据库中的状态如果是未处理 或处理失败 则继续下一条
if (dealStatusDb.equals(NumConstant.ONE)){
if (dealStatusDb.equals(NumConstant.ONE)) {
isNext = true;
return this;
}else{
} else {
dealStatus = 1;
dealResult = "系统比对数据一致,自动处理";
isNeedSetStatus = true;

2
epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml

@ -61,7 +61,9 @@
DISTINCT ID_CARD AS idCard,
CUSTOMER_ID,
ID AS userId,
`NAME`,
AGENCY_ID AS agencyId,
GRID_ID,
<if test="categoryColumn != null and categoryColumn != ''">
${categoryColumn} AS categoryColumn,
</if>

6
epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml

@ -17,7 +17,11 @@
<result property="cjzk" column="CJZK"/>
<result property="cjlb" column="CJLB"/>
<result property="eduLevel" column="EDU_LEVEL"/>
<result property="maritalStatus" column="MARITAL_STATUS"/>
<result property="maritalStatusName" column="MARITAL_STATUS_NAME"/>
<result property="mzCn" column="MZ_CN"/>
<result property="gender" column="GENDER"/>
<result property="residentAdd" column="RESIDENT_ADD"/>
<result property="nowAdd" column="NOW_ADD"/>
<result property="guardian" column="GUARDIAN"/>
<result property="guardianPhone" column="GUARDIAN_PHONE"/>
<result property="dealStatus" column="DEAL_STATUS"/>

22
epmet-user/epmet-user-server/src/test/java/com/epmet/service/DataSyncConfigServiceTest.java

@ -0,0 +1,22 @@
package com.epmet.service;
import com.epmet.dto.form.DataSyncTaskParam;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class DataSyncConfigServiceTest {
@Autowired
private DataSyncConfigService dataSyncConfigService;
@Test
public void dataSyncForYanTaiTask() {
DataSyncTaskParam param = new DataSyncTaskParam();
dataSyncConfigService.dataSyncForYanTaiTask(param);
}
}
Loading…
Cancel
Save