优化系统数据字典同步

This commit is contained in:
1378012178@qq.com 2025-05-09 11:28:25 +08:00
parent b8749a6b71
commit 5edee0ab90
2 changed files with 58 additions and 7 deletions

View File

@ -39,13 +39,9 @@ public class DictMQListener {
@Autowired
private ISysDepartService departService;
/**
* 字典同步
* 如果 没有字典则创建 然后把每一项字典项新增进去
* 有字典项 则检查每一项字典项是否存在不存在则插入
* <p>
* 动态生成队列名称避免每次部署新系统都需要改动
*
* fanout类型 发给所有人统一处理的
* @param dto
*/
@RabbitListener(
@ -60,7 +56,36 @@ public class DictMQListener {
)
), errorHandler = "dictMQErrorHandler"
)
public void handleMessage(SysDictMQDto dto) {
public void handleMessage_unify(SysDictMQDto dto) {
saveDict(dto);
}
/**
* direct直连 只发给我的
* @param dto
*/
@RabbitListener(
bindings = @QueueBinding(
value = @Queue(name = "#{dictAsyncDQNP.getQueueName()}"),
exchange = @Exchange(name = "hldy.sysdict.direct", type = ExchangeTypes.DIRECT),
key = "#{dictAsyncDQNP.getKeyName()}"
),
errorHandler = "dictMQErrorHandler"
)
public void handleMessage_self(SysDictMQDto dto) {
saveDict(dto);
}
/**
* 字典同步
* 如果 没有字典则创建 然后把每一项字典项新增进去
* 有字典项 则检查每一项字典项是否存在不存在则插入
* <p>
* 动态生成队列名称避免每次部署新系统都需要改动
*
* @param dto
*/
private void saveDict(SysDictMQDto dto) {
//查询此业务系统的机构编码名称
String orgCode = "业务系统中未设置";
String orgName = "业务系统中未设置";

View File

@ -0,0 +1,26 @@
package org.jeecg.mq.dict.listener;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("dictAsyncDQNP")
public class DynamicQueueNameProvider {
@Autowired
private ISysBaseAPI sysBaseAPI;
public String getQueueName() {
String orgCode = sysBaseAPI.getDeptCode();
if (StringUtils.isNotBlank(orgCode)) {
return orgCode + ".dict.async";
} else {
return "";
}
}
public String getKeyName() {
return getQueueName();
}
}