diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java index 5307f9a..507c94d 100644 --- a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java @@ -215,7 +215,6 @@ public class PersonTestingServiceImpl extends BaseServiceImpl - - - - + + + + diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/rocketmq/consumer/PersonTestingModifyConsumer.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/rocketmq/consumer/PersonTestingModifyConsumer.java index 0273f69..4a54b0e 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/rocketmq/consumer/PersonTestingModifyConsumer.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/rocketmq/consumer/PersonTestingModifyConsumer.java @@ -3,19 +3,25 @@ package com.elink.esua.epdc.rocketmq.consumer; import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; import com.elink.esua.epdc.commons.tools.exception.RenException; +import com.elink.esua.epdc.commons.tools.redis.RedisKeys; +import com.elink.esua.epdc.commons.tools.redis.RedisUtils; import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils; import com.elink.esua.epdc.rocketmq.dto.PersonTestingModifyDTO; import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao; import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity; +import com.elink.esua.epdc.vaccine.vim.dto.VaccinationAuthDTO; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.spring.annotation.MessageModel; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import static com.elink.esua.epdc.commons.tools.redis.RedisUtils.MINUTE_ONE_EXPIRE; + /** * 疫苗接种-监听MQ消息 * @@ -30,6 +36,9 @@ public class PersonTestingModifyConsumer implements RocketMQListener @Resource private EpidemicUserInfoDao epidemicUserInfoDao; + @Autowired + private RedisUtils redisUtils; + @Override public void onMessage(MessageExt messageExt) { log.info("EPDC-CUSTOM-SERVER消费消息START:{topic:{}, msgId:{}}", RocketMqConstant.MQ_TOPIC_VACCINE, messageExt.getMsgId()); @@ -38,6 +47,13 @@ public class PersonTestingModifyConsumer implements RocketMQListener String body = new String(messageExt.getBody(), charset); PersonTestingModifyDTO dto = JSONObject.parseObject(body, PersonTestingModifyDTO.class); + // 双模块要控制单挑插入 + String key = RedisKeys.getVaccinationTestingKey(dto.getIdcard()); + Object obj = redisUtils.get(key); + if (null != obj) { + return; + } + EpidemicUserInfoEntity entity = epidemicUserInfoDao.selectInfoByIdCard(dto.getIdcard()); if (entity != null) { entity.setCheckDate(dto.getTestingTime()); @@ -49,7 +65,7 @@ public class PersonTestingModifyConsumer implements RocketMQListener epidemicUserInfoDao.insert(entity); } - + redisUtils.set(key, dto.getIdcard(), MINUTE_ONE_EXPIRE); log.info("EPDC-CUSTOM-SERVER消费消息END:{topic:{}, msgId:{}, body:{}}", RocketMqConstant.MQ_TOPIC_VACCINE, messageExt.getMsgId(), body); } catch (Exception e) { log.info("EPDC-CUSTOM-SERVER消费消息失败:msgId:{}", messageExt.getMsgId());