package com.mes.interaction.flow; import com.mes.device.entity.DeviceConfig; import com.mes.interaction.DeviceInteraction; import com.mes.interaction.base.InteractionContext; import com.mes.interaction.base.InteractionResult; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 大理片交互实现 */ @Component public class LargeGlassInteraction implements DeviceInteraction { @Override public String getDeviceType() { return DeviceConfig.DeviceType.LARGE_GLASS; } @Override public InteractionResult execute(InteractionContext context) { Object source = context.getSharedData().get("glassesFromVehicle"); List glassQueue = castList(source); if (CollectionUtils.isEmpty(glassQueue)) { return InteractionResult.waitResult("等待上大车输出", null); } List processed = new ArrayList<>(glassQueue); context.setProcessedGlassIds(processed); context.getSharedData().put("processedGlasses", processed); Map data = new HashMap<>(); data.put("processedCount", processed.size()); data.put("processedGlasses", processed); return InteractionResult.success(data); } @SuppressWarnings("unchecked") private List castList(Object value) { if (value instanceof List) { return (List) value; } return null; } }