diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java
index 9c332a6626..ded5a9aa8d 100644
--- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java
+++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java
@@ -17,5 +17,9 @@ public interface ConsomerGroupConstants {
* 初始化客户组织机构信息分组
*/
String INIT_CUSTOMER_ORG_ROLES_GROUP = "init_customer_org_roles_group";
+ /**
+ * 客户初始化议题、项目分类、标签数据
+ */
+ String ISSUE_PROJECT_CATEGORY_TAG = "issue_project_category_tag";
}
diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml
index 54a2ff009c..208fea460c 100644
--- a/epmet-module/gov-issue/gov-issue-server/pom.xml
+++ b/epmet-module/gov-issue/gov-issue-server/pom.xml
@@ -108,6 +108,12 @@
2.0.0
compile
+
+ com.epmet
+ epmet-commons-rocketmq
+ 2.0.0
+ compile
+
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/mq/listener/IssueProjectCategoryTagInitListener.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/mq/listener/IssueProjectCategoryTagInitListener.java
new file mode 100644
index 0000000000..beb1fa1473
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/mq/listener/IssueProjectCategoryTagInitListener.java
@@ -0,0 +1,67 @@
+package com.epmet.mq.listener;
+
+import com.alibaba.fastjson.JSON;
+import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
+import com.epmet.commons.rocketmq.constants.TopicConstants;
+import com.epmet.commons.rocketmq.messages.InitCustomerMQMsg;
+import com.epmet.commons.tools.distributedlock.DistributedLock;
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import com.epmet.commons.tools.exception.RenException;
+import com.epmet.dto.form.CategoryTagInitFormDTO;
+import com.epmet.service.IssueProjectCategoryDictService;
+import org.apache.rocketmq.common.message.MessageExt;
+import org.apache.rocketmq.spring.annotation.MessageModel;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.redisson.api.RLock;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 监听初始化客户动作,为客户初始化议题、项目的分类、标签数据
+ */
+@RocketMQMessageListener(topic = TopicConstants.INIT_CUSTOMER,
+ consumerGroup = ConsomerGroupConstants.ISSUE_PROJECT_CATEGORY_TAG,
+ messageModel = MessageModel.CLUSTERING,
+ selectorExpression = "*")
+@Component
+public class IssueProjectCategoryTagInitListener implements RocketMQListener {
+
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private IssueProjectCategoryDictService issueProjectCategoryDictService;
+
+ @Autowired
+ private DistributedLock distributedLock;
+
+ @Override
+ public void onMessage(MessageExt messageExt) {
+ String msg = new String(messageExt.getBody());
+ logger.info("初始化客户-初始化客户自定义信息-收到消息内容:{}", msg);
+ InitCustomerMQMsg msgObj = JSON.parseObject(msg, InitCustomerMQMsg.class);
+
+ CategoryTagInitFormDTO dto = new CategoryTagInitFormDTO();
+ dto.setCustomerId(msgObj.getCustomerId());
+
+ RLock lock = null;
+ try {
+ lock = distributedLock.getLock(String.format("lock:init_customer_home:%s", msgObj.getCustomerId()),
+ 30l, 30l, TimeUnit.SECONDS);
+ issueProjectCategoryDictService.init(dto);
+ } catch (RenException e) {
+ // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
+ logger.error("【RocketMQ】初始化客户组件失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
+ } catch (Exception e) {
+ // 不是我们自己抛出的异常,可以让MQ重试
+ logger.error("【RocketMQ】初始化客户组件失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
+ throw e;
+ } finally {
+ distributedLock.unLock(lock);
+ }
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
index d78c3a3458..545e6e810d 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
@@ -148,18 +148,6 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl categoryList(String customerId) {
List resultList = baseDao.selectCustomerCategoryList(customerId);
- //2021.3.24 sun 客户初始化分类标签的接口不想加到新客户创建的程序里,因此加到这里 在标签列表的查询方法中也有关于初始化分类标签的逻辑
- try {
- if(CollectionUtils.isEmpty(resultList)){
- CategoryTagInitFormDTO dto = new CategoryTagInitFormDTO();
- dto.setCustomerId(customerId);
- init(dto);
- resultList = baseDao.selectCustomerCategoryList(customerId);
- }
- } catch (Exception e) {
- logger.error("客户初始化分类、标签失败,客户Id->"+customerId, e);
- }
- //end
return resultList;
}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectTagDictServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectTagDictServiceImpl.java
index ee06f971d3..deede50676 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectTagDictServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectTagDictServiceImpl.java
@@ -131,20 +131,6 @@ public class IssueProjectTagDictServiceImpl extends BaseServiceImpl> map = issueProjectTagDictRedis.getDefaultTagsSortedByCategoryAndCustomizedTagsOrderByRank(tokenDto.getCustomerId(),
formDTO.getCategoryIdList());
result.setDefaulted(map.get(ModuleConstants.DEFAULT_TAG_CATEGORY_NAME));
- //2021.3.24 sun 客户初始化分类标签的接口不想加到新客户创建的程序里,因此加到这里 在分类列表的查询方法中也有关于初始化分类标签的逻辑
- try {
- if(CollectionUtils.isEmpty(result.getDefaulted())){
- CategoryTagInitFormDTO dto = new CategoryTagInitFormDTO();
- dto.setCustomerId(tokenDto.getCustomerId());
- issueProjectCategoryDictService.init(dto);
- Map> map1 = issueProjectTagDictRedis.getDefaultTagsSortedByCategoryAndCustomizedTagsOrderByRank(tokenDto.getCustomerId(),
- formDTO.getCategoryIdList());
- result.setDefaulted(map1.get(ModuleConstants.DEFAULT_TAG_CATEGORY_NAME));
- }
- } catch (Exception e) {
- logger.error("客户初始化分类、标签失败,客户Id->"+tokenDto.getCustomerId(), e);
- }
- //end
List list = map.get(ModuleConstants.CUSTOMIZED_TAG_CATEGORY_NAME);
if (CollectionUtils.isNotEmpty(list)) {
result.setCustomized(list.stream().limit(NumConstant.TEN).collect(Collectors.toList()));