From 38db3a419d0b794b8a2bab98d2fc15d4bb4c8b31 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 24 五月 2023 08:31:06 +0800
Subject: [PATCH] 堆垛机调试
---
src/main/java/com/zy/asrs/utils/CommandUtils.java | 22 +
src/main/webapp/views/realtimeWatch/crn.html | 91 ---------
src/main/webapp/static/wms/js/crnOperate/crnOperate.js | 114 +++++++++++
src/main/webapp/views/crnOperate/crnOperate.html | 259 +++++++++++++++++++++++++
src/main/java/com/zy/asrs/controller/CrnController.java | 104 ++++++++--
5 files changed, 469 insertions(+), 121 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 183353b..1dbe9c2 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
@@ -12,10 +13,7 @@
import com.zy.asrs.domain.vo.CommandLogVo;
import com.zy.asrs.domain.vo.CrnMsgTableVo;
import com.zy.asrs.domain.vo.CrnStateTableVo;
-import com.zy.asrs.entity.BasCrnError;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
@@ -37,10 +35,7 @@
import com.zy.core.properties.SystemProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -53,7 +48,6 @@
*/
@Slf4j
@RestController
-@RequestMapping("/crn")
public class CrnController {
@Autowired
@@ -71,7 +65,7 @@
@ManagerAuth(memo = "杩涜涓殑鍛戒护")
- @PostMapping("/command/ongoing")
+ @PostMapping("/crn/command/ongoing")
public R ongoingCommand(){
List<CommandLogVo> list = new ArrayList<>();
for (CrnSlave crn : slaveProperties.getCrn()) {
@@ -97,7 +91,7 @@
return R.ok().add(list);
}
- @PostMapping("/table/crn/state")
+ @PostMapping("/crn/table/crn/state")
@ManagerAuth(memo = "鍫嗗灈鏈轰俊鎭〃")
public R crnStateTable(){
List<CrnStateTableVo> list = new ArrayList<>();
@@ -135,7 +129,41 @@
return R.ok().add(list);
}
- @PostMapping("/table/crn/msg")
+ @PostMapping("/crn/table/crn/{id}/state")
+ @ManagerAuth(memo = "鍫嗗灈鏈轰俊鎭〃")
+ public R crnStateTable(@PathVariable("id") Integer id){
+ BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", id).orderBy("crn_no"));
+ // 琛ㄦ牸琛�
+ CrnStateTableVo vo = new CrnStateTableVo();
+ vo.setCrnNo(basCrnp.getCrnNo()); // 鍫嗗灈鏈哄彿
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+ if (crnThread == null) {
+ return R.error();
+ }
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ return R.error();
+ }
+ vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙�
+ vo.setStatusType(crnProtocol.modeType.desc); // 妯″紡鐘舵��
+ vo.setStatus(crnProtocol.getStatusType().desc); // 鐘舵��
+ vo.setLoading((crnProtocol.getLoaded() != null && crnProtocol.getLoaded() == 1) ? "鏈夌墿" : "鏃犵墿"); // 鏈夌墿
+ vo.setBay(crnProtocol.getBay()); // 鍒�
+ vo.setLev(crnProtocol.getLevel()); // 灞�
+
+ vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
+ vo.setLiftPos(crnProtocol.getLiftPosType().desc);
+ vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
+ vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
+ if (crnProtocol.getAlarm1() > 0) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+ vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
+ }
+ return R.ok().add(vo);
+ }
+
+ @PostMapping("/crn/table/crn/msg")
@ManagerAuth(memo = "鍫嗗灈鏈烘暟鎹〃")
public R crnMsgTable(){
List<CrnMsgTableVo> list = new ArrayList<>();
@@ -179,7 +207,7 @@
return R.ok().add(list);
}
- @PostMapping("/output/site")
+ @PostMapping("/crn/output/site")
@ManagerAuth(memo = "鍫嗗灈鏈烘姤鏂囨棩蹇楄緭鍑�")
public R crnOutput(){
StringBuilder str = new StringBuilder();
@@ -193,7 +221,7 @@
}
- @GetMapping("/demo/status")
+ @GetMapping("/crn/demo/status")
public R demoStatus(){
List<Map<String, Object>> res = new ArrayList<>();
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
@@ -206,7 +234,7 @@
}
- @PostMapping("/demo/switch")
+ @PostMapping("/crn/demo/switch")
@ManagerAuth(memo = "鍫嗗灈鏈烘紨绀�")
public R crnDemo(CrnDemoParam param) throws InterruptedException {
if (Cools.isEmpty(param.getCrnId())){
@@ -235,7 +263,7 @@
/****************************************************************/
@ManagerAuth(memo = "鍏ュ簱")
- @PostMapping("/operator/put")
+ @PostMapping("/crn/operator/put")
public R crnPut(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -252,7 +280,7 @@
}
@ManagerAuth(memo = "鍑哄簱")
- @PostMapping("/operator/take")
+ @PostMapping("/crn/operator/take")
public R crnTake(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -269,7 +297,7 @@
}
@ManagerAuth(memo = "搴撲綅杞Щ")
- @PostMapping("/operator/stockMove")
+ @PostMapping("/crn/operator/stockMove")
public R crnStockMove(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -291,7 +319,7 @@
}
@ManagerAuth(memo = "绔欏埌绔�")
- @PostMapping("/operator/siteMove")
+ @PostMapping("/crn/operator/siteMove")
public R crnSiteMove(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -308,7 +336,7 @@
}
@ManagerAuth(memo = "鍥炲師鐐�")
- @PostMapping("/operator/bacOrigin")
+ @PostMapping("/crn/operator/bacOrigin")
public R crnBacOrigin(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -325,7 +353,7 @@
}
@ManagerAuth(memo = "鍙嶅師鐐�")
- @PostMapping("/operator/reverseOrigin")
+ @PostMapping("/crn/operator/reverseOrigin")
public R reverseOrigin(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -360,7 +388,7 @@
// }
@ManagerAuth(memo = "浠诲姟瀹屾垚")
- @PostMapping("/operator/taskComplete")
+ @PostMapping("/crn/operator/taskComplete")
public R crnTaskComplete(CrnOperatorParam param){
CrnCommand command = new CrnCommand();
command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -389,7 +417,7 @@
// }
@ManagerAuth(memo = "娓呴櫎鍛戒护")
- @PostMapping("/operator/clearCommand")
+ @PostMapping("/crn/operator/clearCommand")
public R crnClearCommand(CrnOperatorParam param){
if (param.getCrnNo() == null) {
throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
@@ -409,7 +437,7 @@
}
@ManagerAuth(memo = "鎵嬪姩澶嶄綅")
- @PostMapping("/operator/handleReset")
+ @PostMapping("/crn/operator/handleReset")
public R handleReset(CrnOperatorParam param) throws Exception {
if (param.getCrnNo() == null) {
throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
@@ -501,5 +529,33 @@
}
}
+ // /crn/list/auth
+ @RequestMapping(value = "/crnListQuery/auth")
+ @ManagerAuth
+ public R listQuery(String condition){
+ ArrayList<HashMap<String, Object>> list = new ArrayList<>();
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ if (crnThread == null) {
+ continue;
+ }
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("id", crn.getId());
+ map.put("value", "鍫嗗灈鏈�" + crn.getId() + "鍙�");
+ if (condition != "" && !condition.equals(crn.getId().toString())) {
+ continue;
+ }
+
+ list.add(map);
+ }
+ return R.ok().add(list);
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/utils/CommandUtils.java b/src/main/java/com/zy/asrs/utils/CommandUtils.java
index b483ad2..fae90db 100644
--- a/src/main/java/com/zy/asrs/utils/CommandUtils.java
+++ b/src/main/java/com/zy/asrs/utils/CommandUtils.java
@@ -30,15 +30,19 @@
CommandInfo commandInfo = null;
WrkMast wrkMast = null;
int taskNo = 0;
+ int wmsWrkNo = 0;
switch (type) {
case Crn:
CrnCommand command = (CrnCommand) task.getData();
taskNo = command.getTaskNo();
- wrkMast = wrkMastService.selectById(taskNo);
+ if (taskNo != 0) {
+ wrkMast = wrkMastService.selectById(taskNo);
+ wmsWrkNo = wrkMast.getWmsWrkNo();
+ }
commandInfo = new CommandInfo();
commandInfo.setWrkNo(taskNo);
- commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+ commandInfo.setWmsWrkNo(wmsWrkNo);
commandInfo.setCommandStatus(1);
commandInfo.setStartTime(new Date());
commandInfo.setDevice("crn");
@@ -50,11 +54,14 @@
case Devp:
StaProtocol staProtocol = (StaProtocol) task.getData();
taskNo = staProtocol.getWorkNo();
- wrkMast = wrkMastService.selectById(taskNo);
+ if (taskNo != 0) {
+ wrkMast = wrkMastService.selectById(taskNo);
+ wmsWrkNo = wrkMast.getWmsWrkNo();
+ }
commandInfo = new CommandInfo();
commandInfo.setWrkNo(taskNo);
- commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+ commandInfo.setWmsWrkNo(wmsWrkNo);
commandInfo.setCommandStatus(1);
commandInfo.setStartTime(new Date());
commandInfo.setDevice("devp");
@@ -67,11 +74,14 @@
List<LedCommand> data = (List<LedCommand>) task.getData();
for (LedCommand ledCommand : data) {
taskNo = ledCommand.getWorkNo();
- wrkMast = wrkMastService.selectById(taskNo);
+ if (taskNo != 0) {
+ wrkMast = wrkMastService.selectById(taskNo);
+ wmsWrkNo = wrkMast.getWmsWrkNo();
+ }
commandInfo = new CommandInfo();
commandInfo.setWrkNo(ledCommand.getWorkNo());
- commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+ commandInfo.setWmsWrkNo(wmsWrkNo);
commandInfo.setCommandStatus(1);
commandInfo.setStartTime(new Date());
commandInfo.setDevice("led");
diff --git a/src/main/webapp/static/wms/js/crnOperate/crnOperate.js b/src/main/webapp/static/wms/js/crnOperate/crnOperate.js
new file mode 100644
index 0000000..f931f02
--- /dev/null
+++ b/src/main/webapp/static/wms/js/crnOperate/crnOperate.js
@@ -0,0 +1,114 @@
+var crnNo;
+layui.config({
+ base: baseUrl + "/static/wms/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+
+});
+
+function connectCrn() {
+ var deviceId = $("#deviceId").val()
+ if (deviceId == "") {
+ layer.msg('璇烽�夋嫨鍫嗗灈鏈�');
+ return false;
+ }
+
+ crnNo = deviceId;
+
+ $.ajax({
+ url: baseUrl + "/crn/table/crn/" + crnNo + "/state",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code == 200) {
+ layer.msg('杩炴帴鎴愬姛')
+ console.log(res)
+ let data = res.data
+ $("#__crnNo").val(data.crnNo)
+ $("#statusType").val(data.statusType)
+ $("#status").val(data.status)
+ $("#loading").val(data.loading)
+ $("#__bay").val(data.bay)
+ $("#__lev").val(data.lev)
+ $("#forkOffset").val(data.forkOffset)
+ $("#liftPos").val(data.liftPos)
+ $("#walkPos").val(data.walkPos)
+ $("#warnCode").val(data.warnCode)
+ $("#alarm").val(data.alarm)
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+}
+
+// 鍏ュ簱
+function put() {
+ http.post(baseUrl+"/crn/operator/put", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 鍑哄簱
+function take() {
+ http.post(baseUrl+"/crn/operator/take", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 搴撲綅杞Щ
+function stockMove() {
+ http.post(baseUrl+"/crn/operator/stockMove", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 绔欏埌绔�
+function siteMove() {
+ http.post(baseUrl+"/crn/operator/siteMove", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 浠诲姟瀹屾垚
+function taskComplete() {
+ http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 娓呴櫎鍛戒护
+function clearCommand() {
+ http.post(baseUrl+"/crn/operator/clearCommand", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+// 鎵嬪姩澶嶄綅
+function handleReset() {
+ http.post(baseUrl+"/crn/operator/handleReset", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+}
+
+function getReqParam() {
+ var sourceStaNo = $('#sourceStaNo').val();
+ var sourceRow = $('#sourceRow').val();
+ var sourceBay = $('#sourceBay').val();
+ var sourceLev = $('#sourceLev').val();
+ var staNo = $('#staNo').val();
+ var row = $('#row').val();
+ var bay = $('#bay').val();
+ var lev = $('#lev').val();
+ return {
+ crnNo: crnNo,
+ sourceStaNo: sourceStaNo,
+ sourceRow: sourceRow,
+ sourceBay: sourceBay,
+ sourceLev: sourceLev,
+ staNo: staNo,
+ row: row,
+ bay: bay,
+ lev: lev
+ };
+}
\ No newline at end of file
diff --git a/src/main/webapp/views/crnOperate/crnOperate.html b/src/main/webapp/views/crnOperate/crnOperate.html
new file mode 100644
index 0000000..9996e13
--- /dev/null
+++ b/src/main/webapp/views/crnOperate/crnOperate.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/wms/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 40px;">
+ <div class="layui-form toolbar" id="search-box" style="text-align: center;">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="deviceId" class="layui-input" name="deviceId" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="deviceId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="閫夋嫨鍫嗗灈鏈�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="crnListQueryBydeviceId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="crnListQueryBydeviceIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ <button class="layui-btn" onclick="connectCrn()">纭杩炴帴</button>
+ </div>
+
+ </div>
+ </div>
+
+ <div class="layui-row">
+ <div class="layui-col-md6" style="border-right: 1px red solid">
+ <h3 style="text-align: center;">璁惧璋冭瘯</h3>
+
+ <div class="layui-row" style="margin-top: 30px;">
+ <h4>婧愮珯/婧愬簱浣�</h4>
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>绔�</div>
+ <input class="layui-input" id="sourceStaNo" type="number" name="points" placeholder="绔�" autocomplete="off">
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>鎺�</div>
+ <input class="layui-input" id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1">
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>鍒�</div>
+ <input class="layui-input" id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0">
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>灞�</div>
+ <input class="layui-input" id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1">
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-row" style="margin-top: 30px;">
+ <h4>鐩爣绔�/鐩爣搴撲綅</h4>
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>绔�</div>
+ <input class="layui-input" id="staNo" type="number" name="points" min="0" />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>鎺�</div>
+ <input class="layui-input" id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>鍒�</div>
+ <input class="layui-input" id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline" style="display: flex;justify-content: center;align-items: center;">
+ <div>灞�</div>
+ <input class="layui-input" id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" />
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-row" style="margin-top: 30px;">
+ <div class="layui-col-md12" style="display: flex;justify-content: flex-start;">
+ <button class="layui-btn" onclick="put()">鍏ュ簱</button>
+ <button class="layui-btn" onclick="take()">鍑哄簱</button>
+ <button class="layui-btn" onclick="stockMove()">搴撲綅杞Щ</button>
+ <button class="layui-btn" onclick="siteMove()">绔欏埌绔�</button>
+ <button class="layui-btn" onclick="taskComplete()">浠诲姟瀹屾垚</button>
+ <button class="layui-btn" onclick="clearCommand()">娓呴櫎鍛戒护</button>
+ <button class="layui-btn" onclick="handleReset()">澶嶄綅</button>
+ </div>
+ </div>
+
+ </div>
+
+
+ <div class="layui-col-md6" style="padding-left: 20px;">
+ <h3 style="text-align: center;">璁惧鐘舵��</h3>
+
+ <div class="layui-row" style="margin-top: 30px;">
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鍫嗗灈鏈�</div>
+ <input class="layui-input" id="__crnNo" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>妯″紡</div>
+ <input class="layui-input" id="statusType" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鐘舵��</div>
+ <input class="layui-input" id="status" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鏈夌墿</div>
+ <input class="layui-input" id="loading" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-row" style="margin-top: 20px;">
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鍒�</div>
+ <input class="layui-input" id="__bay" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>灞�</div>
+ <input class="layui-input" id="__lev" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>璐у弶瀹氫綅</div>
+ <input class="layui-input" id="forkOffset" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>杞借揣鍙板畾浣�</div>
+ <input class="layui-input" id="liftPos" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-row" style="margin-top: 20px;">
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>璧拌鍦ㄥ畾浣�</div>
+ <input class="layui-input" id="walkPos" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鏁呴殰浠g爜</div>
+ <input class="layui-input" id="warnCode" type="text" disabled />
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md3">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <div>鏁呴殰鎻忚堪</div>
+ <input class="layui-input" id="alarm" type="text" disabled />
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/wms/js/crnOperate/crnOperate.js" charset="utf-8"></script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/realtimeWatch/crn.html b/src/main/webapp/views/realtimeWatch/crn.html
index 85b17c1..94c3033 100644
--- a/src/main/webapp/views/realtimeWatch/crn.html
+++ b/src/main/webapp/views/realtimeWatch/crn.html
@@ -114,97 +114,6 @@
</tbody>
</table>
</div>
- <!-- 鎵嬪姩鎿嶄綔 -->
- <div class="crn-operation">
-
- <!-- 閬僵灞� -->
- <div class="crn-operation-shade">
- <span class="crn-operation-shade-span">
- WCS 绯荤粺杩愯涓紝璇峰仠姝㈠悗鎿嶄綔
- </span>
- </div>
-
- <!-- 璁惧浠诲姟閫夋嫨 -->
- <div class="task-select">
- <!-- 鍫嗗灈鏈洪�夋嫨 -->
- <div id="crn-select" class="operator-item">
- <span class="select-title">鍫嗗灈鏈哄彿</span>
- <div class="select-container">
- <label><input type="radio" name="crnSelect" value="1" checked> 1鍙峰爢鍨涙満</label>
- <label><input type="radio" name="crnSelect" value="2"> 2鍙峰爢鍨涙満</label>
- <label><input type="radio" name="crnSelect" value="3"> 3鍙峰爢鍨涙満</label>
- <label><input type="radio" name="crnSelect" value="4"> 4鍙峰爢鍨涙満</label>
- <label><input type="radio" name="crnSelect" value="5"> 5鍙峰爢鍨涙満</label>
- </div>
- </div>
- <!-- 婧愮珯/婧愬簱浣� 閫夋嫨 -->
- <div id="source-select" class="operator-item">
- <span class="select-title">婧愮珯/婧愬簱浣�</span>
- <div class="select-container">
- <div class="select-container-item">
- <span>绔�</span>
- <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
- </div>
- <div class="select-container-item">
- <span>鎺�</span>
- <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
- </div>
- <div class="select-container-item">
- <span>鍒�</span>
- <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
- </div>
- <div class="select-container-item">
- <span>灞�</span>
- <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
- </div>
- </div>
- </div>
- <!-- 鐩爣绔�/鐩爣搴撲綅 閫夋嫨 -->
- <div id="target-select" class="operator-item">
- <span class="select-title">鐩爣绔�/鐩爣搴撲綅</span>
- <div class="select-container">
- <div class="select-container-item">
- <span>绔�</span>
- <label><input id="staNo" type="number" name="points" min="0" /></label>
- </div>
- <div class="select-container-item">
- <span>鎺�</span>
- <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
- </div>
- <div class="select-container-item">
- <span>鍒�</span>
- <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
- </div>
- <div class="select-container-item">
- <span>灞�</span>
- <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
- </div>
- </div>
- </div>
- </div>
-
- <!-- 璁惧浠诲姟鎿嶄綔 -->
- <div class="task-operator">
- <fieldset>
- <legend>鎵嬪姩鎿嶄綔</legend>
- <div class="button-group">
- <button class="item" onclick="put()">鍏ュ簱</button>
- <button class="item" onclick="take()">鍑哄簱</button>
- <button class="item" onclick="stockMove()">搴撲綅杞Щ</button>
- <button class="item" onclick="siteMove()">绔欏埌绔�</button>
- <!-- <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
- <!-- <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
- <!-- <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
- <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
- <!-- <button class="item" onclick="pause()">鏆傚仠</button>-->
- <!-- <button class="item" onclick="boot()">鍚姩</button>-->
- <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>
- <button class="item" onclick="handleReset()">澶嶄綅</button>
- </div>
- </fieldset>
- </div>
-
- </div>
<!-- 鍫嗗灈鏈烘棩蹇楄緭鍑� -->
<div class="crn-output-board">
<textarea id="crn-output"></textarea>
--
Gitblit v1.9.1