diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java index 8921735..f4ebeef 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/controller/FlowTaskController.java @@ -23,13 +23,11 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.oa.from.vo.FlowUnionVo; import cn.jyjz.xiaoyao.oa.from.vo.RepeatedTaskVo; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrContractorTask; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearch; import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearchchild; -import cn.jyjz.xiaoyao.ocr.service.OcrSearchmanagerService; -import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; -import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchService; -import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchchildService; +import cn.jyjz.xiaoyao.ocr.service.*; import cn.jyjz.xiaoyao.ocr.vo.OcrTaskChildPictureVo; import com.alanpoi.common.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -39,6 +37,7 @@ import io.swagger.annotations.*; import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @@ -75,6 +74,9 @@ public class FlowTaskController extends BaseController { @Resource private OcrUsersearchchildService usersearchchildService; + + @Autowired + private OcrContractorTaskService contractorTaskService; // /** // * 查询我的待办任务 // * @return @@ -488,6 +490,7 @@ public class FlowTaskController extends BaseController { } else { searchQuery.addEqual("thisLoginUserid", user.getLoginname()); searchQuery.addEqual("tenantid", tenantId); + } String searchId = request.getParameter("searchId"); @@ -497,10 +500,13 @@ public class FlowTaskController extends BaseController { disSearchQuery(searchQuery, userSearch); } } - + List contractorTask = contractorTaskService.list(new LambdaQueryWrapper().eq(OcrContractorTask::getTenantId,tenantId )); + if (!org.springframework.util.CollectionUtils.isEmpty(contractorTask)) { + OcrContractorTask ocrContractorTask = contractorTask.get(0); + searchQuery.addEqual("contractor", ocrContractorTask.getField()); + } Map query = searchQuery.getQuery(); - flowTaskService.getFinalProcessInstances(query, pageUtils, user); return ResultVoUtil.success(pageUtils); } 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 710828e..63d6e45 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 @@ -911,12 +911,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask OcrPicture first = ocrPictureService.getOne(new LambdaQueryWrapper().eq(OcrPicture::getId, taskchildPicture.getPictureid())); List contractorList = contractorTaskService.list(new LambdaQueryWrapper().eq(OcrContractorTask::getTenantId, taskchildPicture.getTenantid())); if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(contractorList)) { + List userList = contractorList.stream().map(OcrContractorTask::getTaskUserAssignee).collect(Collectors.toList()); Class aClass = first.getClass(); Field field = aClass.getDeclaredField(contractorList.get(0).getField()); field.setAccessible(true); String fieldValue = (String) field.get(first); - log.info("厂商名称------{}",fieldValue); + 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)) { @@ -925,7 +927,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask } if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(assigneeList)) { taskService.claim(task.getId(), assigneeList.get(rand.nextInt(assigneeList.size()))); - }else { + } + 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()))); + } else { taskService.claim(task.getId(), candidateUsers.get(rand.nextInt(candidateUsers.size()))); } } else { 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 6660afc..3a4861b 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 @@ -1016,7 +1016,7 @@