diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 9abd3a1073..24ca6b3873 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -922,7 +922,7 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/userbaseinfo/dingResiLogin") Result dingResiLogin(@RequestBody DingLoginResiFormDTO formDTO); - @PostMapping("/epmetuser/dataSyncConfig/natInfoScanTask") + @PostMapping("/epmetuser/dataSyncConfig/dataSyncForYanTaiTask") Result natInfoScanTask(@RequestBody DataSyncTaskParam formDTO); /** @@ -943,4 +943,13 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("/epmetuser/registerrelation/getAllResiByGrid") Result getAllResiByGrid(@RequestBody AllResiByGridFormDTO formDTO); + + @PostMapping("/epmetuser/dataSyncConfig/natInfoScanTask") + Result natInfoScanTaskV2(@RequestBody DataSyncTaskParam formDTO); + + @PostMapping("/epmetuser/dataSyncConfig/deathInfoScanTask") + Result deathInfoScanTask(@RequestBody DataSyncTaskParam formDTO); + + @PostMapping("/epmetuser/dataSyncConfig/disabilityInfoScanTask") + Result disabilityInfoScanTask(@RequestBody DataSyncTaskParam formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 2e198c04d9..d13aab8c15 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -726,4 +726,19 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result getAllResiByGrid(AllResiByGridFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getAllResiByGrid", formDTO); } + + @Override + public Result natInfoScanTaskV2(DataSyncTaskParam formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "natInfoScanTaskV2", formDTO); + } + + @Override + public Result deathInfoScanTask(DataSyncTaskParam formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deathInfoScanTask", formDTO); + } + + @Override + public Result disabilityInfoScanTask(DataSyncTaskParam formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "disabilityInfoScanTask", formDTO); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java new file mode 100644 index 0000000000..41bdd00158 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java @@ -0,0 +1,15 @@ +package com.epmet.constant; + +public interface EpidemicConstant { + + /** + * 数据配置的dataCode + * 核酸检测 + * 残疾人 + * 死亡 + */ + String DATA_CODE_NAT = "hesuan"; + String DATA_CODE_DISABILITY = "canji"; + String DATA_CODE_DEATH = "siwang"; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncConfigController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncConfigController.java index 56ec47f551..7f67e1df52 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncConfigController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncConfigController.java @@ -106,18 +106,42 @@ public class DataSyncConfigController { return new Result(); } + @PostMapping("dataSyncForYanTaiTask") + public Result dataSyncForYanTaiTask(@RequestBody DataSyncTaskParam formDTO){ + dataSyncConfigService.dataSyncForYanTaiTask(formDTO); + return new Result(); + } + + /** + * @Description 核酸检测信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 10:37 + */ @PostMapping("natInfoScanTask") public Result natInfoScanTask(@RequestBody DataSyncTaskParam formDTO){ - dataSyncConfigService.dataSyncForYanTaiTask(formDTO); + dataSyncConfigService.natInfoScanTask(formDTO); return new Result(); } + /** + * @Description 死亡信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 09:01 + */ @PostMapping("deathInfoScanTask") public Result deathInfoScanTask(@RequestBody DataSyncTaskParam formDTO){ dataSyncConfigService.deathInfoScanTask(formDTO); return new Result(); } + /** + * @Description 残疾信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 09:01 + */ @PostMapping("disabilityInfoScanTask") public Result disabilityInfoScanTask(@RequestBody DataSyncTaskParam formDTO){ dataSyncConfigService.disabilityInfoScanTask(formDTO); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncConfigDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncConfigDao.java index 2963617263..35bbc6266d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncConfigDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncConfigDao.java @@ -38,7 +38,7 @@ public interface DataSyncConfigDao extends BaseDao { * @author zxc * @date 2022/9/26 15:04 */ - List list(@Param("customerId") String customerId, @Param("switchStatus") String switchStatus); + List list(@Param("customerId") String customerId, @Param("switchStatus") String switchStatus, @Param("dataCode")String dataCode); List scopeList(@Param("id") String id); @@ -60,4 +60,6 @@ public interface DataSyncConfigDao extends BaseDao { */ List getIdCardsByScope(DataSyncTaskParam formDTO); + DataSyncConfigDTO getConfigInfoByType(@Param("customerId") String customerId, @Param("switchStatus") String switchStatus,@Param("dataCode")String dataCode); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncConfigService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncConfigService.java index 50e65d3b23..8ffba84f3b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncConfigService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncConfigService.java @@ -84,8 +84,28 @@ public interface DataSyncConfigService extends BaseService void dataSyncForYanTaiTask(DataSyncTaskParam formDTO); + /** + * @Description 死亡信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 09:01 + */ void deathInfoScanTask(DataSyncTaskParam formDTO); + /** + * @Description 残疾信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 09:01 + */ void disabilityInfoScanTask(DataSyncTaskParam formDTO); + /** + * @Description 核酸检测信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 10:37 + */ + void natInfoScanTask(DataSyncTaskParam formDTO); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java index cd544907bb..81a894be8e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java @@ -21,6 +21,7 @@ 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.YtHsResUtils; +import com.epmet.constant.EpidemicConstant; import com.epmet.dao.DataSyncConfigDao; import com.epmet.dao.IcNatDao; import com.epmet.dto.DataSyncConfigDTO; @@ -134,7 +135,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl result = new PageData<>(new ArrayList<>(), NumConstant.ZERO_L); PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()) - .doSelectPageInfo(() -> baseDao.list(tokenDto.getCustomerId(), null)); + .doSelectPageInfo(() -> baseDao.list(tokenDto.getCustomerId(), null,null)); if (CollectionUtils.isNotEmpty(pageInfo.getList())) { result.setList(pageInfo.getList()); result.setTotal(Integer.parseInt(String.valueOf(pageInfo.getTotal()))); @@ -189,7 +190,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl allConfigList = baseDao.list(formDTO.getCustomerId(), "open"); + List allConfigList = baseDao.list(formDTO.getCustomerId(), "open",null); if (CollectionUtils.isEmpty(allConfigList)) { return; } @@ -233,7 +234,43 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl configData = getConfigData(null, EpidemicConstant.DATA_CODE_DEATH); + if (CollectionUtils.isEmpty(configData)){ + log.warn("deathInfoScanTask not exists config data,customer is "+formDTO.getCustomerId()); + return; + } + long count = configData.stream().filter(o -> CollectionUtils.isNotEmpty(o.getScopeList())).count(); + if (count < 1) { + log.warn("deathInfoScanTask scopeList is null"); + return; + } + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_THOUSAND; + List dbResiList = null; + do { + for (DataSyncConfigDTO config : configData) { + // 设置查询数据范围 + formDTO.setOrgList(config.getScopeList()); + DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode()); + dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize); + if (CollectionUtils.isEmpty(dbResiList)) { + continue; + } + switch (anEnum) { + case SI_WANG: + try { + //查询正常状态的居民 + siWang(dbResiList); + log.info("======siWang信息拉取结束======"); + } catch (Exception e) { + log.error("death thread execute exception", e); + } + default: + log.warn("没有要处理的数据"); + } + } + pageNo++; + } while (dbResiList != null && dbResiList.size() == pageSize); } /** @@ -244,7 +281,116 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl configData = getConfigData(null, EpidemicConstant.DATA_CODE_DISABILITY); + if (CollectionUtils.isEmpty(configData)){ + log.warn("disabilityInfoScanTask not exists config data,customer is "+formDTO.getCustomerId()); + return; + } + long count = configData.stream().filter(o -> CollectionUtils.isNotEmpty(o.getScopeList())).count(); + if (count < 1) { + log.warn("disabilityInfoScanTask scopeList is null"); + return; + } + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_THOUSAND; + List dbResiList = null; + do { + for (DataSyncConfigDTO config : configData) { + // 设置查询数据范围 + formDTO.setOrgList(config.getScopeList()); + formDTO.setCategoryColumn("IS_CJ"); + DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode()); + dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize); + if (CollectionUtils.isEmpty(dbResiList)) { + continue; + } + switch (anEnum) { + case CAN_JI: + try { + //查询正常状态的居民 + canJi(dbResiList); + log.info("======canJi信息拉取结束======"); + } catch (Exception e) { + log.error("disability thread execute exception", e); + } + break; + default: + log.warn("没有要处理的数据"); + } + } + pageNo++; + } while (dbResiList != null && dbResiList.size() == pageSize); + } + /** + * @Description 核酸检测信息定时拉取 + * @param formDTO + * @Author zxc + * @Date 2022/11/8 10:37 + */ + @Override + public void natInfoScanTask(DataSyncTaskParam formDTO) { + List configData = new ArrayList<>(); + if (StringUtils.isBlank(formDTO.getAgencyId())){ + configData = getConfigData(null, EpidemicConstant.DATA_CODE_DISABILITY); + if (CollectionUtils.isEmpty(configData)){ + log.warn("natInfoScanTask not exists config data,customer is "+formDTO.getCustomerId()); + return; + } + long count = configData.stream().filter(o -> CollectionUtils.isNotEmpty(o.getScopeList())).count(); + if (count < 1) { + log.warn("natInfoScanTask scopeList is null"); + return; + } + } + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_THOUSAND; + List dbResiList = null; + do { + if (StringUtils.isBlank(formDTO.getAgencyId())){ + for (DataSyncConfigDTO config : configData) { + // 设置查询数据范围 + formDTO.setOrgList(config.getScopeList()); + DataSyncEnum anEnum = DataSyncEnum.getEnum(config.getDataCode()); + dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize); + if (CollectionUtils.isEmpty(dbResiList)) { + continue; + } + switch (anEnum) { + case HE_SUAN: + try { + //查询正常状态的居民 + yantaiHsjcByDbView(dbResiList, config.getCustomerId(), formDTO.getIsSync()); + log.info("======核酸检测信息拉取结束======"); + } catch (Exception e) { + log.error("nat thread execute exception", e); + } + break; + default: + log.warn("没有要处理的数据"); + } + } + }else { + dbResiList = getNatUserInfoFromDb(formDTO, pageNo, pageSize); + if (CollectionUtils.isEmpty(dbResiList)){ + return; + } + yantaiHsjcByDbView(dbResiList, dbResiList.get(NumConstant.ZERO).getCustomerId(), formDTO.getIsSync()); + } + pageNo++; + } while (dbResiList != null && dbResiList.size() == pageSize); + } + + /** + * @Description 配置信息查询 + * @param customerId + * @param dataCode + * @Author zxc + * @Date 2022/11/8 10:41 + */ + public List getConfigData(String customerId, String dataCode){ + List allConfigList = baseDao.list(customerId, "open",dataCode); + return CollectionUtils.isEmpty(allConfigList) ? new ArrayList<>() : allConfigList; } private void dataSyncYanTaiParallel(List configList, DataSyncTaskParam formDTO) { diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml index cc4209f310..911b5102bd 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml @@ -47,6 +47,9 @@ AND CUSTOMER_ID = #{customerId} + + AND data_code = #{dataCode} + order by sort @@ -103,4 +106,12 @@ ORDER BY CREATED_TIME + +