#
Junjie
2024-10-17 cab87dcfaa7b1e2bc1298572b775026bb17ef38b
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -16,6 +16,7 @@
import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.rcs.entity.Device;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.enums.WorkModeType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.rcs.service.DeviceService;
import com.zy.asrs.wcs.rcs.thread.DevpThread;
@@ -58,6 +59,8 @@
    private BasLiftService basLiftService;
    @Autowired
    private BasConveyorService basConveyorService;
    @Autowired
    private BasConveyorStaService basConveyorStaService;
    //生成入库任务
    @PostMapping("/createInTask")
@@ -110,6 +113,40 @@
            destSite = String.valueOf(path.getDeviceStn());
        }
//        //判断出入库模式
//        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
//                .eq(BasConveyorSta::getSiteNo, destSite));
//        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) {
//            //不是入库模式,检测是否可切换入库
//            //获取出库任务类型
//            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
//                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT))
//                    .eq(TaskCtg::getStatus, 1));
//            if (taskInCtg == null) {
//                return R.error("任务类型异常");
//            }
//            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
//                    .eq(Task::getTaskCtg, taskInCtg.getId()));
//            if (!tasks.isEmpty()) {
//                return R.error("当前存在出库任务,无法切换入库模式");
//            }
//
//            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
//            if(basConveyor == null) {
//                return R.error("输送线不存在");
//            }
//
//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
//            if(devpThread == null) {
//                return R.error("输送线线程不存在");
//            }
//
//            boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id);
//            if (!result) {
//                return R.error("模式切换失败");
//            }
//        }
        //优先级
        Integer priority = 10;
        if (param.getPriority() != null) {
@@ -127,6 +164,7 @@
        task.setOriginLoc(null);
        task.setDestSite(destSite);
        task.setDestLoc(param.getDestLoc());
        task.setZpallet(param.getBarcode());
        task.setIoTime(new Date());
        task.setStartTime(new Date());
        task.setStatus(1);
@@ -211,6 +249,40 @@
            originSite = String.valueOf(originStaDto.getStaNo());
        }
//        //判断出入库模式
//        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>()
//                .eq(BasConveyorSta::getSiteNo, originSite));
//        if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) {
//            //不是出库模式,检测是否可切换出库
//            //获取入库任务类型
//            TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
//                    .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
//                    .eq(TaskCtg::getStatus, 1));
//            if (taskInCtg == null) {
//                return R.error("任务类型异常");
//            }
//            List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
//                    .eq(Task::getTaskCtg, taskInCtg.getId()));
//            if (!tasks.isEmpty()) {
//                return R.error("当前存在入库任务,无法切换出库模式");
//            }
//
//            BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo()));
//            if(basConveyor == null) {
//                return R.error("输送线不存在");
//            }
//
//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
//            if(devpThread == null) {
//                return R.error("输送线线程不存在");
//            }
//
//            boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id);
//            if (!result) {
//                return R.error("模式切换失败");
//            }
//        }
        //优先级
        Integer priority = 10;
        if (param.getPriority() != null) {