#
zwl
2026-02-09 ad79ba405b2d1ac96423f88f4e8a76c584b9d38a
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -5,21 +5,28 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.param.*;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceConfigService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.annotations.OpenApiLog;
import com.zy.common.model.MonitorParam;
import com.zy.common.service.CommonService;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.WrkIoType;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.DualCrnProtocol;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StationProtocol;
import com.zy.core.thread.CrnThread;
import com.zy.core.thread.DualCrnThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.StationThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -54,6 +61,8 @@
    private ConfigService configService;
    @Autowired
    private DeviceConfigService deviceConfigService;
    @Autowired
    private BasDevpService basDevpService;
    // 移库任务
    @PostMapping("/createLocMoveTask")
@@ -184,8 +193,44 @@
            rgvProtocols.add(rgvProtocol);
        }
        map.put("crn", crnList);
        map.put("rgv", rgvList);
        // 获取双工位堆垛机数据
        ArrayList<DualCrnProtocol> dualCrnProtocols = new ArrayList<>();
        List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.DualCrn)));
        for (DeviceConfig device : dualCrnList) {
            DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, device.getDeviceNo());
            if (dualCrnThread == null) {
                continue;
            }
            DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
            if (dualCrnProtocol == null) {
                continue;
            }
            dualCrnProtocols.add(dualCrnProtocol);
        }
        // 获取输送站点数据
        ArrayList<StationProtocol> stationProtocols = new ArrayList<>();
        List<DeviceConfig> stationList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Devp)));
        for (DeviceConfig device : stationList) {
            StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, device.getDeviceNo());
            if (stationThread == null) {
                continue;
            }
            List<StationProtocol> stationProtocolList = stationThread.getStatus();
            if (stationProtocolList == null) {
                continue;
            }
            stationProtocols.addAll(stationProtocolList);
        }
        map.put("crnList", crnProtocols);
        map.put("rgvList", rgvList);
        map.put("dualCrnList", dualCrnProtocols);
        map.put("stationList", stationProtocols);
        return R.ok().add(map);
    }
@@ -312,4 +357,41 @@
        return R.ok();
    }
    // 反馈任务执行结果
    @PostMapping("/stationStatus")
    public R stationStatus(@RequestBody MonitorParam param){
        if(param == null || param.getStationIds().length == 0){
            return R.error("输入的参数为空");
        }
        List<StationProtocol> basDevps  =  new ArrayList<>();
        Boolean flag = false;
        // 获取输送站点数据
        ArrayList<StationProtocol> stationProtocols = new ArrayList<>();
        List<DeviceConfig> stationList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Devp)));
        for (DeviceConfig device : stationList) {
            StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, device.getDeviceNo());
            if (stationThread == null) {
                continue;
            }
            List<StationProtocol> stationProtocolList = stationThread.getStatus();
            if (stationProtocolList == null) {
                continue;
            }
            for (StationProtocol stationProtocol : stationProtocolList) {
                for (int i = 0; i < param.getStationIds().length; i++) {
                    if (stationProtocol.getStationId().equals(param.getStationIds()[i])){
                        flag = true;
                        basDevps.add(stationProtocol);
                    }
                }
            }
        }
        if(flag){
            return R.ok().add(basDevps);
        }
        return null;
    }
}