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