From 8458378b4a089fee0c7afb3964cfae22f73191fd Mon Sep 17 00:00:00 2001
From: "1437892690@qq.com" <1437892690@qq.com>
Date: Fri, 23 Aug 2024 12:18:40 +0800
Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E9=80=9A=E7=9F=A5?=
=?UTF-8?q?=E7=AD=96=E7=95=A5=E4=BC=98=E5=8C=96-=E9=9B=86=E6=88=90?=
=?UTF-8?q?=E4=B8=8E=E5=8F=91=E5=B8=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
关联 #[1229092697899008]通知策略优化-集成与发布 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1229092697899008
---
.../groupsearch/JobUserTypeGroupHandler.java | 116 ++++++++++++++++++
.../AutoexecJobNotifyCallbackHandler.java | 14 ++-
.../AutoexecCombopNotifyPolicyHandler.java | 6 +-
3 files changed, 132 insertions(+), 4 deletions(-)
create mode 100644 src/main/java/neatlogic/module/autoexec/groupsearch/JobUserTypeGroupHandler.java
diff --git a/src/main/java/neatlogic/module/autoexec/groupsearch/JobUserTypeGroupHandler.java b/src/main/java/neatlogic/module/autoexec/groupsearch/JobUserTypeGroupHandler.java
new file mode 100644
index 00000000..a32a0992
--- /dev/null
+++ b/src/main/java/neatlogic/module/autoexec/groupsearch/JobUserTypeGroupHandler.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2024 深圳极向量科技有限公司 All Rights Reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package neatlogic.module.autoexec.groupsearch;
+
+import neatlogic.framework.autoexec.constvalue.JobGroupSearch;
+import neatlogic.framework.autoexec.constvalue.JobUserType;
+import neatlogic.framework.restful.groupsearch.core.GroupSearchOptionVo;
+import neatlogic.framework.restful.groupsearch.core.GroupSearchVo;
+import neatlogic.framework.restful.groupsearch.core.IGroupSearchHandler;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class JobUserTypeGroupHandler implements IGroupSearchHandler {
+ @Override
+ public String getName() {
+ return JobGroupSearch.JOBUSERTYPE.getValue();
+ }
+
+ @Override
+ public String getLabel() {
+ return JobGroupSearch.JOBUSERTYPE.getText();
+ }
+
+ @Override
+ public String getHeader() {
+ return getName() + "#";
+ }
+
+ @Override
+ public List search(GroupSearchVo groupSearchVo) {
+ List includeStrList = groupSearchVo.getIncludeList();
+ if (CollectionUtils.isEmpty(includeStrList)) {
+ includeStrList = new ArrayList<>();
+ }
+ List excludeList = groupSearchVo.getExcludeList();
+ List valuelist = new ArrayList<>();
+ List userTypeList = new ArrayList<>();
+ for (JobUserType s : JobUserType.values()) {
+ if (s.getIsShow() && (StringUtils.isBlank(groupSearchVo.getKeyword()) || s.getText().contains(groupSearchVo.getKeyword()))) {
+ String value = getHeader() + s.getValue();
+ if (!valuelist.contains(value)) {
+ valuelist.add(value);
+ GroupSearchOptionVo groupSearchOptionVo = new GroupSearchOptionVo();
+ groupSearchOptionVo.setValue(value);
+ groupSearchOptionVo.setText(s.getText());
+ userTypeList.add(groupSearchOptionVo);
+ }
+ }
+ if (includeStrList.contains(getHeader() + s.getValue())) {
+ if (userTypeList.stream().noneMatch(o -> Objects.equals(o.getValue(), s.getValue()))) {
+ String value = getHeader() + s.getValue();
+ if (!valuelist.contains(value)) {
+ valuelist.add(value);
+ GroupSearchOptionVo groupSearchOptionVo = new GroupSearchOptionVo();
+ groupSearchOptionVo.setValue(value);
+ groupSearchOptionVo.setText(s.getText());
+ userTypeList.add(groupSearchOptionVo);
+ }
+ }
+ }
+ }
+ return userTypeList;
+ }
+
+ @Override
+ public List reload(GroupSearchVo groupSearchVo) {
+ List userTypeList = new ArrayList<>();
+ List valueList = groupSearchVo.getValueList();
+ if (CollectionUtils.isNotEmpty(valueList)) {
+ for (String value : valueList) {
+ if (value.startsWith(getHeader())) {
+ String realValue = value.replace(getHeader(), "");
+ String text = JobUserType.getText(realValue);
+ if (StringUtils.isNotBlank(text)) {
+ GroupSearchOptionVo groupSearchOptionVo = new GroupSearchOptionVo();
+ groupSearchOptionVo.setValue(value);
+ groupSearchOptionVo.setText(text);
+ userTypeList.add(groupSearchOptionVo);
+ }
+ }
+ }
+ }
+ return userTypeList;
+ }
+
+ @Override
+ public int getSort() {
+ return 1;
+ }
+
+ @Override
+ public Boolean isLimit() {
+ return false;
+ }
+}
diff --git a/src/main/java/neatlogic/module/autoexec/job/callback/AutoexecJobNotifyCallbackHandler.java b/src/main/java/neatlogic/module/autoexec/job/callback/AutoexecJobNotifyCallbackHandler.java
index 1d15aaf2..0497735d 100644
--- a/src/main/java/neatlogic/module/autoexec/job/callback/AutoexecJobNotifyCallbackHandler.java
+++ b/src/main/java/neatlogic/module/autoexec/job/callback/AutoexecJobNotifyCallbackHandler.java
@@ -17,17 +17,21 @@ package neatlogic.module.autoexec.job.callback;
import neatlogic.framework.autoexec.constvalue.AutoexecJobNotifyTriggerType;
import neatlogic.framework.autoexec.constvalue.CombopOperationType;
+import neatlogic.framework.autoexec.constvalue.JobUserType;
import neatlogic.framework.autoexec.dao.mapper.AutoexecCombopMapper;
import neatlogic.framework.autoexec.dao.mapper.AutoexecJobMapper;
import neatlogic.framework.autoexec.dto.combop.AutoexecCombopConfigVo;
import neatlogic.framework.autoexec.dto.combop.AutoexecCombopVo;
import neatlogic.framework.autoexec.dto.job.AutoexecJobVo;
import neatlogic.framework.autoexec.job.callback.core.AutoexecJobCallbackBase;
+import neatlogic.framework.common.constvalue.GroupSearch;
+import neatlogic.framework.common.constvalue.SystemUser;
import neatlogic.framework.crossover.CrossoverServiceFactory;
import neatlogic.framework.notify.crossover.INotifyServiceCrossoverService;
import neatlogic.framework.notify.dao.mapper.NotifyMapper;
import neatlogic.framework.notify.dto.InvokeNotifyPolicyConfigVo;
import neatlogic.framework.notify.dto.NotifyPolicyVo;
+import neatlogic.framework.notify.dto.NotifyReceiverVo;
import neatlogic.framework.transaction.util.TransactionUtil;
import neatlogic.framework.util.NotifyPolicyUtil;
import neatlogic.module.autoexec.message.handler.AutoexecJobMessageHandler;
@@ -38,8 +42,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.TransactionStatus;
import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
/**
* @author laiwt
@@ -128,9 +131,14 @@ public class AutoexecJobNotifyCallbackHandler extends AutoexecJobCallbackBase {
return;
}
try {
+ Map> receiverMap = new HashMap<>();
+ if (!Objects.equals(jobInfo.getExecUser(), SystemUser.SYSTEM.getUserUuid())) {
+ receiverMap.computeIfAbsent(JobUserType.EXEC_USER.getValue(), k -> new ArrayList<>())
+ .add(new NotifyReceiverVo(GroupSearch.USER.getValue(), jobInfo.getExecUser()));
+ }
String notifyAuditMessage = jobInfo.getId() + "-" + jobInfo.getName();
NotifyPolicyUtil.execute(notifyPolicyVo.getHandler(), trigger, AutoexecJobMessageHandler.class
- , notifyPolicyVo, null, null, null
+ , notifyPolicyVo, null, null, receiverMap
, jobInfo, null, notifyAuditMessage);
} catch (Exception ex) {
logger.error("自动化作业:" + jobInfo.getId() + "-" + jobInfo.getName() + "通知失败");
diff --git a/src/main/java/neatlogic/module/autoexec/notify/handler/AutoexecCombopNotifyPolicyHandler.java b/src/main/java/neatlogic/module/autoexec/notify/handler/AutoexecCombopNotifyPolicyHandler.java
index 8d706f6b..4f544cba 100644
--- a/src/main/java/neatlogic/module/autoexec/notify/handler/AutoexecCombopNotifyPolicyHandler.java
+++ b/src/main/java/neatlogic/module/autoexec/notify/handler/AutoexecCombopNotifyPolicyHandler.java
@@ -15,10 +15,12 @@ along with this program. If not, see .*/
package neatlogic.module.autoexec.notify.handler;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import neatlogic.framework.autoexec.auth.AUTOEXEC_COMBOP_ADD;
import neatlogic.framework.autoexec.constvalue.AutoexecJobNotifyParam;
import neatlogic.framework.autoexec.constvalue.AutoexecJobNotifyTriggerType;
+import neatlogic.framework.autoexec.constvalue.JobGroupSearch;
import neatlogic.framework.dto.ConditionParamVo;
import neatlogic.framework.notify.core.NotifyPolicyHandlerBase;
import neatlogic.framework.notify.dto.NotifyTriggerVo;
@@ -71,6 +73,8 @@ public class AutoexecCombopNotifyPolicyHandler extends NotifyPolicyHandlerBase {
@Override
protected void myAuthorityConfig(JSONObject config) {
-
+ List groupList = JSON.parseArray(config.getJSONArray("groupList").toJSONString(), String.class);
+ groupList.add(JobGroupSearch.JOBUSERTYPE.getValue());
+ config.put("groupList", groupList);
}
}
--
Gitee