Browse Source

同步暂提

dev
zxc 3 years ago
parent
commit
00893b976b
  1. 12
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/DataSyncTaskParam.java
  2. 102
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  3. 23
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml

12
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/DataSyncTaskParam.java

@ -1,5 +1,6 @@
package com.epmet.dto.form; package com.epmet.dto.form;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.dto.DataSyncScopeDTO; import com.epmet.dto.DataSyncScopeDTO;
import lombok.Data; import lombok.Data;
@ -35,4 +36,15 @@ public class DataSyncTaskParam implements Serializable {
* 类别字段 * 类别字段
*/ */
public String categoryColumn; public String categoryColumn;
/**
* 是否同步 10
*/
private String isSync = NumConstant.ZERO_STR;
/**
* 核酸检测信息列表 点击同步时使用此字段 不使用数据配置的范围
*/
private String agencyId = null;
private String dataCode;
} }

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

@ -8,11 +8,13 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; 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.YtHscyResDTO;
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.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;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
@ -178,58 +180,66 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
return; return;
} }
//TODO 根据dataCode 调用不同的方法 抽取数据 //TODO 根据dataCode 调用不同的方法 抽取数据
if (CollectionUtils.isEmpty(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;
} }
for (DataSyncConfigDTO config : allConfigList) { if (StringUtils.isNotBlank(formDTO.getDataCode())){
allConfigList.forEach(c -> {
//没有配置 数据拉取范围 继续下次循环 if (c.getDataCode().equals(formDTO.getDataCode())){
if (CollectionUtils.isEmpty(config.getScopeList())) { disAllData(c,formDTO);
continue; return;
}
//没传具体参数 则 按照
int pageNo = NumConstant.ONE;
int pageSize = 1;//todo fangkaita NumConstant.ONE_THOUSAND;
//ToDo 去掉
formDTO.setIdCards(Collections.singletonList("370283199912010302"));
List<NatUserInfoResultDTO> dbResiList = null;
//设置查询数据范围
formDTO.setOrgList(config.getScopeList());
DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode());
do {
switch (anEnum) {
case HE_SUAN:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
if (CollectionUtils.isEmpty(dbResiList)) {
break;
}
hsjc(dbResiList, config.getCustomerId());
break;
case CAN_JI:
//查询正常状态的居民 并回显 残疾状态
formDTO.setCategoryColumn("IS_CJ");
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
canJi(dbResiList);
break;
case SI_WANG:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
siWang(dbResiList);
break;
default:
log.warn("没有要处理的数据");
} }
pageNo++; });
} while (false);//todo fangkaita(dbResiList != null && dbResiList.size() == pageSize); }else {
for (DataSyncConfigDTO config : allConfigList) {
//没有配置 数据拉取范围 继续下次循环
if (CollectionUtils.isEmpty(config.getScopeList())) {
continue;
}
disAllData(config,formDTO);
}
} }
}
private void disAllData(DataSyncConfigDTO config,DataSyncTaskParam formDTO){
//没传具体参数 则 按照
int pageNo = NumConstant.ONE;
int pageSize = 1;//todo fangkaita NumConstant.ONE_THOUSAND;
//ToDo 去掉
formDTO.setIdCards(Collections.singletonList("370283199912010302"));
List<NatUserInfoResultDTO> dbResiList = null;
//设置查询数据范围
formDTO.setOrgList(config.getScopeList());
DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode());
do {
switch (anEnum) {
case HE_SUAN:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
if (CollectionUtils.isEmpty(dbResiList)) {
break;
}
hsjc(dbResiList, config.getCustomerId());
break;
case CAN_JI:
//查询正常状态的居民 并回显 残疾状态
formDTO.setCategoryColumn("IS_CJ");
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
canJi(dbResiList);
break;
case SI_WANG:
//查询正常状态的居民
dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize);
siWang(dbResiList);
break;
default:
log.warn("没有要处理的数据");
}
pageNo++;
} while (false);//todo fangkaita(dbResiList != null && dbResiList.size() == pageSize);
} }
private void siWang(List<NatUserInfoResultDTO> dbResiList) { private void siWang(List<NatUserInfoResultDTO> dbResiList) {
@ -446,8 +456,9 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
try { try {
List<IcNatEntity> entities = new ArrayList<>(); List<IcNatEntity> entities = new ArrayList<>();
idCards.forEach(idCard -> { idCards.forEach(idCard -> {
YtHscyResDTO sampleResult = YtHsResUtils.hscy(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE);
YtHsjcResDTO natInfoResult = YtHsResUtils.hsjc(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE); YtHsjcResDTO natInfoResult = YtHsResUtils.hsjc(idCard.getIdCard(), NumConstant.ONE, NumConstant.ONE);
if (CollectionUtils.isNotEmpty(natInfoResult.getData())) { if ((CollectionUtils.isEmpty(sampleResult.getData()) && CollectionUtils.isNotEmpty(natInfoResult.getData())) || (CollectionUtils.isNotEmpty(sampleResult.getData()) && CollectionUtils.isNotEmpty(natInfoResult.getData()))) {
natInfoResult.getData().forEach(natInfo -> { natInfoResult.getData().forEach(natInfo -> {
IcNatEntity e = new IcNatEntity(); IcNatEntity e = new IcNatEntity();
e.setCustomerId(customerId); e.setCustomerId(customerId);
@ -458,6 +469,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
e.setMobile(StringUtils.isNotBlank(natInfo.getTelephone()) ? natInfo.getTelephone() : ""); e.setMobile(StringUtils.isNotBlank(natInfo.getTelephone()) ? natInfo.getTelephone() : "");
e.setIdCard(StringUtils.isNotBlank(natInfo.getCard_no()) ? natInfo.getCard_no() : ""); e.setIdCard(StringUtils.isNotBlank(natInfo.getCard_no()) ? natInfo.getCard_no() : "");
e.setNatTime(DateUtils.parseDate(natInfo.getTest_time(), DateUtils.DATE_TIME_PATTERN)); e.setNatTime(DateUtils.parseDate(natInfo.getTest_time(), DateUtils.DATE_TIME_PATTERN));
e.setSampleTime(DateUtils.parseDate(natInfo.getSample_time(), DateUtils.DATE_TIME_PATTERN));
String resultPcr = natInfo.getSample_result_pcr(); String resultPcr = natInfo.getSample_result_pcr();
//检测结果 转换 我们 0:阴性 1:阳性, 他们 :1:阳性,2:阴性 //检测结果 转换 我们 0:阴性 1:阳性, 他们 :1:阳性,2:阴性
e.setNatResult(NumConstant.ZERO_STR); e.setNatResult(NumConstant.ZERO_STR);

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

@ -86,14 +86,21 @@
#{idCard} #{idCard}
</foreach> </foreach>
</if> </if>
AND ( <choose>
<foreach collection="orgList" item="l" separator="OR"> <when test='null == agencyId'>
<choose> AND (
<when test='"grid" == l.orgType'>GRID_ID = #{l.orgId}</when> <foreach collection="orgList" item="l" separator="OR">
<otherwise>PIDS LIKE CONCAT(#{l.orgIdPath},'%')</otherwise> <choose>
</choose> <when test='"grid" == l.orgType'>GRID_ID = #{l.orgId}</when>
</foreach> <otherwise>PIDS LIKE CONCAT(#{l.orgIdPath},'%')</otherwise>
) </choose>
</foreach>
)
</when>
<otherwise>
AND PIDS LIKE CONCAT(#{agencyId},'%')
</otherwise>
</choose>
ORDER BY CREATED_TIME ORDER BY CREATED_TIME
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save