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 0000000000000000000000000000000000000000..a32a0992568ae8240183f75d8f8f9f4c39613e17
--- /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 1d15aaf2f6b37f2048ec4b731cf2b915a9a258b4..0497735df60d9e4c1ddb5bb1cdbc56bd465ae4a7 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 8d706f6b3b755a313716ce480833b91567b3ac1c..4f544cba59b68d6dcb2a1ace2ad35ce1af907c8a 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);
}
}