自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-09-22 6b8225e9d81cb6bfa0efeed2f0a02428eb3a86d1
#
1个文件已添加
3个文件已修改
105 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SteController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/param/SteModeParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/SteStateTableVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/ste.html 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SteController.java
@@ -7,6 +7,8 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.CrnStatusType;
import com.zy.asrs.domain.param.CrnDemoParam;
import com.zy.asrs.domain.param.SteModeParam;
import com.zy.asrs.domain.param.SteOperatorParam;
import com.zy.asrs.domain.vo.SteMsgTableVo;
import com.zy.asrs.domain.vo.SteStateTableVo;
@@ -20,11 +22,13 @@
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.SteTaskModeType;
import com.zy.core.model.CrnSlave;
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.properties.SystemProperties;
import com.zy.core.thread.SteThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -70,6 +74,7 @@
                continue;
            }
            vo.setTaskNo(steProtocol.getTaskNo().intValue());  //  任务号
            vo.setStatusVal(steProtocol.getMode().intValue());  // 在线状态
            vo.setStatusType(steProtocol.mode == 0 ? "离线" : "在线");   //  模式状态
            if (!Cools.isEmpty(steProtocol.getStatus())) {
                vo.setStatus(steProtocol.getStatusType().desc);     //  状态
@@ -215,6 +220,42 @@
    /************************** 手动操作 ******************************/
    /****************************************************************/
    @PostMapping("/mode/switch")
    @ManagerAuth
    public R crnDemo(SteModeParam param) throws InterruptedException {
        if (Cools.isEmpty(param.getSteNo())){
            return R.error();
        }
        if (Cools.isEmpty(param.getPassword())){
            return R.error("请输入口令");
        }
        if (!param.getPassword().equals(SystemProperties.WCS_PASSWORD)){
            return R.error("口令错误");
        }
        Thread.sleep(200L);
        for (SteSlave steSlave : slaveProperties.getSte()) {
            if (steSlave.getId().equals(param.getSteNo())) {
                // 获取穿梭车信息
                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
                SteProtocol steProtocol = steThread.getSteProtocol();
                if (steProtocol == null) { continue; }
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(param.getSteNo()); // 穿梭车编号
                if (steProtocol.getMode() == 0) {
                    steCommand.setControlMode((short) 1);
                } else {
                    steCommand.setControlMode((short) 0);
                }
                if (MessageQueue.offer(SlaveType.Ste, param.getSteNo(), new Task(2, steCommand))) {
                    return R.ok();
                } else {
                    throw new CoolException("命令下发失败");
                }
            }
        }
        return R.ok();
    }
    @ManagerAuth(memo = "手动操作")
    @PostMapping("/operator/ste")
    public R steOperator(SteOperatorParam param){
@@ -238,9 +279,9 @@
                steCommand.setSteNo(ste.getId()); // 穿梭车编号
                if (param.getSteTaskMode() == 16) {
                    steCommand.setComplete(true);
                } else if (param.getSteTaskMode() == 17) {
                } else if (param.getSteTaskMode() == 99) {
                    steCommand.setControlMode((short) 1);
                } else if (param.getSteTaskMode() == 18) {
                } else if (param.getSteTaskMode() == 100) {
                    steCommand.setControlMode((short) 0);
                } else {
                    if (steTaskModeType == null) {
src/main/java/com/zy/asrs/domain/param/SteModeParam.java
New file
@@ -0,0 +1,19 @@
package com.zy.asrs.domain.param;
import lombok.Data;
/**
 * 堆垛机演示操作入参
 * Created by vincent on 2020-06-03
 */
@Data
public class SteModeParam {
    private Integer steNo;
    // 密码口令
    private String password;
    private Boolean opt;
}
src/main/java/com/zy/asrs/domain/vo/SteStateTableVo.java
@@ -11,6 +11,9 @@
    // 穿梭车号
    private Integer steNo;
    // 在线状态
    private Integer statusVal;
    // 模式
    private String statusType = "-";
src/main/webapp/views/ste.html
@@ -24,14 +24,17 @@
                    <div data-steNo="1" class="ste-command-item" style="margin-top: 30px">
                        <label>1#</label>
                        <button class="demoBtn pos-btn">数据维护</button>
                        <button id="mode-1" class="demoBtn mode-btn" > - </button>
                    </div>
                    <div data-steNo="2" class="ste-command-item" style="margin-top: 30px">
                        <label>2#</label>
                        <button class="demoBtn pos-btn">数据维护</button>
                        <button id="mode-2" class="demoBtn mode-btn" > - </button>
                    </div>
                    <div data-steNo="3" class="ste-command-item" style="margin-top: 30px">
                        <label>3#</label>
                        <button class="demoBtn pos-btn">数据维护</button>
                        <button id="mode-3" class="demoBtn mode-btn" > - </button>
                    </div>
                </div>
                <!-- 堆垛机状态位信息 -->
@@ -106,8 +109,8 @@
                    <fieldset>
                        <legend>手动操作</legend>
                        <div class="button-group">
                            <button class="item" onclick="steOperator(17)">联机</button>
                            <button class="item" onclick="steOperator(18)">脱机</button>
                            <button class="item" onclick="steOperator(99)">联机</button>
                            <button class="item" onclick="steOperator(100)">脱机</button>
                            <button class="item" onclick="steOperator(1)">向左出库</button>
                            <button class="item" onclick="steOperator(2)">向右出库</button>
                            <button class="item" onclick="steOperator(3)">从左入库</button>
@@ -265,6 +268,36 @@
        })
    })
    $(document).on('click ','.mode-btn', function () {
        let steNo = Number($(this).parent().attr("data-steNo"));
        layer.confirm("改变" + steNo + ' 号穿梭车在线状态吗?', function(){
            var index = layer.load(1, {
                shade: [0.1,'#fff']
            });
            $.ajax({
                url: baseUrl+ "/ste/mode/switch",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    steNo: Number(steNo),
                    password: 'root'
                },
                method: 'POST',
                success: function (res) {
                    layer.close(index);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                    } else if (res.code === 403){
                        window.location.href = baseUrl+"/login";
                    }  else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            });
        });
    })
    $(document).on('click ','#save', function () {
        http.post(baseUrl+ "/ste/detl/update", {
            steNo: $('#steNo').val(),
@@ -299,6 +332,7 @@
                        steStateTableFullRows = table.length;
                    }
                    for (let i=1;i<=table.length;i++){
                        $("#mode-"+table[i-1].steNo).html(table[i-1].statusVal===0?'联机':'脱机');
                        let tr = tableEl.find("tr").eq(i);
                        setVal(tr.children("td").eq(0), table[i-1].steNo);
                        setVal(tr.children("td").eq(1), table[i-1].statusType);