| | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.Valid; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | |
| | | List<XpOperationsUserPositionDTO> up = mongoTemplate.find(q, XpOperationsUserPositionDTO.class); |
| | | |
| | | Map<Long, Double> disMap = up.stream().collect(Collectors.toMap(XpOperationsUserPositionDTO::getId, XpOperationsUserPositionDTO::getDistance)); |
| | | // 查询车队下面面所有人员id和up求交集 |
| | | List<Long> data = xpFleetClient.idsByFleetName(query.getFleet()).getData(); |
| | | |
| | | List<Long> ids = up.stream().map(XpOperationsUserPositionDTO::getId) |
| | | .filter(e -> data!=null && !data.isEmpty() &&!data.contains(e)) |
| | | .filter(e -> data == null || data.isEmpty() || data.contains(e)) |
| | | .collect(Collectors.toList()); |
| | | |
| | | query.setIds(ids); |
| | | PageInfo<XpOperationsUserWithRoleVO> ret = operationUserClient.listByQueryIds(query).getData(); |
| | | |
| | | // 设置距离,然后排序 |
| | | ret.getRecords().forEach(e -> e.setDis(String.valueOf(disMap.get(e.getId())))); |
| | | List<XpOperationsUserWithRoleVO> sorted = ret.getRecords().stream().sorted(Comparator.comparing(XpOperationsUserWithRoleVO::getDis)).collect(Collectors.toList()); |
| | | ret.setRecords(sorted); |
| | | return R.ok(ret); |
| | | } |
| | | |