From 8bc7f49e55f0cd9ad61824daf68caeec545e95d0 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 9 Jan 2024 17:37:01 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-CMDB?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=88=86=E6=B4=BE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1065220494032896]后端-CMDB模型分派器 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1065220494032896 --- .../handler/HandlerLeaderDispatcher.java | 14 +++++--- .../handler/LeaderDispatcher.java | 22 ++++++++----- .../handler/OwnerLeaderDispatcher.java | 15 ++++++--- .../handler/WorkloadDispatcher.java | 33 +++++++++---------- .../handler/AutomaticWorkerPolicyHandler.java | 33 ++++++++----------- 5 files changed, 63 insertions(+), 54 deletions(-) diff --git a/src/main/java/neatlogic/module/process/workerdispatcher/handler/HandlerLeaderDispatcher.java b/src/main/java/neatlogic/module/process/workerdispatcher/handler/HandlerLeaderDispatcher.java index 22e7a175d..936b925f7 100755 --- a/src/main/java/neatlogic/module/process/workerdispatcher/handler/HandlerLeaderDispatcher.java +++ b/src/main/java/neatlogic/module/process/workerdispatcher/handler/HandlerLeaderDispatcher.java @@ -1,5 +1,6 @@ package neatlogic.module.process.workerdispatcher.handler; +import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.dao.mapper.TeamMapper; import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.dto.TeamUserTitleVo; @@ -12,6 +13,7 @@ import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.dao.mapper.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskStepUserVo; import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherBase; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -41,7 +43,7 @@ public class HandlerLeaderDispatcher extends WorkerDispatcherBase { @Override public String getName() { - return "处理人领导分派器"; + return "nmpwh.handlerleaderdispatcher.getname"; } @Override @@ -80,8 +82,8 @@ public class HandlerLeaderDispatcher extends WorkerDispatcherBase { } @Override - protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { - List resultList = new ArrayList<>(); + protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { + List resultList = new ArrayList<>(); if (MapUtils.isNotEmpty(configObj)) { JSONArray preStepArray = configObj.getJSONArray("preStepList"); String teamUserTitle = configObj.getString("teamUserTitle"); @@ -102,7 +104,11 @@ public class HandlerLeaderDispatcher extends WorkerDispatcherBase { for (TeamVo teamVo : teamList) { List teamUserTitleVoList = teamMapper.getTeamUserTitleListByTeamlrAndTitleId(teamVo.getLft(), teamVo.getRht(), userTitleVo.getId()); if (CollectionUtils.isNotEmpty(teamUserTitleVoList)) { - resultList.addAll(teamUserTitleVoList.get(0).getUserList()); + List userUuidList = teamUserTitleVoList.get(0).getUserList(); + for (String userUuid : userUuidList) { + ProcessTaskStepWorkerVo worker = new ProcessTaskStepWorkerVo(processTaskStepVo.getProcessTaskId(), processTaskStepVo.getId(), GroupSearch.USER.getValue(), userUuid, ProcessUserType.MAJOR.getValue()); + resultList.add(worker); + } break; } } diff --git a/src/main/java/neatlogic/module/process/workerdispatcher/handler/LeaderDispatcher.java b/src/main/java/neatlogic/module/process/workerdispatcher/handler/LeaderDispatcher.java index 9075fa319..a6926ae73 100755 --- a/src/main/java/neatlogic/module/process/workerdispatcher/handler/LeaderDispatcher.java +++ b/src/main/java/neatlogic/module/process/workerdispatcher/handler/LeaderDispatcher.java @@ -4,7 +4,9 @@ import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.dao.mapper.TeamMapper; import neatlogic.framework.dto.TeamUserTitleVo; import neatlogic.framework.dto.TeamVo; +import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherBase; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherForm; import com.alibaba.fastjson.JSONArray; @@ -26,12 +28,12 @@ public class LeaderDispatcher extends WorkerDispatcherBase { @Override public String getName() { - return "分组领导分派器"; + return "nmpwh.leaderdispatcher.getname"; } @Override - protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { - List resultList = new ArrayList<>(); + protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { + List resultList = new ArrayList<>(); if (MapUtils.isNotEmpty(configObj)) { String team = configObj.getString("team"); String teamUserTitle = configObj.getString("teamUserTitle"); @@ -58,12 +60,16 @@ public class LeaderDispatcher extends WorkerDispatcherBase { if(CollectionUtils.isNotEmpty(userUuidList)) { resultList.addAll(userUuidList); }*/ - List teamUserTileList = teamMapper.getTeamUserTitleListByTeamUuid(teamVo.getUuid()); + List teamUserTitleList = teamMapper.getTeamUserTitleListByTeamUuid(teamVo.getUuid()); //List userUuidList = teamMapper.getTeamUserUuidListByLftRhtTitle(teamVo.getLft(), teamVo.getRht(), teamUserTitle); - if (CollectionUtils.isNotEmpty(teamUserTileList)) { - teamUserTileList = teamUserTileList.stream().filter(o -> Objects.equals(o.getTitle(), teamUserTitle)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(teamUserTileList)) { - resultList.addAll(teamUserTileList.get(0).getUserList()); + if (CollectionUtils.isNotEmpty(teamUserTitleList)) { + teamUserTitleList = teamUserTitleList.stream().filter(o -> Objects.equals(o.getTitle(), teamUserTitle)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(teamUserTitleList)) { + List userUuidList = teamUserTitleList.get(0).getUserList(); + for (String userUuid : userUuidList) { + ProcessTaskStepWorkerVo worker = new ProcessTaskStepWorkerVo(processTaskStepVo.getProcessTaskId(), processTaskStepVo.getId(), GroupSearch.USER.getValue(), userUuid, ProcessUserType.MAJOR.getValue()); + resultList.add(worker); + } } } } diff --git a/src/main/java/neatlogic/module/process/workerdispatcher/handler/OwnerLeaderDispatcher.java b/src/main/java/neatlogic/module/process/workerdispatcher/handler/OwnerLeaderDispatcher.java index 8a85bf852..290acfa62 100755 --- a/src/main/java/neatlogic/module/process/workerdispatcher/handler/OwnerLeaderDispatcher.java +++ b/src/main/java/neatlogic/module/process/workerdispatcher/handler/OwnerLeaderDispatcher.java @@ -1,13 +1,16 @@ package neatlogic.module.process.workerdispatcher.handler; +import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.dao.mapper.TeamMapper; import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.dto.TeamUserTitleVo; import neatlogic.framework.dto.TeamVo; import neatlogic.framework.dto.UserTitleVo; import neatlogic.framework.exception.team.TeamUserTitleNotFoundException; +import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.dao.mapper.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.dto.ProcessTaskVo; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherBase; import com.alibaba.fastjson.JSONArray; @@ -35,7 +38,7 @@ public class OwnerLeaderDispatcher extends WorkerDispatcherBase { @Override public String getName() { - return "上报人领导分派器"; + return "nmpwh.ownerleaderdispatcher.getname"; } @Override @@ -65,8 +68,8 @@ public class OwnerLeaderDispatcher extends WorkerDispatcherBase { } @Override - protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { - List resultList = new ArrayList<>(); + protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { + List resultList = new ArrayList<>(); String teamUserTitle = configObj.getString("teamUserTitle"); if (StringUtils.isNotBlank(teamUserTitle)) { UserTitleVo userTitleVo = userMapper.getUserTitleByName(teamUserTitle); @@ -80,7 +83,11 @@ public class OwnerLeaderDispatcher extends WorkerDispatcherBase { for (TeamVo teamVo : teamList) { List teamUserTitleVoList = teamMapper.getTeamUserTitleListByTeamlrAndTitleId(teamVo.getLft(), teamVo.getRht(), userTitleVo.getId()); if (CollectionUtils.isNotEmpty(teamUserTitleVoList)) { - resultList.addAll(teamUserTitleVoList.get(0).getUserList()); + List userUuidList = teamUserTitleVoList.get(0).getUserList(); + for (String userUuid : userUuidList) { + ProcessTaskStepWorkerVo worker = new ProcessTaskStepWorkerVo(processTaskStepVo.getProcessTaskId(), processTaskStepVo.getId(), GroupSearch.USER.getValue(), userUuid, ProcessUserType.MAJOR.getValue()); + resultList.add(worker); + } break; } } diff --git a/src/main/java/neatlogic/module/process/workerdispatcher/handler/WorkloadDispatcher.java b/src/main/java/neatlogic/module/process/workerdispatcher/handler/WorkloadDispatcher.java index 90d9cf612..6b4ce2304 100644 --- a/src/main/java/neatlogic/module/process/workerdispatcher/handler/WorkloadDispatcher.java +++ b/src/main/java/neatlogic/module/process/workerdispatcher/handler/WorkloadDispatcher.java @@ -1,27 +1,23 @@ package neatlogic.module.process.workerdispatcher.handler; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.stream.Collectors; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.dao.mapper.TeamMapper; import neatlogic.framework.dto.TeamUserVo; +import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.dao.mapper.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherBase; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; @Component public class WorkloadDispatcher extends WorkerDispatcherBase { @@ -34,12 +30,12 @@ public class WorkloadDispatcher extends WorkerDispatcherBase { @Override public String getName() { - return "根据工作量分配处理人"; + return "nmpwh.workloaddispatcher.getname"; } @Override - protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { - List resultList = new ArrayList<>(); + protected List myGetWorker(ProcessTaskStepVo processTaskStepVo, JSONObject configObj) { + List resultList = new ArrayList<>(); if(MapUtils.isEmpty(configObj)) { return resultList; } @@ -90,7 +86,8 @@ public class WorkloadDispatcher extends WorkerDispatcherBase { if(CollectionUtils.isNotEmpty(minWorkloadUserUuidList)) { Random random = new Random(); int index = random.nextInt(minWorkloadUserUuidList.size()); - resultList.add(minWorkloadUserUuidList.get(index)); + ProcessTaskStepWorkerVo worker = new ProcessTaskStepWorkerVo(processTaskStepVo.getProcessTaskId(), processTaskStepVo.getId(), GroupSearch.USER.getValue(), minWorkloadUserUuidList.get(index), ProcessUserType.MAJOR.getValue()); + resultList.add(worker); } return resultList; } diff --git a/src/main/java/neatlogic/module/process/workerpolicy/handler/AutomaticWorkerPolicyHandler.java b/src/main/java/neatlogic/module/process/workerpolicy/handler/AutomaticWorkerPolicyHandler.java index 95c556be2..927461e60 100644 --- a/src/main/java/neatlogic/module/process/workerpolicy/handler/AutomaticWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/module/process/workerpolicy/handler/AutomaticWorkerPolicyHandler.java @@ -1,26 +1,23 @@ package neatlogic.module.process.workerpolicy.handler; -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; - import com.alibaba.fastjson.JSONObject; - -import neatlogic.framework.common.constvalue.GroupSearch; -import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.constvalue.WorkerPolicy; import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerPolicyVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; +import neatlogic.framework.process.exception.processtask.ProcessTaskException; import neatlogic.framework.process.workerdispatcher.core.IWorkerDispatcher; import neatlogic.framework.process.workerdispatcher.core.WorkerDispatcherFactory; import neatlogic.framework.process.workerpolicy.core.IWorkerPolicyHandler; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; @Service public class AutomaticWorkerPolicyHandler implements IWorkerPolicyHandler { @@ -42,7 +39,7 @@ public class AutomaticWorkerPolicyHandler implements IWorkerPolicyHandler { } @Override - public List execute(ProcessTaskStepWorkerPolicyVo workerPolicyVo, ProcessTaskStepVo currentProcessTaskStepVo) { + public List execute(ProcessTaskStepWorkerPolicyVo workerPolicyVo, ProcessTaskStepVo currentProcessTaskStepVo) throws ProcessTaskException { List processTaskStepWorkerList = new ArrayList<>(); if (MapUtils.isEmpty(workerPolicyVo.getConfigObj())) { return processTaskStepWorkerList; @@ -59,15 +56,11 @@ public class AutomaticWorkerPolicyHandler implements IWorkerPolicyHandler { if(MapUtils.isEmpty(handlerConfig)) { return processTaskStepWorkerList; } - List workerList = dispatcher.getWorker(currentProcessTaskStepVo, handlerConfig); + List workerList = dispatcher.getWorker(currentProcessTaskStepVo, handlerConfig); if(CollectionUtils.isEmpty(workerList)) { return processTaskStepWorkerList; } - for(String userUuid : workerList) { - if (StringUtils.isBlank(userUuid)) { - continue; - } - ProcessTaskStepWorkerVo workerVo = new ProcessTaskStepWorkerVo(currentProcessTaskStepVo.getProcessTaskId(), currentProcessTaskStepVo.getId(), GroupSearch.USER.getValue(), userUuid, ProcessUserType.MAJOR.getValue()); + for(ProcessTaskStepWorkerVo workerVo : workerList) { if (!processTaskStepWorkerList.contains(workerVo)) { processTaskStepWorkerList.add(workerVo); } -- Gitee