Browse Source

疫苗接种同步按钮-todo

dev
zxc 3 years ago
parent
commit
8fef98a908
  1. 27
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/YTVaccineListDTO.java
  2. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatUserInfoResultDTO.java
  3. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java
  4. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVaccineEntity.java
  5. 78
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  6. 3
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncConfigDao.xml
  7. 14
      epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineDao.xml

27
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;
}

2
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大类 某一类的 是否值用于比较 同步数据结果确定是否要插入到表中
*/

9
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<IcVaccineEntity> {
*/
List<IcVaccineEntity> getVaccineListByIdCard(@Param("idCard") String idCard,@Param("time") String time);
/**
* @Description 根据 身份证 + 疫苗接种时间 查询库里存在的
* @param list
* @Author zxc
* @Date 2022/11/11 15:11
*/
List<YTVaccineListDTO> getExistVaccine(@Param("list")List<YTVaccineListDTO> list);
}

8
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;
}

78
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<DataSyncConfigDao
private IcSyncJobDao icSyncJobDao;
@Autowired
private DistributedLock distributedLock;
@Autowired
private IcVaccineService icVaccineService;
@Autowired
private IcVaccineRelationService icVaccineRelationService;
@Autowired
private IcVaccineDao icVaccineDao;
@Resource(name = "yantaiNamedParamLantuJdbcTemplate")
private NamedParameterJdbcTemplate yantaiNamedParamLantuJdbcTemplate;
@ -1065,15 +1069,69 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
Map<String, Object> args = new HashMap<>();
args.put("idcards", idCards);
// todo 疫苗接种视图
List<Map<String, Object>> 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<Map<String, Object>> vaccineList = new ArrayList<>();/*yantaiNamedParamLantuJdbcTemplate.queryForList(
"select id, name,card_no, create_time from hscyxxb where card_no in (:idcards)", args);*/
Map<String, Object> m = new HashMap<>();
vaccineList.add(m);
if (CollectionUtils.isNotEmpty(vaccineList)) {
List<IcVaccineEntity> entities = new ArrayList<>();
vaccineList.forEach(resiVaccineInfo -> {
// 从视图中获取到的疫苗接种相关信息
// List<YTVaccineListDTO> ytVaccineListDTOS = ConvertUtils.sourceToTarget(vaccineList, YTVaccineListDTO.class);
List<YTVaccineListDTO> ytVaccineListDTOS = JSON.parseArray(json,YTVaccineListDTO.class);
List<YTVaccineListDTO> 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<IcVaccineRelationEntity> 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);
}
}
}

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

@ -70,7 +70,8 @@
<if test="categoryColumn != null and categoryColumn != ''">
${categoryColumn} AS categoryColumn,
</if>
pids
pids,
mobile
FROM ic_resi_user
WHERE DEL_FLAG = '0'

14
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}
</select>
<!-- 根据 身份证 + 疫苗接种时间 查询库里存在的 -->
<select id="getExistVaccine" resultType="com.epmet.dto.YTVaccineListDTO">
SELECT
ID_CARD,
DATE_FORMAT(INOCULATE_TIME, '%Y-%m-%d %H:%i') AS inoculateDate
FROM ic_vaccine
WHERE DEL_FLAG = '0'
AND (
<foreach collection="list" item="l" separator=" OR ">
(ID_CARD = #{l.idCard} AND DATE_FORMAT(INOCULATE_TIME, '%Y-%m-%d %H:%i') = #{l.inoculateDate})
</foreach>
)
</select>
</mapper>

Loading…
Cancel
Save