package com.zy.asrs.wcs.rcs.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; import com.zy.asrs.wcs.rcs.cache.SlaveConnection; import com.zy.asrs.wcs.rcs.entity.Device; import com.zy.asrs.wcs.rcs.entity.DeviceType; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; import com.zy.asrs.wcs.rcs.service.DeviceService; import com.zy.asrs.wcs.rcs.service.ShuttleService; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("ShuttleService") public class ShuttleServiceImpl implements ShuttleService { @Autowired private DeviceService deviceService; @Override public List getShuttleStatusList(Long hostId) { ArrayList data = new ArrayList<>(); List list = deviceService.list(new LambdaQueryWrapper() .eq(Device::getHostId, hostId) .eq(Device::getStatus, 1) .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())); for (Device device : list) { ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue()); if (shuttleThread == null) { continue; } ShuttleProtocol status = shuttleThread.getStatus(); data.add(status); } return data; } }