| package com.zy.acs.manager.core.domain; | 
|   | 
| import com.zy.acs.common.utils.GsonUtils; | 
| import com.zy.acs.framework.common.Cools; | 
| import lombok.Data; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.List; | 
| import java.util.Objects; | 
| import java.util.stream.Collectors; | 
|   | 
| /** | 
|  * Created by vincent on 11/5/2024 | 
|  */ | 
| @Data | 
| public class BlockVehicleDto { | 
|   | 
|     private String vehicle; | 
|   | 
|     private boolean avoidable; | 
|   | 
|     public BlockVehicleDto() { | 
|     } | 
|   | 
|     public BlockVehicleDto(String vehicle, boolean avoidable) { | 
|         this.vehicle = vehicle; | 
|         this.avoidable = avoidable; | 
|     } | 
|   | 
|     @Override | 
|     public boolean equals(Object o) { | 
|         if (this == o) return true; | 
|         if (o == null || getClass() != o.getClass()) return false; | 
|         BlockVehicleDto that = (BlockVehicleDto) o; | 
|         return Objects.equals(vehicle, that.vehicle); | 
|     } | 
|   | 
|     @Override | 
|     public int hashCode() { | 
|         return Objects.hash(vehicle); | 
|     } | 
|   | 
|     public static boolean customContain(List<BlockVehicleDto> list, String vehicle) { | 
|         if (Cools.isEmpty(list, vehicle)) { | 
|             return false; | 
|         } | 
|         for (BlockVehicleDto dto : list) { | 
|             if (dto.getVehicle().equals(vehicle)) { | 
|                 return true; | 
|             } | 
|         } | 
|         return false; | 
|     } | 
|   | 
|     public static void main(String[] args) { | 
|         List<BlockVehicleDto> blockVehicleList = new ArrayList<>(); | 
|         blockVehicleList.add(new BlockVehicleDto("1", true)); | 
|         blockVehicleList.add(new BlockVehicleDto("2", true)); | 
| //        blockVehicleList.add(new BlockVehicleDto("3", false)); | 
| //        blockVehicleList.add(new BlockVehicleDto("4", false)); | 
| //        blockVehicleList.add(new BlockVehicleDto("5", false)); | 
| //        blockVehicleList.add(new BlockVehicleDto("5", true)); | 
| //        blockVehicleList.add(new BlockVehicleDto("4", true)); | 
|   | 
|         System.out.println(GsonUtils.toJson(blockVehicleList)); | 
|         System.out.println(GsonUtils.toJson(blockVehicleList.stream().distinct().collect(Collectors.toList()))); | 
|   | 
|         System.out.println(blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable())); | 
|   | 
|         String blockAgvNo = blockVehicleList.stream() | 
|                 .filter(BlockVehicleDto::isAvoidable) | 
|                 .map(BlockVehicleDto::getVehicle) | 
|                 .findFirst().orElse(null); | 
|         System.out.println(blockAgvNo); | 
|     } | 
|   | 
| } |