自动化立体仓库 - WCS系统
Junjie
4 天以前 b69671d75ba283f8d47c31ae989b5dd346b62967
src/main/java/com/zy/asrs/controller/ForkLiftController.java
@@ -12,22 +12,15 @@
import com.zy.asrs.entity.BasLift;
import com.zy.asrs.service.BasLiftService;
import com.zy.common.service.CommonService;
import com.zy.common.utils.ForkLiftUtils;
import com.zy.common.utils.RedisUtil;
import com.zy.core.action.ForkLiftAction;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.ForkLiftProtocolStatusType;
import com.zy.core.enums.ForkLiftTaskModeType;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.*;
import com.zy.core.model.ForkLiftSlave;
import com.zy.core.model.LiftSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.*;
import com.zy.core.model.protocol.ForkLiftProtocol;
import com.zy.core.model.protocol.LiftStaProtocol;
import com.zy.core.model.protocol.ForkLiftStaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.ForkLiftThread;
import lombok.extern.slf4j.Slf4j;
@@ -75,6 +68,8 @@
                continue;
            }
            JSONObject data = JSON.parseObject(JSON.toJSONString(forkLiftProtocol));
            List<ForkLiftStaProtocol> forkLiftStaProtocols = forkLiftThread.getForkLiftStaProtocols();
            data.put("forkLiftStaProtocols", forkLiftStaProtocols);
            baseObj.putAll(data);
        }
        return R.ok().add(list);
@@ -99,8 +94,9 @@
                continue;
            }
            vo.setWorkNo(forkLiftProtocol.getTaskNo().intValue());//任务号
            vo.setWorkNo(forkLiftProtocol.getTaskNo());//任务号
            vo.setPakMk(forkLiftProtocol.getPakMk()?"Y" : "N");    // 作业标记
            vo.setForkLiftStaProtocols(forkLiftThread.getForkLiftStaProtocols());
        }
        return R.ok().add(list);
    }
@@ -160,9 +156,7 @@
    @PostMapping("/detl/update")
    @ManagerAuth(memo = "修改数据")
    public R liftUpdate(@RequestParam Integer liftNo,
                        @RequestParam Short workNo,
                        @RequestParam String pakMk,
                        @RequestParam Integer token) {
                        @RequestParam Short workNo) {
        ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
        if (forkLiftThread == null) {
            return R.error("plc已掉线");
@@ -277,7 +271,7 @@
        if (param.getLiftTaskMode() == 1) {
            //小车换层
            int workNo = commonService.getWorkNo(99);//获取任务号
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
@@ -299,7 +293,7 @@
            return R.ok();
        } else if (param.getLiftTaskMode() == 2) {
            //移动托盘
            int workNo = commonService.getWorkNo(99);//获取任务号
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
@@ -319,6 +313,32 @@
            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
            return R.ok();
        } else if (param.getLiftTaskMode() == 3) {
            //移动
            int workNo = commonService.getWorkNo(WrkIoType.MANUAL.id);//获取任务号
            Integer startSta = param.getSourceStaNo();
            Integer targetSta = param.getStaNo();
            //获取提升机命令
            List<ForkLiftCommand> liftCommand = forkLiftThread.getMoveCommand(workNo, startSta, targetSta);
            ArrayList<ForkLiftCommand> commands = new ArrayList<>();
            commands.addAll(liftCommand);
            //提交到线程去工作
            LiftAssignCommand assignCommand = new LiftAssignCommand();
            assignCommand.setCommands(commands);
            assignCommand.setLiftNo(forkLiftProtocol.getLiftNo().shortValue());
            assignCommand.setTaskNo((short) workNo);
            assignCommand.setAuto(false);//手动模式
            assignCommand.setTaskMode(ForkLiftTaskModeType.MOVE.id.shortValue());
            forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
            return R.ok();
        } else if (param.getLiftTaskMode() == 4) {
            //任务确认
            forkLiftThread.reset();
            return R.ok();
        } else if (param.getLiftTaskMode() == 0) {
            //提升机复位
            forkLiftThread.setSyncTaskNo(0);