src/main/java/com/zy/asrs/controller/SteController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/param/SteModeParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/SteStateTableVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/ste.html | ●●●●● 补丁 | 查看 | 原始文档 | 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);