diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java index 63d6e455..f0fea157 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java @@ -918,22 +918,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask String fieldValue = (String) field.get(first); log.info("厂商名称------{}", fieldValue); List collect = contractorList.stream().filter(contractorTask -> contractorTask.getContractor().equals(fieldValue)).map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList()); - List assignees = new ArrayList<>(); - List assigneeList = new ArrayList<>(); - for (String str : candidateUsers) { - if (collect.contains(str)) { - assigneeList.add(str); - } - } + List assigneeList = getUserCollect(candidateUsers,collect,true); +// for (String str : candidateUsers) { +// if (collect.contains(str)) { +// assigneeList.add(str); +// } +// } if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(assigneeList)) { taskService.claim(task.getId(), assigneeList.get(rand.nextInt(assigneeList.size()))); } - if (CollectionUtils.isEmpty(assigneeList) && org.apache.commons.collections4.CollectionUtils.isNotEmpty(userList)) { - List userCcollect = candidateUsers.stream().filter(o -> !userList.contains(o)).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(userCcollect)) { - userCcollect = candidateUsers; - } - taskService.claim(task.getId(), userCcollect.get(rand.nextInt(userCcollect.size()))); + if (CollectionUtils.isEmpty(assigneeList) && org.apache.commons.collections4.CollectionUtils.isNotEmpty(collect)) { + List userCollect = getUserCollect(candidateUsers, collect, false); + taskService.claim(task.getId(), userCollect.get(rand.nextInt(userCollect.size()))); } else { taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size()))); } @@ -984,6 +980,27 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask return flowTaskCompleteVO; } + private static List getUserCollect(List candidateUsers, List userList, Boolean type) { + List userCcollect = new ArrayList<>(); + for (String candidateUser : candidateUsers) { + for (String user : userList) { + if (type) { + if (user.contains(candidateUser)) { + userCcollect.add(candidateUser); + } + } else { + if (!user.contains(candidateUser)) { + userCcollect.add(candidateUser); + } + } + } + } + if (CollectionUtils.isEmpty(userCcollect) && !type) { + userCcollect = candidateUsers; + } + return userCcollect; + } + /** * 设置当前审批节点的 */ diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml index af091d5b..cffb52f8 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml @@ -1036,7 +1036,7 @@ and (FIND_IN_SET(#{thisLoginUserid.value} , tcp.ASSIGNEE) or - if((select count(1) from ocr_contractor_task where tenant_id =#{tenantid.value} and pic.${contractor.value} = contractor and task_user_assignee = #{thisLoginUserid.value})>1, 1=1,tcp.STATES = 5) + if((select count(1) from ocr_contractor_task where tenant_id =#{tenantid.value} and pic.${contractor.value} = contractor and FIND_IN_SET(#{thisLoginUserid.value},task_user_assignee))>1, 1=1,tcp.STATES = 5) tcp.STATES = 5