#
luxiaotao1123
2022-08-25 7ea7fa055306a766420d578f508a7dc358afebc1
#
2个文件已修改
1个文件已添加
130 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SteController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/SteOperatorParam.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/ste.html 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SteController.java
@@ -2,18 +2,26 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.CrnStatusType;
import com.zy.asrs.domain.param.SteOperatorParam;
import com.zy.asrs.domain.vo.SteMsgTableVo;
import com.zy.asrs.domain.vo.SteStateTableVo;
import com.zy.asrs.entity.BasSte;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasSteService;
import com.zy.asrs.service.WrkMastService;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.SteTaskModeType;
import com.zy.core.model.SteSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.SteProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.SteThread;
@@ -143,4 +151,49 @@
        return R.ok().add(str.toString());
    }
    /****************************************************************/
    /************************** 手动操作 ******************************/
    /****************************************************************/
    @ManagerAuth(memo = "手动操作")
    @PostMapping("/operator/ste")
    public R steOperator(SteOperatorParam param){
        if (Cools.isEmpty(param.getSteNo(), param.getSteTaskMode())) {
            return R.parse(BaseRes.PARAM);
        }
        for (SteSlave ste : slaveProperties.getSte()) {
            // 获取堆垛机信息
            if (param.getSteNo().equals(ste.getId())) {
                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
                if (steThread == null) {
                    throw new CoolException("穿梭车不在线");
                }
                SteProtocol steProtocol = steThread.getSteProtocol();
                if (steProtocol == null) {
                    throw new CoolException("穿梭车不在线");
                }
                SteTaskModeType steTaskModeType = SteTaskModeType.get(param.getSteTaskMode());
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(ste.getId()); // 穿梭车编号
                if (param.getSteTaskMode() == 16) {
                    steCommand.setComplete(true);
                } else {
                    if (steTaskModeType == null) {
                        throw new CoolException("任务类型错误");
                    }
                    steCommand.setTaskNo(param.getTaskNo()); // 工作号
                    steCommand.setTaskMode(steTaskModeType);
                }
                if (MessageQueue.offer(SlaveType.Ste, ste.getId(), new Task(2, steCommand))) {
                    return R.ok();
                } else {
                    throw new CoolException("命令下发失败");
                }
            }
        }
        return R.error();
    }
}
src/main/java/com/zy/asrs/domain/param/SteOperatorParam.java
New file
@@ -0,0 +1,32 @@
package com.zy.asrs.domain.param;
import lombok.Data;
/**
 * Created by vincent on 2020-06-02
 */
@Data
public class SteOperatorParam {
    // 穿梭车号
    private Integer steNo;
    // 命令类型
    private Short steTaskMode;
    // 任务号
    private Integer taskNo = 0;
    // 目标库位-排
    private Short row;
    // 目标库位-列
    private Short bay;
    // 目标库位-层
    private Short lev;
    // 所属堆垛机
    private Integer crnNo;
}
src/main/webapp/views/ste.html
@@ -152,24 +152,22 @@
                    <fieldset>
                        <legend>手动操作</legend>
                        <div class="button-group">
                            <button class="item" onclick="leftTake()">左出库</button>
                            <button class="item" onclick="rightTake()">右出库</button>
                            <button class="item" onclick="leftPut()">左入库</button>
                            <button class="item" onclick="rightPut()">右入库</button>
                            <button class="item" onclick="leftStockMove()">左移库</button>
                            <button class="item" onclick="rightStockMove()">右移库</button>
                            <button class="item" onclick="oOrigin()">原点</button>
                            <button class="item" onclick="farPoint()">远点</button>
                            <button class="item" onclick="aPoint()">A 点</button>
                            <button class="item" onclick="bPoint()">B 点</button>
                            <button class="item" onclick="moveLift()">左搬移</button>
                            <button class="item" onclick="moveRight()">右搬移</button>
                            <button class="item" onclick="charging()">充电</button>
                            <button class="item" onclick="pause()">左盘点</button>
                            <button class="item" onclick="boot()">右盘点</button>
                            <button class="item" onclick="boot()">任务完成</button>
                            <button class="item" onclick="clearCommand()">清除命令</button>
                            <button class="item" onclick="handleReset()">复位</button>
                            <button class="item" onclick="steOperator(1)">左出库</button>
                            <button class="item" onclick="steOperator(2)">右出库</button>
                            <button class="item" onclick="steOperator(3)">左入库</button>
                            <button class="item" onclick="steOperator(4)">右入库</button>
                            <button class="item" onclick="steOperator(5)">左移库</button>
                            <button class="item" onclick="steOperator(6)">右移库</button>
                            <button class="item" onclick="steOperator(7)">原点</button>
                            <button class="item" onclick="steOperator(8)">远点</button>
                            <button class="item" onclick="steOperator(9)">A 点</button>
                            <button class="item" onclick="steOperator(10)">B 点</button>
                            <button class="item" onclick="steOperator(11)">左搬移</button>
                            <button class="item" onclick="steOperator(12)">右搬移</button>
                            <button class="item" onclick="steOperator(13)">充电</button>
                            <button class="item" onclick="steOperator(14)">左盘点</button>
                            <button class="item" onclick="steOperator(15)">右盘点</button>
                            <button class="item" onclick="steOperator(16)">任务完成</button>
                        </div>
                    </fieldset>
                </div>
@@ -328,6 +326,17 @@
        })
    }
    // 任务指令下发
    function steOperator(steTaskMode) {
        http.post(baseUrl+"/ste/operator/ste", {
            steNo: $('input[name="steSelect"]:checked').val(),
            steTaskMode: steTaskMode
        }, function (res) {
            layer.msg(res.msg, {icon: 1});
        });
    }
    // ------------------------------------------------------------------------------------------------
    // 穿梭车信息表获取  ----- 表一