优化系统数据字典同步
This commit is contained in:
parent
b8749a6b71
commit
5edee0ab90
|
@ -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 = "业务系统中未设置";
|
||||
|
|
|
@ -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