优化系统数据字典同步
This commit is contained in:
parent
b8749a6b71
commit
5edee0ab90
|
@ -39,13 +39,9 @@ public class DictMQListener {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysDepartService departService;
|
private ISysDepartService departService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典同步
|
* fanout类型 发给所有人统一处理的
|
||||||
* 如果 没有字典则创建 然后把每一项字典项新增进去
|
|
||||||
* 有字典项 则检查每一项字典项是否存在,不存在则插入
|
|
||||||
* <p>
|
|
||||||
* 动态生成队列名称,避免每次部署新系统都需要改动
|
|
||||||
*
|
|
||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
@RabbitListener(
|
@RabbitListener(
|
||||||
|
@ -60,7 +56,36 @@ public class DictMQListener {
|
||||||
)
|
)
|
||||||
), errorHandler = "dictMQErrorHandler"
|
), 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 orgCode = "业务系统中未设置";
|
||||||
String orgName = "业务系统中未设置";
|
String orgName = "业务系统中未设置";
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue