diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisElevatorFloorRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisElevatorFloorRefServiceImpl.java index 43e932e0..c6c2d4f7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisElevatorFloorRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisElevatorFloorRefServiceImpl.java @@ -21,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 电梯⇄楼层关联Service业务层处理 @@ -164,12 +166,18 @@ public class SisElevatorFloorRefServiceImpl implements ISisElevatorFloorRefServi lqw.in(SisElevatorFloorRef::getFloorId, info.stream().map(SisElevatorFloorChannelRef::getFloorId).toList()); List list = baseMapper.selectList(lqw); + // 创建Map提高查找效率,避免在循环中重复流操作 + Map floorInfoMap = info.stream() + .collect(Collectors.toMap(SisElevatorFloorChannelRef::getFloorId, Function.identity())); - for (SisElevatorFloorRef item : list){ - item.setInChannel(info.stream().filter(x -> x.getFloorId().equals(item.getFloorId())).findFirst().get().getInChannel()); + for (SisElevatorFloorRef item : list) { + SisElevatorFloorChannelRef floorInfo = floorInfoMap.get(item.getFloorId()); + if (floorInfo != null) { + item.setInChannel(floorInfo.getInChannel()); + item.setOutChannel(floorInfo.getOutChannel()); + } } - return false; - + return baseMapper.updateBatchById(list); } }