|
|
@ -1,13 +1,16 @@
|
|
|
|
package cn.estsh.i3plus.core.apiservice.mq;
|
|
|
|
package cn.estsh.i3plus.core.apiservice.mq;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionDetailService;
|
|
|
|
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.core.api.iservice.busi.ISysPojoVersionService;
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
|
|
|
|
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
|
|
|
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.codemaker.SnowflakeIdMaker;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
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.SysConfig;
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionDetail;
|
|
|
|
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.MapDifference;
|
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
|
|
|
|
|
import net.bull.javamelody.internal.common.LOG;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
@ -29,9 +33,7 @@ import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_POJO_VERSION;
|
|
|
|
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 {
|
|
|
|
public class PojoVersionQueueReceiver {
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(PojoVersionQueueReceiver.class);
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(PojoVersionQueueReceiver.class);
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Resource
|
|
|
|
private ISysPojoVersionService pojoVersionService;
|
|
|
|
private ISysPojoVersionService pojoVersionService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Resource
|
|
|
|
private ISysPojoVersionDetailService pojoVersionDetailService;
|
|
|
|
private ISysPojoVersionDetailService pojoVersionDetailService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Resource
|
|
|
|
private SnowflakeIdMaker snowflakeIdMaker;
|
|
|
|
private SnowflakeIdMaker snowflakeIdMaker;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private ISysPojoVersionPlanService sysPojoVersionPlanService;
|
|
|
|
|
|
|
|
|
|
|
|
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
|
|
|
|
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
|
|
|
|
private ImppRedis redisRes;
|
|
|
|
private ImppRedis redisRes;
|
|
|
|
|
|
|
|
|
|
|
@ -74,6 +79,7 @@ public class PojoVersionQueueReceiver {
|
|
|
|
@RabbitListener(queues = QUEUE_IMPP_POJO_VERSION)
|
|
|
|
@RabbitListener(queues = QUEUE_IMPP_POJO_VERSION)
|
|
|
|
public Boolean processImppMessage(Channel channel, Message message) {
|
|
|
|
public Boolean processImppMessage(Channel channel, Message message) {
|
|
|
|
boolean isNack = false;
|
|
|
|
boolean isNack = false;
|
|
|
|
|
|
|
|
LOGGER.info("PojoVersionQueueReceiver开始消费数据:{}",message);
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
byte[] messageBody = message.getBody();
|
|
|
|
byte[] messageBody = message.getBody();
|
|
|
|
if (messageBody != null && messageBody.length > 0) {
|
|
|
|
if (messageBody != null && messageBody.length > 0) {
|
|
|
@ -82,8 +88,20 @@ public class PojoVersionQueueReceiver {
|
|
|
|
// 当前操作数据
|
|
|
|
// 当前操作数据
|
|
|
|
SysPojoVersion afterVersion = JSON.parseObject(msg, SysPojoVersion.class);
|
|
|
|
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<Long> idList = new ArrayList<>();
|
|
|
|
|
|
|
|
idList.add(afterVersion.getRefId());
|
|
|
|
|
|
|
|
List<SysPojoVersionPlan> 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)) {
|
|
|
|
if (Objects.nonNull(redisValue)) {
|
|
|
|
SysPojoVersionPlan versionPlan = JSON.parseObject(redisValue.toString(), SysPojoVersionPlan.class);
|
|
|
|
SysPojoVersionPlan versionPlan = JSON.parseObject(redisValue.toString(), SysPojoVersionPlan.class);
|
|
|
|
Map<String, Object> afterMap = JsonUtilTool.decode(afterVersion.getBean(), Map.class);
|
|
|
|
Map<String, Object> afterMap = JsonUtilTool.decode(afterVersion.getBean(), Map.class);
|
|
|
@ -159,11 +177,12 @@ public class PojoVersionQueueReceiver {
|
|
|
|
afterVersion.setPojoDetailId(afterVersionDetail.getId());
|
|
|
|
afterVersion.setPojoDetailId(afterVersionDetail.getId());
|
|
|
|
ConvertBean.serviceModelInitialize(afterVersion, userName);
|
|
|
|
ConvertBean.serviceModelInitialize(afterVersion, userName);
|
|
|
|
pojoVersionService.insert(afterVersion);
|
|
|
|
pojoVersionService.insert(afterVersion);
|
|
|
|
|
|
|
|
LOGGER.info("PojoVersionQueueReceiver:保存的pojoVersion:{}",afterVersion);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
LOGGER.error("pojoVersion 消息处理失败{}", new String(message.getBody()), e);
|
|
|
|
LOGGER.error("PojoVersionQueueReceiver 消息处理失败{}", new String(message.getBody()), e);
|
|
|
|
isNack = true;
|
|
|
|
isNack = true;
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -173,14 +192,10 @@ public class PojoVersionQueueReceiver {
|
|
|
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
|
|
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
LOGGER.error("Pojo Version MQ ACK Error Message :{}", e.getMessage());
|
|
|
|
LOGGER.error("PojoVersionQueueReceiver Error Message :{}", e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isNack) {
|
|
|
|
return !isNack;
|
|
|
|
return false;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -263,4 +278,4 @@ public class PojoVersionQueueReceiver {
|
|
|
|
System.out.println(ExcelTool.getColName(SysConfig.class));
|
|
|
|
System.out.println(ExcelTool.getColName(SysConfig.class));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|