#
Junjie
2024-10-17 d62c5c0eb2e28b7bf27d23de84a609b5a2e415e4
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -17,6 +17,7 @@
import com.zy.asrs.wcs.core.entity.TaskCtg;
import com.zy.asrs.wcs.core.kernel.AnalyzeService;
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
import com.zy.asrs.wcs.core.model.enums.TaskStsType;
import com.zy.asrs.wcs.core.service.BasShuttleService;
import com.zy.asrs.wcs.core.service.MotionService;
@@ -142,7 +143,7 @@
        //获取手动任务类型
        TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
                .eq(TaskCtg::getFlag, "MANUAL")
                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MANUAL))
                .eq(TaskCtg::getStatus, 1));
        if (taskCtg == null) {
            return R.error();
@@ -175,6 +176,23 @@
            shuttleThread.reset(null);
            return R.ok();
        } else if (param.getShuttleTaskMode().equals("requestWaiting")) {
            //申请确认
            Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
                    .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
                    .eq(Device::getStatus, 1)
                    .eq(Device::getDeviceNo, shuttleNo));
            if (device == null) {
                return R.error("设备不存在");
            }
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
            if (shuttleThread == null) {
                return R.error("设备离线");
            }
            shuttleThread.requestWaiting();
            return R.ok();
        }
        Task task = new Task();
@@ -185,15 +203,15 @@
        task.setPriority(10);
        task.setOriginSite(null);
        task.setOriginLoc(sourceLoc);
        task.setDestSite(targetSite);
        task.setDestSite(null);
        task.setDestLoc(targetLoc);
        task.setIoTime(new Date());
        task.setStartTime(new Date());
        task.setStatus(1);
        task.setMemo("manual");
        task.setMemo(targetSite);
        task.setShuttleNo(param.getShuttleNo());
        if (param.getShuttleTaskMode().equals("taskMove")) {
        if (param.getShuttleTaskMode().equals("takeMove")) {
            task.setRecordLoc("Y");//记录库存信息
        }
        boolean result = taskService.save(task);
@@ -222,7 +240,6 @@
    //跑库系统
    @PreAuthorize("hasAuthority('core:basShuttle:operator')")
    @PostMapping("/basShuttle/moveLoc")
    @Transactional
    public synchronized R shuttleMoveLoc(@RequestBody ShuttleMoveLocParam param) {
        Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
                .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
@@ -247,7 +264,34 @@
            return R.error("小车忙碌中");
        }
        shuttleThread.enableMoveLoc(param);
        shuttleThread.enableMoveLoc(param, true);
        return R.ok();
    }
    //跑库系统关闭
    @PreAuthorize("hasAuthority('core:basShuttle:operator')")
    @PostMapping("/basShuttle/moveLocClose")
    public synchronized R shuttleMoveLocClose(@RequestBody ShuttleMoveLocParam param) {
        Device device = deviceService.getOne(new LambdaQueryWrapper<Device>()
                .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
                .eq(Device::getStatus, 1)
                .eq(Device::getHostId, getHostId())
                .eq(Device::getDeviceNo, param.getShuttleNo()));
        if (device == null) {
            return R.error();
        }
        ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
        if (shuttleThread == null) {
            return R.error();
        }
        ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
        if (shuttleProtocol == null) {
            return R.error();
        }
        shuttleThread.enableMoveLoc(null, false);
        return R.ok();
    }