Browse Source

改字段了

master
jianjun 3 years ago
parent
commit
26a23ceb31
  1. 107
      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. 412
      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

107
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 PAGE_SIZE = "PAGESIZE";
private static final String START = "ROWNUM"; private static final String START = "ROWNUM";
private static final String LIMIT = "PAGESIZE"; private static final String LIMIT = "PAGESIZE";
/** /**
* desc:图片同步扫描 * desc:图片同步扫描
* *
@ -35,24 +36,28 @@ public class YtHsResUtils {
try { try {
//String param = String.format("&card_no=%s&ROWNUM=%s&PAGESIZE=%s", cardNo, rowNum, pageSize); //String param = String.format("&card_no=%s&ROWNUM=%s&PAGESIZE=%s", cardNo, rowNum, pageSize);
//String apiUrl = url.concat(param); //String apiUrl = url.concat(param);
Map<String,Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE); param.put(APP_KEY, APP_KEY_VALUE);
param.put(CARD_NO,cardNo); param.put(CARD_NO, cardNo);
param.put(ROW_NUM,rowNum); param.put(ROW_NUM, rowNum);
param.put(PAGE_SIZE,pageSize); param.put(PAGE_SIZE, pageSize);
log.info("hsjc api param:{}",param); log.info("hsjc api param:{}", param);
Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"hsjcxx", param); //todo 核酸检测 mock数据 放开她
log.info("hsjc api result:{}",JSON.toJSONString(result)); //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()) { if (result.success()) {
return JSON.parseObject(result.getData(), YtHsjcResDTO.class); return JSON.parseObject(result.getData(), YtHsjcResDTO.class);
} }
} catch (Exception e) { } 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(); YtHsjcResDTO resultResult = new YtHsjcResDTO();
resultResult.setData(new ArrayList<>()); resultResult.setData(new ArrayList<>());
return resultResult; return resultResult;
} }
/** /**
* desc:死亡数据同步 * desc:死亡数据同步
* *
@ -65,48 +70,55 @@ public class YtHsResUtils {
// 3)idcard身份证号 必填 // 3)idcard身份证号 必填
// 4)start开始默认0 // 4)start开始默认0
// 5)limit每页记录数 // 5)limit每页记录数
Map<String,Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE); param.put(APP_KEY, APP_KEY_VALUE);
param.put("id_card",cardNo); param.put("id_card", cardNo);
param.put("name",userName); param.put("name", userName);
param.put("start",0); param.put("start", 0);
param.put("limit",1); param.put("limit", 1);
log.info("siWang api param:{}",param); log.info("siWang api param:{}", param);
//todo 放开他 //todo 放开他
//Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"mzt_hhrysj1", param); //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 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); 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(); String data = result.getData();
JSONObject jsonObject = JSON.parseObject(data); 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")); JSONObject firstData = JSON.parseObject(jsonObject.getString("data"));
if (realObject!= null&& realObject.getJSONArray("data") != null) {
//第二层 data //第二层 data
Object thirdData = realObject.getJSONArray("data").get(0); if (firstData != null && "200".equals(firstData.getString("code"))) {
YtDataSyncResDTO ytDataSyncResDTO = new YtDataSyncResDTO(200,"",thirdData.toString()); //第一层
return ytDataSyncResDTO; JSONObject secondData = JSON.parseObject(firstData.getString("data"));
}else { Object thirdData = "";
log.warn("canji 调用蓝图接口成功但是蓝图的结果中 省平台失败"); if (secondData != null && secondData.getJSONArray("data") != null) {
//第二层 data
thirdData = secondData.getJSONArray("data").get(0);
}
return new YtDataSyncResDTO(200, "", thirdData.toString());
} else {
log.warn("siWang 调用蓝图接口成功但是蓝图的结果中 省平台失败");
} }
}else { } else {
log.warn("canji 调用蓝图接口败"); log.warn("siWang 调用蓝图接口败");
} }
} catch (Exception e) { } 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(); return new YtDataSyncResDTO();
} }
/** /**
* desc:残疾数据同步 * desc:残疾数据同步
* @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理 *
* @return * @return
* @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理
*/ */
public static YtDataSyncResDTO canji(String idCard, String userName) { public static YtDataSyncResDTO canji(String idCard, String userName) {
@ -117,19 +129,19 @@ public class YtHsResUtils {
// 1)appkey // 1)appkey
// 2)name姓名 // 2)name姓名
// 3)citizenId身份证号 // 3)citizenId身份证号
Map<String,Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put(APP_KEY,APP_KEY_VALUE); param.put(APP_KEY, APP_KEY_VALUE);
param.put("citizenId",idCard); param.put("citizenId", idCard);
param.put("name",userName); param.put("name", userName);
log.info("canji api param:{}",param); log.info("canji api param:{}", param);
//todo 上线放开她 //todo 上线放开她
//Result<String> result = HttpClientManager.getInstance().sendGet(SERVER_URL+"sdcl_xxzx_czcjr1", param); //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); 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()) { if (result.success()) {
/*返回示例 /*返回示例
{ {
@ -153,25 +165,24 @@ public class YtHsResUtils {
String data = result.getData(); String data = result.getData();
JSONObject jsonObject = JSON.parseObject(data); JSONObject jsonObject = JSON.parseObject(data);
//他们的结果是成功的 //他们的结果是成功的
if (jsonObject!= null && "200".equals(jsonObject.getString("code"))){ if (jsonObject != null && "200".equals(jsonObject.getString("code"))) {
//第一层data //第一层data
JSONObject realObject = JSON.parseObject(jsonObject.getString("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 //第二层 data
String thirdData = realObject.getString("data"); String thirdData = realObject.getString("data");
YtDataSyncResDTO ytDataSyncResDTO = JSON.parseObject(thirdData, YtDataSyncResDTO.class); return JSON.parseObject(thirdData, YtDataSyncResDTO.class);
return ytDataSyncResDTO; } else {
}else {
log.warn("canji 调用蓝图接口成功但是蓝图的结果中 省平台失败"); log.warn("canji 调用蓝图接口成功但是蓝图的结果中 省平台失败");
} }
}else { } else {
log.warn("canji 调用蓝图接口败"); log.warn("canji 调用蓝图接口败");
} }
} }
} catch (Exception e) { } 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; return failResult;
} }
@ -179,11 +190,11 @@ public class YtHsResUtils {
public static void main(String[] args) { public static void main(String[] args) {
YtDataSyncResDTO canji = canji("123", "123"); YtDataSyncResDTO canji = canji("123", "123");
System.out.println("残疾结果:"+JSON.toJSON(canji)); System.out.println("残疾结果:" + JSON.toJSON(canji));
YtDataSyncResDTO siwang = siWang("1213", "!23"); 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 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 eduLevel;
/** /**
* 婚姻状况 * 婚姻状况 中文
*/ */
private String maritalStatus; private String maritalStatusName;
/**
* 民族 中文
*/
private String mzCn;
/**
* 性别1男2女
*/
private Integer gender;
/**
* 户籍地址
*/
private String residentAdd;
/**
* 现居住地址
*/
private String nowAdd;
/** /**
* 监护人 * 监护人

412
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.form.PageFormDTO;
import com.epmet.commons.tools.dto.result.YtDataSyncResDTO; import com.epmet.commons.tools.dto.result.YtDataSyncResDTO;
import com.epmet.commons.tools.dto.result.YtHsjcResDTO; 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.exception.EpmetException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -182,7 +180,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
//TODO 根据dataCode 调用不同的方法 抽取数据 //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"); log.warn("dataSyncForYanTaiTask don't have any resi data to pull data form YanTai interface");
return; return;
} }
@ -196,7 +194,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
//没传具体参数 则 按照 //没传具体参数 则 按照
int pageNo = NumConstant.ONE; 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; List<NatUserInfoResultDTO> dbResiList = null;
//设置查询数据范围 //设置查询数据范围
formDTO.setOrgList(config.getScopeList()); formDTO.setOrgList(config.getScopeList());
@ -206,7 +206,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
switch (anEnum) { switch (anEnum) {
case HE_SUAN: case HE_SUAN:
//查询正常状态的居民 //查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize); dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
if (CollectionUtils.isEmpty(dbResiList)) { if (CollectionUtils.isEmpty(dbResiList)) {
break; break;
} }
@ -215,75 +215,85 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
case CAN_JI: case CAN_JI:
//查询正常状态的居民 并回显 残疾状态 //查询正常状态的居民 并回显 残疾状态
formDTO.setCategoryColumn("IS_CJ"); formDTO.setCategoryColumn("IS_CJ");
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize); dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
canJi(dbResiList); canJi(dbResiList);
break; break;
case SI_WANG: case SI_WANG:
//查询正常状态的居民 //查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, anEnum, pageNo, pageSize); dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
siWang(dbResiList); siWang(dbResiList);
break; break;
default: default:
log.warn("没有要处理的数据"); log.warn("没有要处理的数据");
} }
pageNo++; pageNo++;
} while (dbResiList != null && dbResiList.size() == pageSize); } while (false);//todo fangkaita(dbResiList != null && dbResiList.size() == pageSize);
} }
} }
private void siWang(List<NatUserInfoResultDTO> dbResiList) { private void siWang(List<NatUserInfoResultDTO> dbResiList) {
List<DataSyncRecordDeathEntity> list = new ArrayList<>(); try {
for (NatUserInfoResultDTO dbResi : dbResiList) { List<DataSyncRecordDeathEntity> list = new ArrayList<>();
YtDataSyncResDTO thirdResult = YtHsResUtils.siWang(dbResi.getIdCard(), dbResi.getName()); for (NatUserInfoResultDTO dbResi : dbResiList) {
if (200 != thirdResult.getCode()) { YtDataSyncResDTO thirdResult = YtHsResUtils.siWang(dbResi.getIdCard(), dbResi.getName());
log.warn("canJi 调用蓝图接口失败了 继续处理下一个人"); if (200 != thirdResult.getCode()) {
continue; log.warn("canJi 调用蓝图接口失败了 继续处理下一个人");
} continue;
}
String thirdResultData = thirdResult.getData(); String thirdResultData = thirdResult.getData();
JSONObject thirdResultObject = JSON.parseObject(thirdResultData); JSONObject thirdResultObject = JSON.parseObject(thirdResultData);
LambdaQueryWrapper<DataSyncRecordDeathEntity> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DataSyncRecordDeathEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DataSyncRecordDeathEntity::getIdCard, dbResi.getIdCard()); queryWrapper.eq(DataSyncRecordDeathEntity::getIdCard, dbResi.getIdCard());
//获取数据库里的记录 //获取数据库里的记录
DataSyncRecordDeathDTO dbDeathEntity = dataSyncRecordDeathService.selectOne(queryWrapper); DataSyncRecordDeathDTO dbDeathEntity = dataSyncRecordDeathService.selectOne(queryWrapper);
JudgeDealStatus judgeDealStatus= new JudgeDealStatus(thirdResultObject,dbDeathEntity).invokeDeath(); JudgeDealStatus judgeDealStatus = new JudgeDealStatus(thirdResultObject, dbDeathEntity).invokeDeath();
if (judgeDealStatus.isStop()) { if (judgeDealStatus.isStop()) {
continue; 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());
entity.setGridId(dbResi.getGridId());
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"));
entity.setCremationTime(thirdResultObject.getString("CREMATION_TIME"));
entity.setMz(thirdResultObject.getString("FAMILY_ADD"));
entity.setOrganName(thirdResultObject.getString("CREATE_ORGAN_NAME"));
entity.setNation(thirdResultObject.getString("NATION"));
entity.setThirdRecordId(thirdResultObject.getString("RECORD_ID"));
}
DataSyncRecordDeathEntity entity = new DataSyncRecordDeathEntity(); entity.setDealStatus(NumConstant.ZERO);
entity.setId(dbDeathEntity.getId()); entity.setDealResult(StrConstant.EPMETY_STR);
entity.setCustomerId(dbResi.getCustomerId()); if (judgeDealStatus.isNeedSetStatus) {
entity.setAgencyId(dbResi.getAgencyId()); entity.setDealResult(judgeDealStatus.dealResult);
entity.setPids(dbResi.getPids()); entity.setDealStatus(judgeDealStatus.dealStatus);
entity.setGridId(dbResi.getGridId()); }
entity.setName(dbResi.getName()); entity.setUpdatedTime(new Date());
entity.setIdCard(dbResi.getIdCard()); list.add(entity);
entity.setIcResiUserId(dbResi.getUserId());
entity.setAge(thirdResultObject.getString("AGE"));
entity.setAddress(thirdResultObject.getString("FAMILY_ADD"));
entity.setDeathDate(thirdResultObject.getString("DEATH_DATE"));
entity.setCremationTime(thirdResultObject.getString("CREMATION_TIME"));
entity.setMz(thirdResultObject.getString("FAMILY_ADD"));
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);
} }
list.add(entity); if (list.size() == NumConstant.ZERO) {
} return;
if (list.size()==NumConstant.ZERO){ }
return; dataSyncRecordDeathService.saveOrUpdateBatch(list, NumConstant.TWO_HUNDRED);
} catch (Exception e) {
log.error("siwang exception", e);
} }
dataSyncRecordDeathService.saveOrUpdateBatch(list,NumConstant.TWO_HUNDRED);
} }
/** /**
@ -295,13 +305,13 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
* @param pageSize * @param pageSize
* @return * @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) PageInfo<NatUserInfoResultDTO> pageInfo = PageHelper.startPage(pageNo, pageSize, false)
.doSelectPageInfo(() -> baseDao.getIdCardsByScope(formDTO)); .doSelectPageInfo(() -> baseDao.getIdCardsByScope(formDTO));
List<NatUserInfoResultDTO> dbResiList; List<NatUserInfoResultDTO> dbResiList;
dbResiList = pageInfo.getList(); dbResiList = pageInfo.getList();
//如果传了身份证号 则按照身份证号查询 并同步记录, userId如果为空则是 手动录入的 此人没有录入居民库 但是也可以同步 /* //如果传了身份证号 则按照身份证号查询 并同步记录, userId如果为空则是 手动录入的 此人没有录入居民库 但是也可以同步
if (CollectionUtils.isNotEmpty(formDTO.getIdCards()) && DataSyncEnum.HE_SUAN.getCode().equals(anEnum.getCode())) { if (CollectionUtils.isNotEmpty(formDTO.getIdCards()) && DataSyncEnum.HE_SUAN.getCode().equals(anEnum.getCode())) {
List<NatUserInfoResultDTO> collect = formDTO.getIdCards().stream().map(id -> { List<NatUserInfoResultDTO> collect = formDTO.getIdCards().stream().map(id -> {
NatUserInfoResultDTO e = new NatUserInfoResultDTO(); NatUserInfoResultDTO e = new NatUserInfoResultDTO();
@ -314,95 +324,112 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
dbResiList.stream().filter(u -> u.getIdCard().equals(c.getIdCard())).forEach(u -> c.setUserId(u.getUserId())); dbResiList.stream().filter(u -> u.getIdCard().equals(c.getIdCard())).forEach(u -> c.setUserId(u.getUserId()));
} }
dbResiList = collect; dbResiList = collect;
} }*/
return dbResiList; return dbResiList;
} }
private void canJi(List<NatUserInfoResultDTO> resiList) { private void canJi(List<NatUserInfoResultDTO> resiList) {
List<DataSyncRecordDisabilityEntity> list = new ArrayList<>(); try {
for (NatUserInfoResultDTO dbResi : resiList) { List<DataSyncRecordDisabilityEntity> list = new ArrayList<>();
YtDataSyncResDTO thirdResult = YtHsResUtils.canji(dbResi.getIdCard(), dbResi.getName()); for (NatUserInfoResultDTO dbResi : resiList) {
if (200 != thirdResult.getCode()) { YtDataSyncResDTO thirdResult = YtHsResUtils.canji(dbResi.getIdCard(), dbResi.getName());
log.warn("canJi 调用蓝图接口失败了 继续处理下一个人"); if (200 != thirdResult.getCode()) {
continue; log.warn("canJi 调用蓝图接口失败了 继续处理下一个人");
} continue;
String thirdResultData = thirdResult.getData(); }
JSONObject thirdResultObject = JSON.parseObject(thirdResultData); String thirdResultData = thirdResult.getData();
JSONObject thirdResultObject = JSON.parseObject(thirdResultData);
LambdaQueryWrapper<DataSyncRecordDisabilityEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DataSyncRecordDisabilityEntity::getIdCard, dbResi.getIdCard());
//获取数据库里的记录
DataSyncRecordDisabilityDTO dbDisablityEntity = dataSyncRecordDisabilityService.selectOne(queryWrapper);
DataSyncRecordDisabilityEntity entity = new DataSyncRecordDisabilityEntity(); LambdaQueryWrapper<DataSyncRecordDisabilityEntity> queryWrapper = new LambdaQueryWrapper<>();
entity.setId(dbDisablityEntity.getId()); queryWrapper.eq(DataSyncRecordDisabilityEntity::getIdCard, dbResi.getIdCard());
//居民库里 是否是残疾 //获取数据库里的记录
String categoryColumn = dbResi.getCategoryColumn(); DataSyncRecordDisabilityDTO dbDisablityEntity = dataSyncRecordDisabilityService.selectOne(queryWrapper);
JudgeDealStatus judgeDealStatus = null; DataSyncRecordDisabilityEntity entity = new DataSyncRecordDisabilityEntity();
int disabilityStatus = 0; if (dbDisablityEntity != null && StringUtils.isNotBlank(dbDisablityEntity.getId())) {
//居民是残疾 entity.setId(dbDisablityEntity.getId());
if (NumConstant.ONE_STR.equals(categoryColumn)) { }
// 第三方返回了该人的 残疾记录 说明和居民库的状态一致 只需要处理 同步记录中的数据即可 //居民库里 是否是残疾
if (thirdResultObject != null) { String categoryColumn = dbResi.getCategoryColumn();
//todo 联调时看一下 为什么db == null 总是true
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).invoke();
if (judgeDealStatus.isStop()) { JudgeDealStatus judgeDealStatus = null;
continue; int disabilityStatus = 0;
//居民是残疾
if (NumConstant.ONE_STR.equals(categoryColumn)) {
// 第三方返回了该人的 残疾记录 说明和居民库的状态一致 只需要处理 同步记录中的数据即可
if (thirdResultObject != null) {
//todo 联调时看一下 为什么db == null 总是true
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).invoke();
if (judgeDealStatus.isStop()) {
continue;
}
disabilityStatus = 1;
} else {
//没有返回该人是残疾的数据 说明需要处理居民库的数据
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).notSame();
disabilityStatus = 0;
} }
disabilityStatus = 1;
} else { } else {
//没有返回该人是残疾的数据 说明需要处理居民库的数据 //居民不是残疾
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).notSame();
disabilityStatus = 0; // 第三方没有返回了该人的 残疾记录 说明和居民库的状态一致 只需要处理 同步记录中的数据即可
if (thirdResultObject == null) {
//todo 联调时看一下 为什么db == null 总是true
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).invoke();
if (judgeDealStatus.isStop()) {
continue;
}
disabilityStatus = 0;
} else {
//蓝图返回该人是残疾的数据 说明需要处理居民库的数据
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).notSame();
disabilityStatus = 1;
}
} }
} else {
//居民不是残疾 entity.setCustomerId(dbResi.getCustomerId());
entity.setAgencyId(dbResi.getAgencyId());
// 第三方没有返回了该人的 残疾记录 说明和居民库的状态一致 只需要处理 同步记录中的数据即可 entity.setPids(dbResi.getPids());
if (thirdResultObject == null) { entity.setGridId(dbResi.getGridId());
//todo 联调时看一下 为什么db == null 总是true entity.setName(dbResi.getName());
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).invoke(); entity.setIdCard(dbResi.getIdCard());
if (judgeDealStatus.isStop()) { entity.setIcResiUserId(dbResi.getUserId());
continue; 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.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);
} }
disabilityStatus = 0; entity.setResidentAdd(thirdResultObject.getString("residentAdd"));
} else { entity.setNowAdd(thirdResultObject.getString("nowAdd"));
//蓝图返回该人是残疾的数据 说明需要处理居民库的数据
judgeDealStatus = new JudgeDealStatus(dbDisablityEntity).notSame();
disabilityStatus = 1;
} }
}
entity.setCustomerId(dbResi.getCustomerId()); entity.setDealStatus(NumConstant.ZERO);
entity.setAgencyId(dbResi.getAgencyId()); entity.setDisabilityStatus(disabilityStatus);
entity.setPids(dbResi.getPids()); entity.setDealResult(StrConstant.EPMETY_STR);
entity.setGridId(dbResi.getGridId()); if (judgeDealStatus.isNeedSetStatus) {
entity.setName(dbResi.getName()); entity.setDealResult(judgeDealStatus.getDealResult());
entity.setIdCard(thirdResultObject.getString("citizenId")); entity.setDealStatus(judgeDealStatus.getDealStatus());
entity.setMobile(thirdResultObject.getString("phoneNo")); }
entity.setIcResiUserId(dbResi.getUserId()); entity.setUpdatedTime(new Date());
entity.setCardNum(thirdResultObject.getString("cardNum")); list.add(entity);
entity.setCjzk(thirdResultObject.getString("idtLevelName"));
entity.setCjlb(thirdResultObject.getString("idtKindName"));
entity.setEduLevel(thirdResultObject.getString("eduLevelName"));
entity.setMaritalStatus(thirdResultObject.getString("marriagerName"));
entity.setGuardian(thirdResultObject.getString("guardian"));
entity.setGuardianPhone(thirdResultObject.getString("guardianPhone"));
entity.setDealStatus(NumConstant.ZERO);
entity.setDisabilityStatus(disabilityStatus);
entity.setDealResult(StrConstant.EPMETY_STR);
if (judgeDealStatus.isNeedSetStatus) {
entity.setDealResult(judgeDealStatus.getDealResult());
entity.setDealStatus(judgeDealStatus.getDealStatus());
} }
list.add(entity); dataSyncRecordDisabilityService.saveOrUpdateBatch(list, NumConstant.TWO_HUNDRED);
} catch (Exception e) {
log.error("canJi exception", e);
} }
dataSyncRecordDisabilityService.saveOrUpdateBatch(list, NumConstant.TWO_HUNDRED);
} }
@ -414,59 +441,68 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
* @author zxc * @author zxc
* @date 2022/9/27 11:08 * @date 2022/9/27 11:08
*/ */
private void hsjc(List<NatUserInfoResultDTO> idCards, String customerId) { @Transactional(rollbackFor = Exception.class)
List<IcNatEntity> entities = new ArrayList<>(); public void hsjc(List<NatUserInfoResultDTO> idCards, String customerId) {
idCards.forEach(idCard -> { try {
YtHsjcResDTO natInfoResult = YtHsResUtils.hsjc(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE); List<IcNatEntity> entities = new ArrayList<>();
if (CollectionUtils.isNotEmpty(natInfoResult.getData())) { idCards.forEach(idCard -> {
natInfoResult.getData().forEach(natInfo -> { YtHsjcResDTO natInfoResult = YtHsResUtils.hsjc(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE);
IcNatEntity e = new IcNatEntity(); if (CollectionUtils.isNotEmpty(natInfoResult.getData())) {
e.setCustomerId(customerId); natInfoResult.getData().forEach(natInfo -> {
e.setIsResiUser(StringUtils.isBlank(idCard.getUserId()) ? NumConstant.ZERO_STR : NumConstant.ONE_STR); IcNatEntity e = new IcNatEntity();
e.setUserId(idCard.getUserId()); e.setCustomerId(customerId);
e.setUserType("sync"); e.setIsResiUser(StringUtils.isBlank(idCard.getUserId()) ? NumConstant.ZERO_STR : NumConstant.ONE_STR);
e.setName(StringUtils.isNotBlank(natInfo.getName()) ? natInfo.getName() : ""); e.setUserId(idCard.getUserId());
e.setMobile(StringUtils.isNotBlank(natInfo.getTelephone()) ? natInfo.getTelephone() : ""); e.setUserType("sync");
e.setIdCard(StringUtils.isNotBlank(natInfo.getCard_no()) ? natInfo.getCard_no() : ""); e.setName(StringUtils.isNotBlank(natInfo.getName()) ? natInfo.getName() : "");
e.setNatTime(DateUtils.parseDate(natInfo.getTest_time(), DateUtils.DATE_TIME_PATTERN)); e.setMobile(StringUtils.isNotBlank(natInfo.getTelephone()) ? natInfo.getTelephone() : "");
e.setNatResult(natInfo.getSample_result_pcr()); e.setIdCard(StringUtils.isNotBlank(natInfo.getCard_no()) ? natInfo.getCard_no() : "");
e.setNatAddress(natInfo.getSampling_org_pcr()); e.setNatTime(DateUtils.parseDate(natInfo.getTest_time(), DateUtils.DATE_TIME_PATTERN));
e.setAgencyId(idCard.getAgencyId()); String resultPcr = natInfo.getSample_result_pcr();
e.setPids(idCard.getPids()); //检测结果 转换 我们 0:阴性 1:阳性, 他们 :1:阳性,2:阴性
e.setAttachmentType(""); e.setNatResult(NumConstant.ZERO_STR);
e.setAttachmentUrl(""); if (NumConstant.ONE_STR.equals(resultPcr)){
entities.add(e); e.setNatResult(NumConstant.ONE_STR);
}); }
} e.setNatAddress(natInfo.getSampling_org_pcr());
}); e.setAgencyId(idCard.getAgencyId());
if (CollectionUtils.isNotEmpty(entities)) { e.setPids(idCard.getPids());
List<NatUserInfoResultDTO> existNatInfos = icNatDao.getExistNatInfo(entities); e.setAttachmentType("");
entities.forEach(e -> existNatInfos.stream().filter(i -> i.getUserId().equals(e.getUserId()) && i.getIdCard().equals(e.getIdCard())).forEach(i -> e.setExistStatus(true))); e.setAttachmentUrl("");
Map<Boolean, List<IcNatEntity>> groupByStatus = entities.stream().collect(Collectors.groupingBy(IcNatEntity::getExistStatus)); entities.add(e);
if (CollectionUtils.isNotEmpty(groupByStatus.get(false))) { });
for (List<IcNatEntity> icNatEntities : ListUtils.partition(groupByStatus.get(false), 500)) {
icNatService.insertBatch(icNatEntities);
}
}
//组织关系表
List<IcNatRelationEntity> relationEntities = new ArrayList<>();
entities.forEach(ne -> {
// 不是居民的先不加关系表吧
if (ne.getIsResiUser().equals(NumConstant.ONE_STR)) {
IcNatRelationEntity e = new IcNatRelationEntity();
e.setCustomerId(customerId);
e.setAgencyId(ne.getAgencyId());
e.setPids(ne.getPids());
e.setIcNatId(ne.getId());
e.setUserType("sync");
relationEntities.add(e);
} }
}); });
if (CollectionUtils.isNotEmpty(relationEntities)) { if (CollectionUtils.isNotEmpty(entities)) {
for (List<IcNatRelationEntity> icNatRelationEntities : ListUtils.partition(relationEntities, 500)) { List<NatUserInfoResultDTO> existNatInfos = icNatDao.getExistNatInfo(entities);
icNatRelationService.insertBatch(icNatRelationEntities); 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), NumConstant.FIVE_HUNDRED)) {
icNatService.insertBatch(icNatEntities);
//组织关系表
List<IcNatRelationEntity> relationEntities = new ArrayList<>();
icNatEntities.forEach(ne -> {
// 不是居民的先不加关系表吧
if (ne.getIsResiUser().equals(NumConstant.ONE_STR)) {
IcNatRelationEntity e = new IcNatRelationEntity();
e.setCustomerId(customerId);
e.setAgencyId(ne.getAgencyId());
e.setPids(ne.getPids());
e.setIcNatId(ne.getId());
e.setUserType("sync");
relationEntities.add(e);
}
});
if (CollectionUtils.isNotEmpty(relationEntities)) {
icNatRelationService.insertBatch(relationEntities);
}
}
} }
} }
} catch (Exception e) {
log.error("hsjc exception", e);
} }
} }
@ -488,7 +524,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
this.dbDisablityEntity = dbDisablityEntity; this.dbDisablityEntity = dbDisablityEntity;
} }
public JudgeDealStatus(JSONObject thirdResultObject,DataSyncRecordDeathDTO dbDeathEntity) { public JudgeDealStatus(JSONObject thirdResultObject, DataSyncRecordDeathDTO dbDeathEntity) {
this.thirdResultObject = thirdResultObject; this.thirdResultObject = thirdResultObject;
this.dbDeathEntity = dbDeathEntity; this.dbDeathEntity = dbDeathEntity;
} }
@ -550,27 +586,27 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
public JudgeDealStatus invokeDeath() { public JudgeDealStatus invokeDeath() {
//获取到了死亡记录 同步记录不存在 或者存在且状态不为为已处理 则返回true 继续下一个数据 //获取到了死亡记录 同步记录不存在 或者存在且状态不为为已处理 则返回true 继续下一个数据
if (thirdResultObject != null) { if (thirdResultObject != null) {
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())){ if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())) {
Integer dealStatusDb = dbDeathEntity.getDealStatus(); Integer dealStatusDb = dbDeathEntity.getDealStatus();
//数据库中的状态如果是已处理 改为未处理 //数据库中的状态如果是已处理 改为未处理
if (dealStatusDb.equals(NumConstant.ONE)){ if (dealStatusDb.equals(NumConstant.ONE)) {
dealStatus = 0; dealStatus = 0;
dealResult = ""; dealResult = "";
isNeedSetStatus = true; isNeedSetStatus = true;
}else{ } else {
isNext = true; isNext = true;
return this; return this;
} }
} }
}else{ } else {
//没有获取到 死亡记录 //没有获取到 死亡记录
if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())){ if (dbDeathEntity != null && StringUtils.isNotBlank(dbDeathEntity.getId())) {
Integer dealStatusDb = dbDeathEntity.getDealStatus(); Integer dealStatusDb = dbDeathEntity.getDealStatus();
//数据库中的状态如果是未处理 或处理失败 则继续下一条 //数据库中的状态如果是未处理 或处理失败 则继续下一条
if (dealStatusDb.equals(NumConstant.ONE)){ if (dealStatusDb.equals(NumConstant.ONE)) {
isNext = true; isNext = true;
return this; return this;
}else{ } else {
dealStatus = 1; dealStatus = 1;
dealResult = "系统比对数据一致,自动处理"; dealResult = "系统比对数据一致,自动处理";
isNeedSetStatus = true; isNeedSetStatus = true;

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

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

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

@ -17,7 +17,11 @@
<result property="cjzk" column="CJZK"/> <result property="cjzk" column="CJZK"/>
<result property="cjlb" column="CJLB"/> <result property="cjlb" column="CJLB"/>
<result property="eduLevel" column="EDU_LEVEL"/> <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="guardian" column="GUARDIAN"/>
<result property="guardianPhone" column="GUARDIAN_PHONE"/> <result property="guardianPhone" column="GUARDIAN_PHONE"/>
<result property="dealStatus" column="DEAL_STATUS"/> <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