Junjie
2024-04-12 89e6e823e4eeed9c08ac612d8089678ad24b4ef2
#取放货动作
3个文件已修改
59 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -150,11 +150,16 @@
            return R.error();
        }
        String sourceLoc = null;//源库位
        String targetLoc = null;//任务目标(借用字段)
        String targetSite = param.getShuttleTaskMode();//任务类型(借用字段)
        if (param.getShuttleTaskMode().equals("moveLoc")) {
            //迁移任务
            targetLoc = param.getTargetLocNo();
        } else if (param.getShuttleTaskMode().equals("takeMove")) {
            //取放货任务
            targetLoc = param.getTargetLocNo();
            sourceLoc = param.getSourceLocNo();
        }
        Task task = new Task();
@@ -164,7 +169,7 @@
        task.setTaskCtg(taskCtg.getId());
        task.setPriority(10);
        task.setOriginSite(null);
        task.setOriginLoc(null);
        task.setOriginLoc(sourceLoc);
        task.setDestSite(targetSite);
        task.setDestLoc(targetLoc);
        task.setIoTime(new Date());
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/ShuttleOperatorParam.java
@@ -11,6 +11,9 @@
    // 命令类型
    private String shuttleTaskMode;
    // 源库位
    private String sourceLocNo;
    // 目标库位
    private String targetLocNo;
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -980,6 +980,7 @@
            return motionList;
        }
        String sourceLoc = task.getOriginLoc();//源库位
        String targetLoc = task.getDestLoc();//任务目标(借用字段)
        String targetSite = task.getDestSite();//任务类型(借用字段)
@@ -1052,6 +1053,54 @@
            }));
        } else if (targetSite.equals("reset")) {
            //复位
        } else if (targetSite.equals("takeMove")) {
            //取放货
            String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
            // 判断穿梭车是否在目标层
            if (Utils.getLev(shuttleLocNo) == Utils.getLev(targetLoc)) {
                // 穿梭车走行至源库位
                motionList.addAll(kernelService.shuttleMove(
                        MotionDto.build((dto -> {
                            dto.setShuttleNo(device.getId().intValue());
                            dto.setLocNo(shuttleLocNo);
                        })),
                        MotionDto.build((dto -> {
                            dto.setShuttleNo(device.getId().intValue());
                            dto.setLocNo(sourceLoc);
                        })),
                        MotionCtgType.SHUTTLE_MOVE
                ));
                //托盘顶升
                motionList.add(Motion.build(motion -> {
                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
                    motion.setDevice(String.valueOf(device.getId()));
                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_LIFT.val());
                }));
                // 穿梭车走行至目标库位
                motionList.addAll(kernelService.shuttleMove(
                        MotionDto.build((dto -> {
                            dto.setShuttleNo(device.getId().intValue());
                            dto.setLocNo(sourceLoc);
                        })),
                        MotionDto.build((dto -> {
                            dto.setShuttleNo(device.getId().intValue());
                            dto.setLocNo(targetLoc);
                        })),
                        MotionCtgType.SHUTTLE_MOVE
                ));
                //托盘下降
                motionList.add(Motion.build(motion -> {
                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
                    motion.setDevice(String.valueOf(device.getId()));
                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_DOWN.val());
                }));
            }
        }
        return motionList;