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 22e7a175de6547a0736db6c01e75aff8bd8c72f1..936b925f7db8759366b19ba74000045c72b2b09f 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 9075fa319df86db03854bc721cefa2484436c63e..a6926ae73db235867bc08b584db6a015b283c9b1 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 8a85bf85248964f6fef7b96c616816b0172b624e..290acfa62a9f79fafa2e5f597e7cadb5ebe7309f 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 90d9cf612df5b7c84b22b90936bab5800c4fe512..6b4ce2304a51cb5133de8e75e9d3eec372e9e7d9 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 95c556be258d8a5996743528385ec0d0a4091143..927461e6097a671e1449e9b11332cba5a60a1809 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); }