//车牌集合
List plateNumberList = voList.stream().map(WorkOrderInstallVO :: getPlateNumber).collect(Collectors.toList());
//车牌集合查询车详情数据(数据库)
List dataList = vehicleInfoMapper.queryVehicleNoListInfoVOMap(plateNumberList);
// 获取车主名称
List enterpriseIdList = dataList.stream().map(WorkOrderInstallVO :: getOwnerId).collect(Collectors.toList());
// 从车牌集合里查询出 管理公司ID + 车主ID (A集合+B集合)
enterpriseIdList.addAll(dataList.stream().filter(vo -> vo.getCompanyId() != null).map(WorkOrderInstallVO :: getCompanyId).collect(Collectors.toList()));
// 根据所有企业ID查询企业名称 (把ID集合转换成 '1,2,3,4' 字符串)
Map enterpriseMap = platformBaseFeign.getIdToEnterpriseNameMap(enterpriseIdList.stream().distinct().map(String::valueOf).collect(Collectors.joining(",")));
// 获取车辆数据字典类型
List vehicleInfoList = VehiclePublicConstant.VEHICLE_INFO_PUBLIC_INDEX_PAGE_DATA_LIST;
Map dictionaryMap = platformBaseFeign.selectLangByDictionaryByIdTypeList(vehicleInfoList).getData();
//使用stream流把list1和list2根据属性plateNumber 车牌号 合并一个list集合
List list = page.getRecords().stream().map(m -> {
dataList.stream().filter(m2-> Objects.equals(m.getPlateNumber(),m2.getPlateNumber())).forEach(m2-> {
m.setEnterpriseName(enterpriseMap.get(new Integer(m2.getOwnerId())));//车主名称
if (null != m2.getCompanyId()) {
m.setManagementName(enterpriseMap.get(new Integer(m2.getCompanyId())));//管理公司名称
}
m.setVehicleModelName(dictionaryMap.get(m2.getVehicleModel()));
m.setVehicleTypeName(dictionaryMap.get(m2.getVehicleType()));
});
return m;
}).collect(Collectors.toList());
}