diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java index 8a75395..2652a31 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java @@ -1,13 +1,16 @@ package cn.estsh.i3plus.core.apiservice.mq; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionDetailService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionPlanService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionDetail; @@ -17,6 +20,7 @@ import com.alibaba.fastjson.JSON; import com.google.common.collect.MapDifference; import com.google.common.collect.Maps; import com.rabbitmq.client.Channel; +import net.bull.javamelody.internal.common.LOG; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,9 +33,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.util.*; import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_POJO_VERSION; @@ -48,15 +50,18 @@ import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP public class PojoVersionQueueReceiver { private static final Logger LOGGER = LoggerFactory.getLogger(PojoVersionQueueReceiver.class); - @Autowired + @Resource private ISysPojoVersionService pojoVersionService; - @Autowired + @Resource private ISysPojoVersionDetailService pojoVersionDetailService; - @Autowired + @Resource private SnowflakeIdMaker snowflakeIdMaker; + @Resource + private ISysPojoVersionPlanService sysPojoVersionPlanService; + @Resource(name = CommonConstWords.IMPP_REDIS_RES) private ImppRedis redisRes; @@ -74,6 +79,7 @@ public class PojoVersionQueueReceiver { @RabbitListener(queues = QUEUE_IMPP_POJO_VERSION) public Boolean processImppMessage(Channel channel, Message message) { boolean isNack = false; + LOGGER.info("PojoVersionQueueReceiver开始消费数据:{}",message); try { byte[] messageBody = message.getBody(); if (messageBody != null && messageBody.length > 0) { @@ -82,8 +88,20 @@ public class PojoVersionQueueReceiver { // 当前操作数据 SysPojoVersion afterVersion = JSON.parseObject(msg, SysPojoVersion.class); + String redisKey = CommonConstWords.REDIS_PREFIX_POJO_VERSION + ":" + afterVersion.getSoftType() + ":" + afterVersion.getRefClass(); // 是否进行版本控制 - Object redisValue = redisRes.getObject(CommonConstWords.REDIS_PREFIX_POJO_VERSION + ":" + afterVersion.getSoftType() + ":" + afterVersion.getRefClass()); + Object redisValue = redisRes.getObject(redisKey); + if (Objects.isNull(redisValue)){ + //去查询数据库 + List idList = new ArrayList<>(); + idList.add(afterVersion.getRefId()); + List plans = sysPojoVersionPlanService.findByIdList(idList); + if (!Objects.isNull(plans) && !plans.isEmpty()){ + redisRes.putObject(redisKey,JSON.toJSONString(plans.get(0)),-1); + redisValue = plans.get(0); + } + } + LOGGER.info("PojoVersionQueueReceiver--是否进行版本控制的key:{},value:{}",redisKey,redisValue); if (Objects.nonNull(redisValue)) { SysPojoVersionPlan versionPlan = JSON.parseObject(redisValue.toString(), SysPojoVersionPlan.class); Map afterMap = JsonUtilTool.decode(afterVersion.getBean(), Map.class); @@ -159,11 +177,12 @@ public class PojoVersionQueueReceiver { afterVersion.setPojoDetailId(afterVersionDetail.getId()); ConvertBean.serviceModelInitialize(afterVersion, userName); pojoVersionService.insert(afterVersion); + LOGGER.info("PojoVersionQueueReceiver:保存的pojoVersion:{}",afterVersion); } } } } catch (Exception e) { - LOGGER.error("pojoVersion 消息处理失败{}", new String(message.getBody()), e); + LOGGER.error("PojoVersionQueueReceiver 消息处理失败{}", new String(message.getBody()), e); isNack = true; } finally { try { @@ -173,14 +192,10 @@ public class PojoVersionQueueReceiver { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } } catch (Exception e) { - LOGGER.error("Pojo Version MQ ACK Error Message :{}", e.getMessage()); + LOGGER.error("PojoVersionQueueReceiver Error Message :{}", e.getMessage()); } } - if (isNack) { - return false; - } else { - return true; - } + return !isNack; } /** @@ -263,4 +278,4 @@ public class PojoVersionQueueReceiver { System.out.println(ExcelTool.getColName(SysConfig.class)); } -} +} \ No newline at end of file