diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/YTVaccineListDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/YTVaccineListDTO.java new file mode 100644 index 0000000000..94b2b30418 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/YTVaccineListDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/11/11 15:05 + */ +@Data +public class YTVaccineListDTO implements Serializable { + private static final long serialVersionUID = -5583350277850076659L; + + private String idCard; + + /** + * 接种时间 + */ + private String inoculateDate; + + /** + * 接种地点 + */ + private String lastStationName; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatUserInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatUserInfoResultDTO.java index 5b0300f764..ef4b4e0eab 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatUserInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatUserInfoResultDTO.java @@ -29,6 +29,8 @@ public class NatUserInfoResultDTO implements Serializable { private String name; + private String mobile; + /** * 18大类 中 某一类的 是否值,用于比较 同步数据结果确定是否要插入到表中 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java index 55b4591be3..f2c6829689 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java @@ -3,6 +3,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IcNatDTO; import com.epmet.dto.IcVaccineDTO; +import com.epmet.dto.YTVaccineListDTO; import com.epmet.dto.form.MyNatListFormDTO; import com.epmet.dto.form.VaccineListFormDTO; import com.epmet.dto.result.IcVaccineListResultDTO; @@ -72,4 +73,12 @@ public interface IcVaccineDao extends BaseDao { */ List getVaccineListByIdCard(@Param("idCard") String idCard,@Param("time") String time); + /** + * @Description 根据 身份证 + 疫苗接种时间 查询库里存在的 + * @param list + * @Author zxc + * @Date 2022/11/11 15:11 + */ + List getExistVaccine(@Param("list")List list); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineEntity.java index b17256f3a0..2a1121de34 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -61,6 +62,7 @@ public class IcVaccineEntity extends BaseEpmetEntity { /** * 接种时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private Date inoculateTime; /** @@ -93,4 +95,10 @@ public class IcVaccineEntity extends BaseEpmetEntity { */ private String remark; + @TableField(exist = false) + private String agencyId; + + @TableField(exist = false) + private String pids; + } 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 0f21e9e539..dff88efba3 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 @@ -11,7 +11,6 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.dto.form.PageFormDTO; -import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.YtDataSyncResDTO; import com.epmet.commons.tools.dto.result.YtHscyResDTO; import com.epmet.commons.tools.dto.result.YtHsjcResDTO; @@ -21,7 +20,6 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; 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.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; @@ -32,9 +30,11 @@ import com.epmet.constant.EpidemicConstant; import com.epmet.dao.DataSyncConfigDao; import com.epmet.dao.IcNatDao; import com.epmet.dao.IcSyncJobDao; +import com.epmet.dao.IcVaccineDao; import com.epmet.dto.DataSyncConfigDTO; import com.epmet.dto.DataSyncRecordDeathDTO; import com.epmet.dto.DataSyncRecordDisabilityDTO; +import com.epmet.dto.YTVaccineListDTO; import com.epmet.dto.form.ConfigSwitchFormDTO; import com.epmet.dto.form.DataSyncTaskParam; import com.epmet.dto.form.ScopeSaveFormDTO; @@ -48,7 +48,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; -import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @@ -59,7 +58,6 @@ import javax.annotation.Resource; import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; -import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -95,6 +93,12 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl args = new HashMap<>(); args.put("idcards", idCards); // todo 疫苗接种视图 - - List> vaccineList = yantaiNamedParamLantuJdbcTemplate.queryForList( - "select id, name,card_no, create_time from hscyxxb where card_no in (:idcards)", args); + String json = "[\n" + + "{\n" + + "\t\"idCard\":\"370785195001012558\",\n" + + "\t\"inoculateDate\":\"2023-01-01 10:01\",\n" + + "\t\"lastStationName\":\"北京\"\n" + + "},\n" + + "{\n" + + "\t\"idCard\":\"370785195001012558\",\n" + + "\t\"inoculateDate\":\"2022-01-01 10:01\",\n" + + "\t\"lastStationName\":\"南京\"\n" + + "}\n" + + "]"; + List> vaccineList = new ArrayList<>();/*yantaiNamedParamLantuJdbcTemplate.queryForList( + "select id, name,card_no, create_time from hscyxxb where card_no in (:idcards)", args);*/ + Map m = new HashMap<>(); + vaccineList.add(m); if (CollectionUtils.isNotEmpty(vaccineList)) { List entities = new ArrayList<>(); - vaccineList.forEach(resiVaccineInfo -> { - // 从视图中获取到的疫苗接种相关信息 - - }); +// List ytVaccineListDTOS = ConvertUtils.sourceToTarget(vaccineList, YTVaccineListDTO.class); + List ytVaccineListDTOS = JSON.parseArray(json,YTVaccineListDTO.class); + List existVaccine = icVaccineDao.getExistVaccine(ytVaccineListDTOS); + if (CollectionUtils.isNotEmpty(existVaccine)){ + for (YTVaccineListDTO e : existVaccine) { + for (int i = 0; i < ytVaccineListDTOS.size(); i++) { + if (ytVaccineListDTOS.get(i).getIdCard().equals(e.getIdCard()) && ytVaccineListDTOS.get(i).getInoculateDate().equals(e.getInoculateDate())){ + ytVaccineListDTOS.remove(i); + } + } + } + } + if (CollectionUtils.isNotEmpty(ytVaccineListDTOS)){ + ytVaccineListDTOS.forEach(v -> { + resiInfos.forEach(u -> { + if (v.getIdCard().equals(u.getIdCard())){ + IcVaccineEntity e = new IcVaccineEntity(); + e.setCustomerId(customerId); + e.setName(u.getName()); + e.setMobile(u.getMobile()); + e.setIdCard(u.getIdCard()); + e.setIsResiUser(StringUtils.isBlank(u.getUserId()) ? NumConstant.ZERO_STR : NumConstant.ONE_STR); + e.setUserId(StringUtils.isBlank(u.getUserId()) ? "" : u.getUserId()); + e.setUserType("ytPull"); + e.setInoculateTime(DateUtils.parseDate(v.getInoculateDate(),DateUtils.DATE_TIME_PATTERN_END_WITH_MINUTE)); + e.setInoculateAddress(v.getLastStationName()); + e.setAgencyId(u.getAgencyId()); + e.setPids(u.getPids()); + entities.add(e); + } + }); + }); + icVaccineService.insertBatch(entities); + List relationEntities = new ArrayList<>(); + entities.forEach(e -> { + IcVaccineRelationEntity re = new IcVaccineRelationEntity(); + re.setIcVaccineId(e.getAgencyId()); + re.setPids(e.getPids()); + re.setCustomerId(customerId); + re.setUserType("ytPull"); + re.setAgencyId(e.getAgencyId()); + relationEntities.add(re); + }); + icVaccineRelationService.insertBatch(relationEntities); + } } } 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 911b5102bd..7b0e96f023 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 @@ -70,7 +70,8 @@ ${categoryColumn} AS categoryColumn, - pids + pids, + mobile FROM ic_resi_user WHERE DEL_FLAG = '0' diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml index b8113074cf..77fca51a32 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml @@ -183,4 +183,18 @@ and ID_CARD = #{idCard} and DATE_FORMAT( INOCULATE_TIME, '%Y-%m-%d' ) = #{time} + + +