| | |
| | | .endOr(); |
| | | } |
| | | result.total(taskQuery.count()); |
| | | List<Task> taskList = taskQuery.listPage(pageSize * (pageNum - 1), pageSize); |
| | | List<Task> allTodoList = taskQuery.list(); |
| | | List<TaskOrderVO> orderList = new ArrayList<>(); |
| | | allTodoList.stream().forEach(task -> { |
| | | TaskOrderVO order = new TaskOrderVO(); |
| | | order.setTaskId(task.getId()); |
| | | // 计算办理时间,超时的排前面,没超时的由低到高排序,没超时时间的排最后 |
| | | ProcessCoding processCoding = processCodingService.getByTaskId(task.getId(), task.getProcessInstanceId()); |
| | | if (Objects.nonNull(processCoding)) { |
| | | if (StringUtils.isNotBlank(processCoding.getRedTime())) { |
| | | Long overtime = getTime(processCoding.getRedTime()); |
| | | long durationTime = 0l; |
| | | if (Objects.nonNull(processCoding.getStartTaskTime())) { |
| | | durationTime = ((new Date()).getTime() - processCoding.getStartTaskTime().getTime()) / 1000; |
| | | } |
| | | if (overtime > durationTime) { |
| | | order.setNum((overtime - durationTime) / 3600); |
| | | } else { |
| | | order.setNum(-2000000L); |
| | | } |
| | | } else { |
| | | order.setNum(2000000L); |
| | | } |
| | | } else { |
| | | order.setNum(2000000L); |
| | | } |
| | | orderList.add(order); |
| | | }); |
| | | // 升序排列 |
| | | Collections.sort(orderList, Comparator.comparingLong(TaskOrderVO::getNum)); |
| | | int startNum = pageSize * (pageNum - 1); |
| | | int endNum = startNum + pageSize; |
| | | if (startNum >= orderList.size()) { |
| | | result.data(new ArrayList<>()).total(0L); |
| | | return; |
| | | } |
| | | int end = Math.min(endNum, orderList.size()); |
| | | List<String> targetTaskIds = orderList.subList(startNum, end).stream().map(TaskOrderVO::getTaskId).collect(Collectors.toList()); |
| | | List<Task> taskList = targetTaskIds.stream().map(taskId -> { |
| | | List<Task> list = allTodoList.stream().filter(task -> task.getId().equals(taskId)).collect(Collectors.toList()); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return null; |
| | | } |
| | | return list.get(0); |
| | | }).filter(Objects::nonNull).collect(Collectors.toList()); |
| | | List<IndexCustomerTaskVO> vos = new ArrayList<>(); |
| | | for (Task task : taskList) { |
| | | IndexCustomerTaskVO taskVO = new IndexCustomerTaskVO(); |