|
|
@@ -1421,11 +1421,11 @@ public class KwfTruckService {
|
|
|
//根据车辆id查询车辆信息
|
|
|
List<KwfTruck> kwfTrucks = kwfTruckRepository.queryByTruckIds(truckIds);
|
|
|
//按照车辆id进行分组
|
|
|
- Map<Long, List<KwfTruck>> truckIdAndTruckListMap = kwfTrucks.stream().collect(Collectors.groupingBy(KwfTruck::getId));
|
|
|
+ Map<Long, KwfTruck> truckIdAndTruckMap = kwfTrucks.stream().collect(Collectors.toMap(KwfTruck::getId, Function.identity(),(k1,k2)->k1));
|
|
|
//获取要返回的车辆信息
|
|
|
List<CapacityStatusVo.Truck> trucks = Lists.newArrayList();
|
|
|
fleetIdAndFleetTruckListMap.forEach((fleetId, fleetTruckList) -> {
|
|
|
- buildTruck(fleetId, fleetTruckList, fleetMap,trucks);
|
|
|
+ buildTruck(fleetId, fleetTruckList, fleetMap,trucks,kwfTrucks);
|
|
|
});
|
|
|
|
|
|
CapacityStatusVo capacityStatusVo = new CapacityStatusVo();
|
|
|
@@ -1433,20 +1433,23 @@ public class KwfTruckService {
|
|
|
return capacityStatusVo;
|
|
|
}
|
|
|
|
|
|
- private static void buildTruck(Long fleetId, List<KwfFleetTruck> fleetTruckList, Map<Long, KwfFleet> fleetMap,List<CapacityStatusVo.Truck> trucks) {
|
|
|
+ private static void buildTruck(Long fleetId, List<KwfFleetTruck> fleetTruckList, Map<Long, KwfFleet> fleetMap,List<CapacityStatusVo.Truck> trucks,List<KwfTruck> kwfTrucks) {
|
|
|
CapacityStatusVo.Truck truck = new CapacityStatusVo.Truck();
|
|
|
truck.setFleetId(String.valueOf(fleetId));
|
|
|
truck.setFleetName(fleetMap.getOrDefault(fleetId, new KwfFleet()).getName());
|
|
|
//获取空闲车辆数
|
|
|
truck.setIdleNum("0");
|
|
|
truck.setRunningNum("0");
|
|
|
- if (CollectionUtils.isNotEmpty(fleetTruckList)) {
|
|
|
- long idleNum = fleetTruckList.stream()
|
|
|
- .filter(ft -> Objects.equals(ft.getStatus(), 0))
|
|
|
+ if (CollectionUtils.isNotEmpty(fleetTruckList) ) {
|
|
|
+ Set<Long> truckIds = fleetTruckList.stream()
|
|
|
+ .map(KwfFleetTruck::getTruckId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ long idleNum = kwfTrucks.stream()
|
|
|
+ .filter(x -> kwfTrucks.contains(x.getId()) && Objects.equals(x.getBusinessStatus(), 0))
|
|
|
.count();
|
|
|
truck.setIdleNum(String.valueOf(idleNum));
|
|
|
- long runningNum = fleetTruckList.stream()
|
|
|
- .filter(ft -> Objects.equals(ft.getStatus(), 1))
|
|
|
+ long runningNum = kwfTrucks.stream()
|
|
|
+ .filter(x -> kwfTrucks.contains(x.getId()) && Objects.equals(x.getBusinessStatus(), 1))
|
|
|
.count();
|
|
|
truck.setRunningNum(String.valueOf(runningNum));
|
|
|
}
|