自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-09-22 634f691354a519fbae4714b20dbc9e89030657b8
src/main/java/com/zy/asrs/controller/SteController.java
@@ -31,6 +31,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -68,7 +69,7 @@
            if (steProtocol == null) {
                continue;
            }
            vo.setTaskNo(steProtocol.getTaskNo());  //  任务号
            vo.setTaskNo(steProtocol.getTaskNo().intValue());  //  任务号
            vo.setStatusType(steProtocol.mode == 0 ? "离线" : "在线");   //  模式状态
            if (!Cools.isEmpty(steProtocol.getStatus())) {
                vo.setStatus(steProtocol.getStatusType().desc);     //  状态
@@ -94,6 +95,9 @@
            if (!Cools.isEmpty(steProtocol.getTrack())) {
                vo.setTrack(steProtocol.getTrack()==0?"✔":"×");
            }
            if (!Cools.isEmpty(steProtocol.getChargeStatus())) {
                vo.setChargeStatus(steProtocol.getChargeStatus()==1?"✔":"×");
            }
        }
        return R.ok().add(list);
    }
@@ -118,7 +122,7 @@
                continue;
            }
            vo.setWorkNo(steProtocol.getTaskNo());  //  任务号
            vo.setWorkNo(steProtocol.getTaskNo().intValue());  //  任务号
            if (steProtocol.getTaskNo() > 0) {
                WrkMast wrkMast = wrkMastService.selectById(steProtocol.getTaskNo());
                if (wrkMast != null) {
@@ -133,6 +137,7 @@
            }
            vo.setSpeed(steProtocol.getSpeed());  // 速度
            vo.setCloser(steProtocol.getCloser());  // 近点距离
            vo.setPakMk(steProtocol.getPakMk());    // 作业标记
        }
        return R.ok().add(list);
    }
@@ -163,6 +168,7 @@
                    vo.setLev(basSte.getLev());
                    vo.setCrnNo(basSte.getCrnNo());
                    vo.setWorkNo(basSte.getWrkNo());
                    vo.setPakMk(basSte.getPakMk());
                }
                break;
            }
@@ -173,7 +179,34 @@
    @PostMapping("/detl/update")
    @ManagerAuth
    public R steUpdate(SteDataVo vo){
        BasSte basSte = basSteService.selectById(vo.getSteNo());
        if (basSte == null) {
            return R.error();
        }
        // 获取穿梭车信息
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, vo.getSteNo());
        SteProtocol steProtocol = steThread.getSteProtocol();
        if (steProtocol == null) {
           throw new CoolException(vo.getSteNo() + "号穿梭车不在线,无法保存");
        }
        if (!Cools.isEmpty(vo.getRow(), vo.getBay(), vo.getLev())) {
            if (!steThread.modifyPosHandle(vo.getRow(), vo.getBay(), vo.getLev())) {
                throw new CoolException("服务器错误");
            }
        }
        SteCommand steCommand = new SteCommand();
        steCommand.setTaskNo(vo.getWorkNo());
        if (MessageQueue.offer(SlaveType.Ste, vo.getSteNo(), new Task(2, steCommand))) {
        } else {
            throw new CoolException("命令下发失败");
        }
        basSte.setPakMk(vo.getPakMk());
        basSte.setWrkNo(vo.getWorkNo());
        basSte.setCrnNo(vo.getCrnNo());
        basSte.setUpdateTime(new Date());
        if (!basSteService.updateById(basSte)) {
            throw new CoolException("修改失败");
        }
        return R.ok();
    }
@@ -205,6 +238,10 @@
                steCommand.setSteNo(ste.getId()); // 穿梭车编号
                if (param.getSteTaskMode() == 16) {
                    steCommand.setComplete(true);
                } else if (param.getSteTaskMode() == 17) {
                    steCommand.setControlMode((short) 1);
                } else if (param.getSteTaskMode() == 18) {
                    steCommand.setControlMode((short) 0);
                } else {
                    if (steTaskModeType == null) {
                        throw new CoolException("任务类型错误");