Browse Source

Merge remote-tracking branch 'origin/dev_compare_data' into dev_compare_data

master
sunyuchao 3 years ago
parent
commit
d3514a13fd
  1. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java
  2. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java
  3. 21
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  4. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java

3
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/EpidemicConstant.java

@ -21,7 +21,8 @@ public interface EpidemicConstant {
*/ */
String JOB_TYPE_NAT = "nat"; String JOB_TYPE_NAT = "nat";
String JOB_TYPE_VACCINE = "vaccine"; String JOB_TYPE_VACCINE = "vaccine";
String JOB_TYPE_COMPARISON = "comparison"; // 居民信息对比
String JOB_TYPE_COMPARISON_RESI = "comparison_resi";
String OPERATION_STATUS_WAITING = "waiting"; String OPERATION_STATUS_WAITING = "waiting";
String OPERATION_STATUS_PROCESSING = "processing"; String OPERATION_STATUS_PROCESSING = "processing";

15
epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiComparisonSyncProcessor.java → epmet-user/epmet-user-server/src/main/java/com/epmet/processor/YanTaiResiComparisonSyncProcessor.java

@ -7,7 +7,6 @@ import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.constant.EpidemicConstant; import com.epmet.constant.EpidemicConstant;
import com.epmet.dao.IcSyncJobDao; import com.epmet.dao.IcSyncJobDao;
import com.epmet.entity.IcSyncJobEntity; import com.epmet.entity.IcSyncJobEntity;
import com.epmet.service.DataSyncConfigService;
import com.epmet.service.IcResiComparisonRecordService; import com.epmet.service.IcResiComparisonRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock; import org.redisson.api.RLock;
@ -20,12 +19,14 @@ import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.epmet.constant.EpidemicConstant.JOB_TYPE_NAT; /**
* @Description 居民一致性对比任务处理器
// 烟台数据比对 * @Author wxz
* @Date 2022/11/15 下午5:54
*/
@Component @Component
@Slf4j @Slf4j
public class YanTaiComparisonSyncProcessor { public class YanTaiResiComparisonSyncProcessor {
public static final int MAX_EXECUTING_COUNT = 3; public static final int MAX_EXECUTING_COUNT = 3;
@ -67,10 +68,10 @@ public class YanTaiComparisonSyncProcessor {
RLock lock = null; RLock lock = null;
try { try {
lock = distributedLock.getLock("data:sync:" + "comparison", 60L, 60L, TimeUnit.SECONDS); lock = distributedLock.getLock("data:sync:comparison:resi", 60L, 60L, TimeUnit.SECONDS);
// 查询可执行的任务列表,并且异步执行 // 查询可执行的任务列表,并且异步执行
List<IcSyncJobEntity> icSyncJobToExec = icSyncJobDao.selectExecutableJobList( List<IcSyncJobEntity> icSyncJobToExec = icSyncJobDao.selectExecutableJobList(
EpidemicConstant.JOB_TYPE_COMPARISON, EpidemicConstant.JOB_TYPE_COMPARISON_RESI,
leftCount); leftCount);
if (!CollectionUtils.isEmpty(icSyncJobToExec)) { if (!CollectionUtils.isEmpty(icSyncJobToExec)) {

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

@ -2,6 +2,7 @@ package com.epmet.service.impl;
import java.util.Date; import java.util.Date;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -1103,19 +1104,29 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
"]"; "]";
// List<Map> vaccineList = JSON.parseArray(json,Map.class); // List<Map> vaccineList = JSON.parseArray(json,Map.class);
List<Map<String,Object>> vaccineList = yantaiNamedParamLantuJdbcTemplate.queryForList( List<Map<String,Object>> vaccineList = yantaiNamedParamLantuJdbcTemplate.queryForList(
"select data, name, card_no, vaccineCount from t_ymjz_info where card_no in (:idcards)", args); "select data, name, cardno, vaccineCount from t_ymjz_info where cardno in (:idcards)", args);
List<YTVaccineListDTO> ytVaccineListDTOS = new ArrayList<>(); List<YTVaccineListDTO> ytVaccineListDTOS = new ArrayList<>();
if (CollectionUtils.isNotEmpty(vaccineList)) { if (CollectionUtils.isNotEmpty(vaccineList)) {
vaccineList.forEach(v -> { vaccineList.forEach(v -> {
if (v.containsKey("data")){ if (v.containsKey("data")){
Map<String, Object> data = (Map<String, Object>) v.get("data"); JSONObject jo = JSON.parseObject((String) v.get("data"));
if (data.containsKey("vaccineList")){ if (jo.containsKey("vaccineList")) {
List<YTVaccineListDTO> vaccineList1 = JSON.parseArray(data.get("vaccineList").toString(), YTVaccineListDTO.class); JSONArray vaccineListJA = jo.getJSONArray("vaccineList");
List<YTVaccineListDTO> vaccineList1 = vaccineListJA.toJavaList(YTVaccineListDTO.class);
vaccineList1.forEach(v1 -> { vaccineList1.forEach(v1 -> {
v1.setCardno(v.get("cardno").toString()); v1.setCardno(v.get("cardno").toString());
}); });
ytVaccineListDTOS.addAll(vaccineList1); ytVaccineListDTOS.addAll(vaccineList1);
} }
//Map<String, Object> data = (Map<String, Object>) v.get("data");
//if (data.containsKey("vaccineList")){
// List<YTVaccineListDTO> vaccineList1 = JSON.parseArray(data.get("vaccineList").toString(), YTVaccineListDTO.class);
// vaccineList1.forEach(v1 -> {
// v1.setCardno(v.get("cardno").toString());
// });
// ytVaccineListDTOS.addAll(vaccineList1);
//}
} }
}); });
List<IcVaccineEntity> entities = new ArrayList<>(); List<IcVaccineEntity> entities = new ArrayList<>();
@ -1153,7 +1164,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
List<IcVaccineRelationEntity> relationEntities = new ArrayList<>(); List<IcVaccineRelationEntity> relationEntities = new ArrayList<>();
entities.forEach(e -> { entities.forEach(e -> {
IcVaccineRelationEntity re = new IcVaccineRelationEntity(); IcVaccineRelationEntity re = new IcVaccineRelationEntity();
re.setIcVaccineId(e.getAgencyId()); re.setIcVaccineId(e.getId());
re.setPids(e.getPids()); re.setPids(e.getPids());
re.setCustomerId(customerId); re.setCustomerId(customerId);
re.setUserType("ytPull"); re.setUserType("ytPull");

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiComparisonRecordServiceImpl.java

@ -249,7 +249,7 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl<IcResiCom
// 查询该组织是否存在等待中或者进行中的任务 // 查询该组织是否存在等待中或者进行中的任务
LambdaQueryWrapper<IcSyncJobEntity> qw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<IcSyncJobEntity> qw = new LambdaQueryWrapper<>();
qw.eq(IcSyncJobEntity::getOrgId, formDTO.getAgencyId()) qw.eq(IcSyncJobEntity::getOrgId, formDTO.getAgencyId())
.eq(IcSyncJobEntity::getJobType, EpidemicConstant.JOB_TYPE_COMPARISON) .eq(IcSyncJobEntity::getJobType, EpidemicConstant.JOB_TYPE_COMPARISON_RESI)
.in(IcSyncJobEntity::getOperationStatus, OPERATION_STATUS_WAITING, OPERATION_STATUS_PROCESSING); .in(IcSyncJobEntity::getOperationStatus, OPERATION_STATUS_WAITING, OPERATION_STATUS_PROCESSING);
List<IcSyncJobEntity> icSyncJobEntities = icSyncJobDao.selectList(qw); List<IcSyncJobEntity> icSyncJobEntities = icSyncJobDao.selectList(qw);
// 当前组织下存在同步任务 // 当前组织下存在同步任务
@ -263,7 +263,7 @@ public class IcResiComparisonRecordServiceImpl extends BaseServiceImpl<IcResiCom
e.setOrgId(formDTO.getAgencyId()); e.setOrgId(formDTO.getAgencyId());
e.setPid(agencyInfo.getPid()); e.setPid(agencyInfo.getPid());
e.setOrgIdPath(StringUtils.isBlank(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId()); e.setOrgIdPath(StringUtils.isBlank(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId());
e.setJobType(EpidemicConstant.JOB_TYPE_COMPARISON); e.setJobType(EpidemicConstant.JOB_TYPE_COMPARISON_RESI);
e.setOperatorId(formDTO.getUserId()); e.setOperatorId(formDTO.getUserId());
e.setOperationStatus(OPERATION_STATUS_WAITING); e.setOperationStatus(OPERATION_STATUS_WAITING);
icSyncJobDao.insert(e); icSyncJobDao.insert(e);

Loading…
Cancel
Save