From d99be76cce060b7400329ec312bd8e32fac08476 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期六, 03 十二月 2022 11:07:50 +0800
Subject: [PATCH] #
---
src/main/resources/mapper/BasRgvErrMapper.xml | 16
src/main/java/com/zy/asrs/controller/RgvController.java | 336 ++++++++++++++
src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java | 50 ++
src/main/java/com/zy/asrs/service/BasRgvErrService.java | 8
src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java | 12
src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java | 62 ++
src/main/webapp/views/rgv.html | 644 ++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/domain/enums/RgvStatusType.java | 43 +
src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java | 12
src/main/java/com/zy/common/CodeBuilder.java | 2
src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java | 25 +
src/main/webapp/views/index.html | 1
src/main/java/com/zy/asrs/entity/BasRgvErr.java | 127 +++++
src/main/java/com/zy/core/enums/RgvTaskModeType.java | 2
14 files changed, 1,338 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
new file mode 100644
index 0000000..e50d1dc
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -0,0 +1,336 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.ManagerAuth;
+import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.asrs.domain.enums.RgvStatusType;
+import com.zy.asrs.domain.param.RgvOperatorParam;
+import com.zy.asrs.domain.vo.*;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.asrs.utils.VersionUtils;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.RgvModeType;
+import com.zy.core.enums.RgvTaskModeType;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.RgvCommand;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.RgvThread;
+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 java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * RGV鎺ュ彛
+ * Created by vincent on 2020-06-01
+ */
+@Slf4j
+@RestController
+@RequestMapping("/rgv")
+public class RgvController {
+
+ @Autowired
+ private SlaveProperties slaveProperties;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private BasRgvErrMapper basRgvErrMapper;
+ @Autowired
+ private BasRgvService basRgvService;
+ @Autowired
+ private MainServiceImpl mainService;
+ @Autowired
+ private LocMastService locMastService;
+
+ @PostMapping("/table/rgv/state")
+ @ManagerAuth(memo = "RGV淇℃伅琛�")
+ public R rgvStateTable(){
+ List<RgvStateTableVo> list = new ArrayList<>();
+ List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
+ for (BasRgv basRgv : rgvs) {
+ // 琛ㄦ牸琛�
+ RgvStateTableVo vo = new RgvStateTableVo();
+ vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
+ list.add(vo);
+ // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
+ if (rgvThread == null) {
+ continue;
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
+ vo.setStatus(rgvProtocol.getStatusType().desc); // 鐘舵��
+ vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
+ vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
+ vo.setLoading1(rgvProtocol.getLoaded1()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅1鏈夌墿
+ vo.setRgvPos(rgvProtocol.getRgvPos());
+ vo.setWalkPos(rgvProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
+ vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
+ vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
+ vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
+
+ vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
+ if (rgvProtocol.getAlarm() > 0) {
+ BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
+ vo.setAlarm(rgvErr==null?"鏈煡寮傚父":rgvErr.getErrName());
+ }
+ }
+ return R.ok().add(list);
+ }
+
+ @PostMapping("/table/rgv/msg")
+ @ManagerAuth(memo = "RGV鏁版嵁琛�")
+ public R rgvMsgTable(){
+ List<RgvMsgTableVo> list = new ArrayList<>();
+ List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
+ for (BasRgv basRgv : rgvs) {
+ // 琛ㄦ牸琛�
+ RgvMsgTableVo vo = new RgvMsgTableVo();
+ vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
+ list.add(vo);
+ // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Crn, basRgv.getRgvNo());
+ if (rgvThread == null) {
+ continue;
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+
+ vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
+ if (rgvProtocol.getTaskNo1()>0) {
+ WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
+ if (wrkMast != null) {
+ vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
+ vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
+ vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
+ vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
+ vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
+ }
+ } else {
+ vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
+ }
+ vo.setXspeed(rgvProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
+ vo.setXdistance(rgvProtocol.getXDistance()); // 璧拌璺濈(Km)
+ vo.setXduration(rgvProtocol.getXDuration()); // 璧拌鏃堕暱(H)
+ }
+ return R.ok().add(list);
+ }
+
+ @PostMapping("/output/site")
+ @ManagerAuth(memo = "RGV鎶ユ枃鏃ュ織杈撳嚭")
+ public R rgvOutput(){
+ StringBuilder str = new StringBuilder();
+ String s;
+ int i = 0;
+ while((s = OutputQueue.CRN.poll()) != null && i <=10) {
+ str.append("\n").append(s);
+ i++;
+ }
+ return R.ok().add(str.toString());
+ }
+
+ @GetMapping("/demo/status")
+ public R demoStatus(){
+ List<Map<String, Object>> res = new ArrayList<>();
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("rgvNo", rgvSlave.getId());
+ map.put("demo", rgvSlave.getDemo());
+ res.add(map);
+ }
+ return R.ok().add(res);
+ }
+
+ /****************************************************************/
+ /************************** 鎵嬪姩鎿嶄綔 ******************************/
+ /****************************************************************/
+
+ @ManagerAuth(memo = "鍙栨斁璐�")
+ @PostMapping("/operator/put")
+ public R rgvFetchPut(RgvOperatorParam param){
+ RgvCommand command = new RgvCommand();
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+ command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+ command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
+ command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+ command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+ command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "鍙栬揣")
+ @PostMapping("/operator/take")
+ public R rgvFetch(RgvOperatorParam param){
+ RgvCommand command = new RgvCommand();
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
+ command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+ command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
+ command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+ command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+ command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "鏀捐揣")
+ @PostMapping("/operator/stockMove")
+ public R rgvPut(RgvOperatorParam param){
+ RgvCommand command = new RgvCommand();
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
+ command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
+ command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
+ command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
+ command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
+ command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "浠诲姟瀹屾垚")
+ @PostMapping("/operator/taskComplete")
+ public R rgvTaskComplete(RgvOperatorParam param){
+ RgvCommand command = new RgvCommand();
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
+ command.setSourceStaNo1((short) 0); // 婧愮珯
+ command.setDestinationStaNo1((short) 0); // 鐩爣绔�
+ command.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
+ command.setSourceStaNo2((short) 0); // 婧愮珯
+ command.setDestinationStaNo2((short) 0); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "娓呴櫎鍛戒护")
+ @PostMapping("/operator/clearCommand")
+ public R rgvClearCommand(RgvOperatorParam param){
+ if (param.getRgvNo() == null) {
+ throw new CoolException("璇烽�夋嫨RGV鍙�");
+ }
+ RgvCommand command = new RgvCommand();
+ command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
+ command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
+ command.setSourceStaNo1((short) 0); // 婧愮珯
+ command.setDestinationStaNo1((short) 0); // 鐩爣绔�
+ command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
+ command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
+ command.setSourceStaNo2((short) 0); // 婧愮珯
+ command.setDestinationStaNo2((short) 0); // 鐩爣绔�
+ command.setCommand((short) 0);
+
+ return rgvControl(command)?R.ok():R.error();
+ }
+
+ @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
+ @PostMapping("/operator/handleReset")
+ public R handleReset(RgvOperatorParam param) throws Exception {
+ if (param.getRgvNo() == null) {
+ throw new CoolException("璇烽�夋嫨RGV");
+ }
+ // 鑾峰彇RGV缂撳瓨
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ if (param.getRgvNo().equals(rgv.getId())) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ if (rgvThread == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ RgvCommand Command = new RgvCommand();
+ Command.setRgvNo(rgv.getId()); // RGV缂栧彿
+ Command.setTaskMode1(RgvTaskModeType.NONE);
+ Command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
+ Command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ Command.setCommand((short) 0); // 浠诲姟瀹屾垚纭浣�
+ // 寤舵椂鍙戦��
+ Thread.sleep(1000L);
+ if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, Command))) {
+ return R.ok();
+ } else {
+ throw new CoolException("鍛戒护涓嬪彂澶辫触");
+ }
+
+ }
+ }
+ return R.error();
+ }
+
+ private boolean rgvControl(RgvCommand command){
+ if (command.getRgvNo() == null) {
+ throw new CoolException("璇烽�夋嫨RGV");
+ }
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ if (command.getRgvNo().equals(rgv.getId())) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ if (rgvThread == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ throw new CoolException("RGV涓嶅湪绾�");
+ }
+ if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, command))) {
+ return true;
+ } else {
+ throw new CoolException("鍛戒护涓嬪彂澶辫触");
+ }
+ }
+ }
+ return false;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/domain/enums/RgvStatusType.java b/src/main/java/com/zy/asrs/domain/enums/RgvStatusType.java
new file mode 100644
index 0000000..ee4e2ce
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/enums/RgvStatusType.java
@@ -0,0 +1,43 @@
+package com.zy.asrs.domain.enums;
+
+/**
+ * RGV鐘舵�佹灇涓�
+ */
+public enum RgvStatusType {
+
+ // 鍏ュ簱
+ MACHINE_PAKIN("鍏ュ簱"),
+ // 鍑哄簱
+ MACHINE_PAKOUT("鍑哄簱"),
+ // 寮傚父
+ MACHINE_ERROR("寮傚父"),
+ // 鑷姩
+ MACHINE_AUTO("鑷姩"),
+ // 闈炶嚜鍔�/鎵嬪姩
+ MACHINE_UN_AUTO("闈炶嚜鍔�"),
+ ;
+
+ private String desc;
+ RgvStatusType(String desc){
+ this.desc = desc;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static RgvStatusType process(Integer ioType){
+ if (ioType>100) {
+ return MACHINE_PAKOUT;
+ } else if (ioType < 100 && ioType!=3 && ioType!=6 && ioType!=11) {
+ return MACHINE_PAKIN;
+ } else {
+ return MACHINE_ERROR;
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java b/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java
new file mode 100644
index 0000000..3b0881f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/RgvOperatorParam.java
@@ -0,0 +1,25 @@
+package com.zy.asrs.domain.param;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020-06-02
+ */
+@Data
+public class RgvOperatorParam {
+
+ // RGV鍙�
+ private Integer rgvNo;
+
+ // 宸ヤ綅1婧愮珯
+ private Short sourceStaNo1;
+
+ // 宸ヤ綅1鐩爣绔�
+ private Short staNo1;
+
+ // 宸ヤ綅2婧愮珯
+ private Short sourceStaNo2;
+
+ // 宸ヤ綅2鐩爣绔�
+ private Short staNo2;
+}
diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java
new file mode 100644
index 0000000..36c298d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvMsgTableVo.java
@@ -0,0 +1,62 @@
+package com.zy.asrs.domain.vo;
+
+import com.zy.asrs.utils.Utils;
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020-06-02
+ */
+@Data
+public class RgvMsgTableVo {
+
+ // RGV鍙�
+ private Integer rgvNo;
+
+ // 宸ヤ綔鍙�
+ private Short workNo1 = 0;
+
+ // 鐘舵��
+ private String status = "-";
+
+ // 婧愮珯
+ private String sourceStaNo = "-";
+
+ // 鐩爣绔�
+ private String staNo = "-";
+
+ // 婧愬簱浣�
+ private String sourceLocNo = "-";
+
+ // 鐩爣搴撲綅
+ private String locNo = "-";
+
+ // 寮傚父
+ private String error = "";
+
+ // 鍘熺偣
+ private String origin = "";
+
+ // 鍛戒护
+ private String command = "";
+
+ // 璧拌閫熷害锛坢/min)
+ private Float xspeed = 0.0F;
+
+ // 璧拌璺濈(Km)
+ private Float xdistance = 0.0F;
+
+ // 璧拌鏃堕暱(H)
+ private Float xduration = 0.0F;
+
+ public void setXspeed(Float xspeed) {
+ this.xspeed = Utils.scale(xspeed);
+ }
+
+ public void setXdistance(Float xdistance) {
+ this.xdistance = Utils.scale(xdistance);
+ }
+
+ public void setXduration(Float xduration) {
+ this.xduration = Utils.scale(xduration);
+ }
+}
diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
new file mode 100644
index 0000000..6329714
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
@@ -0,0 +1,50 @@
+package com.zy.asrs.domain.vo;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020-06-02
+ */
+@Data
+public class RgvStateTableVo {
+
+ // RGV鍙�
+ private Integer RgvNo;
+
+ // 妯″紡
+ private String statusType = "-";
+
+ // 鐘舵��
+ private String status = "-";
+
+ // 浠诲姟鍙�
+ private Short workNo1 = 0;
+
+ // 鐘舵��
+ private String status1 = "-";
+
+ // 鏈夌墿
+ private String loading1 = "-";
+
+ // RGV浣嶇疆
+ private Short RgvPos = 0;
+
+ // 璧拌瀹氫綅
+ private String walkPos = "-";
+
+ // 浠诲姟鍙�
+ private Short workNo2 = 0;
+
+ // 鐘舵��
+ private String status2 = "-";
+
+ // 鏈夌墿
+ private String loading2 = "-";
+
+ //寮傚父
+ private String warnCode;
+
+ // 寮傚父鐮佹弿杩�
+ private String alarm = "-";
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvErr.java b/src/main/java/com/zy/asrs/entity/BasRgvErr.java
new file mode 100644
index 0000000..d9558ea
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasRgvErr.java
@@ -0,0 +1,127 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.core.common.SpringUtils;
+import com.zy.system.service.UserService;
+import com.zy.system.entity.User;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.core.common.SpringUtils;
+import com.zy.system.service.UserService;
+import com.zy.system.entity.User;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_rgv_err")
+public class BasRgvErr implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 寮傚父鐮�
+ */
+ @ApiModelProperty(value= "寮傚父鐮�")
+ @TableId(value = "error_code", type = IdType.INPUT)
+ @TableField("error_code")
+ private Long errorCode;
+
+ /**
+ * 寮傚父
+ */
+ @ApiModelProperty(value= "寮傚父")
+ @TableField("err_name")
+ private String errName;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("modi_user")
+ private Long modiUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("modi_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date modiTime;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ @TableField("appe_user")
+ private Long appeUser;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("appe_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date appeTime;
+
+ public BasRgvErr() {}
+
+ public BasRgvErr(Long errorCode,String errName,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
+ this.errorCode = errorCode;
+ this.errName = errName;
+ this.modiUser = modiUser;
+ this.modiTime = modiTime;
+ this.appeUser = appeUser;
+ this.appeTime = appeTime;
+ }
+
+// BasRgvErr basRgvErr = new BasRgvErr(
+// null, // 寮傚父鐮乕闈炵┖]
+// null, // 寮傚父
+// null, // 淇敼浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 娣诲姞浜哄憳
+// null // 娣诲姞鏃堕棿
+// );
+
+ public String getModiUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.modiUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public String getModiTime$(){
+ if (Cools.isEmpty(this.modiTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+ }
+
+ public String getAppeUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.appeUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public String getAppeTime$(){
+ if (Cools.isEmpty(this.appeTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java b/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java
new file mode 100644
index 0000000..4b3a44e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasRgvErr;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasRgvErrMapper extends BaseMapper<BasRgvErr> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasRgvErrService.java b/src/main/java/com/zy/asrs/service/BasRgvErrService.java
new file mode 100644
index 0000000..754bb63
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasRgvErrService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasRgvErr;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasRgvErrService extends IService<BasRgvErr> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java
new file mode 100644
index 0000000..dcf62fd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.entity.BasRgvErr;
+import com.zy.asrs.service.BasRgvErrService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basRgvErrService")
+public class BasRgvErrServiceImpl extends ServiceImpl<BasRgvErrMapper, BasRgvErr> implements BasRgvErrService {
+
+}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 4de55a1..d0c963a 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -20,7 +20,7 @@
generator.url="localhost:1433;databasename=xjhsasrs";
generator.username="sa";
generator.password="sa@123";
- generator.table="asr_bas_rgv_opt";
+ generator.table="asr_bas_rgv_err";
generator.packagePath="com.zy.asrs";
generator.controller = false;
diff --git a/src/main/java/com/zy/core/enums/RgvTaskModeType.java b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
index d5975d0..e5d2748 100644
--- a/src/main/java/com/zy/core/enums/RgvTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
@@ -5,7 +5,7 @@
NONE(0), // 鏃�
FETCH(1), // 鍙栬揣
PUT(2), // 鏀捐揣
- FETCH_PUT(3), // 搴撲綅绉昏浆
+ FETCH_PUT(3), // 鍙栨斁璐�
// X_MOVE(4), // 绔欎綅绉昏浆
// Y_MOVE(5), // 绔欎綅绉昏浆
// XY_MOVE(6), // 绔欎綅绉昏浆
diff --git a/src/main/resources/mapper/BasRgvErrMapper.xml b/src/main/resources/mapper/BasRgvErrMapper.xml
new file mode 100644
index 0000000..c3eb284
--- /dev/null
+++ b/src/main/resources/mapper/BasRgvErrMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasRgvErrMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasRgvErr">
+ <result column="error_code" property="errorCode" />
+ <result column="err_name" property="errName" />
+ <result column="modi_user" property="modiUser" />
+ <result column="modi_time" property="modiTime" />
+ <result column="appe_user" property="appeUser" />
+ <result column="appe_time" property="appeTime" />
+
+ </resultMap>
+
+</mapper>
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 2d8640c..0af4762 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -17,6 +17,7 @@
<li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
<li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
<li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
+ <li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">RGV</a></li>
</ul>
</div>
</div>
diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html
new file mode 100644
index 0000000..f5e66e6
--- /dev/null
+++ b/src/main/webapp/views/rgv.html
@@ -0,0 +1,644 @@
+<!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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/crn.css">
+ <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+ <script type="text/javascript" src="../static/js/common.js"></script>
+ <script type="text/javascript" src="../static/js/layer/layer.js"></script>
+ <style>
+ .demoBtn {
+ vertical-align: middle;
+ width: 20%;
+ height: 25px;
+ left: 0;
+ top: 0;
+ text-shadow: inherit;
+ font-size: 15px;
+ margin-left: 5px;
+ margin-right: 5px;
+ display: inline-block;
+ background-color: #FF5722;
+ border: none;
+ color: #FFF;
+ box-shadow: 1px 1px 5px #B6B6B6;
+ border-radius: 3px;
+ cursor: pointer;
+ }
+
+ .demoBtn:hover {
+ opacity: 0.8
+ }
+ .demoBtn:focus {
+ outline: 0;
+ }
+ </style>
+</head>
+<body>
+<div style="padding: 10px;height: 100%;float: left;width: 6%">
+ <div class="button-window"></div>
+</div>
+<div style="height: 100%;padding-left: 6%">
+ <div style="padding: 10px;height: 100%">
+ <!-- 鏃ュ織鐩戞帶鏉� -->
+ <div class="log-board">
+ <!-- 鎵ц鍛戒护 -->
+
+ <!-- 鎵ц鍛戒护 -->
+ <div class="command-log">
+ <h3>鎵ц涓殑鍛戒护</h3>
+ <div class="crn-command-item">
+ <label>1#</label>
+ <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+ <!-- <span> </span>-->
+ <input id="crn1" disabled="disabled">
+ </div>
+ <div class="crn-command-item">
+ <label>2#</label>
+ <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+ <!-- <span> </span>-->
+ <input id="crn2" disabled="disabled">
+ </div>
+ <div class="crn-command-item">
+ <label>3#</label>
+ <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+ <!-- <span> </span>-->
+ <input id="crn3" disabled="disabled">
+ </div>
+ <div class="crn-command-item">
+ <label>4#</label>
+ <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+ <!-- <span> </span>-->
+ <input id="crn4" disabled="disabled">
+ </div>
+ <div class="crn-command-item">
+ <label>5#</label>
+ <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
+ <!-- <span> </span>-->
+ <input id="crn5" disabled="disabled">
+ </div>
+ </div>
+ <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 -->
+ <div class="crn-state">
+ <table id="crn-state-table">
+ <thead>
+ <tr>
+ <th>鍫嗗灈鏈�</th>
+ <th>妯″紡</th>
+ <th>鐘舵��</th>
+ <th>鏈夌墿</th>
+ <th>鍒�</th>
+ <th>灞�</th>
+ <th>璐у弶瀹氫綅</th>
+ <th>杞借揣鍙板畾浣�</th>
+ <th>璧拌鍦ㄥ畾浣�</th>
+ <th>鏁呴殰浠g爜</th>
+ <th>鏁呴殰鎻忚堪</th>
+ </tr>
+ </thead>
+ <tbody>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <!-- 鍫嗗灈鏈虹姸鎬� -->
+ <div class="crn-msg">
+ <table id="crn-msg-table">
+ <thead>
+ <tr>
+ <th>鍫嗗灈鏈�</th>
+ <th>宸ヤ綔鍙�</th>
+ <th>鐘舵��</th>
+ <th>婧愮珯</th>
+ <th>鐩爣绔�</th>
+ <th>婧愬簱浣�</th>
+ <th>鐩爣搴撲綅</th>
+<!-- <th>璧拌閫熷害锛坢/min)</th>-->
+<!-- <th>鍗囬檷閫熷害锛坢/min)</th>-->
+<!-- <th>鍙夌墮閫熷害锛坢/min)</th>-->
+<!-- <th>璧拌璺濈(Km)</th>-->
+<!-- <th>鍗囬檷璺濈(Km)</th>-->
+<!-- <th>璧拌鏃堕暱(H)</th>-->
+<!-- <th>鍗囬檷鏃堕暱(H)</th>-->
+ </tr>
+ </thead>
+ <tbody>
+ </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" style="width: 55%">
+ <span class="select-title">鍫嗗灈鏈哄彿</span>
+ <div class="select-container" style="padding: 20px 0;">
+ <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>
+ </div>
+ </div>
+</div>
+</body>
+<script>
+ // 绌虹櫧琛屾暟
+ var crnStateTableBlankRows = 0;
+ var crnMsgTableBlankRows = 0;
+ // 瀹為檯琛屾暟
+ var crnStateTableFullRows = 0;
+ var crnMsgTableFullRows = 0;
+ // 鍒濆鍖�
+ var crnOutputDom = document.getElementById("crn-output");
+ $(document).ready(function() {
+ getCommandLog();
+ initCrnStateTable();
+ getCrnStateInfo();
+ initCrnMsgTable();
+ getCrnMsgInfo();
+ operatorBlockShow();
+ });
+ // 鏁版嵁鏇存柊
+ setInterval(function () {
+ getCrnStateInfo();
+ getCrnMsgInfo();
+ getCommandLog();
+ },1000);
+ setInterval(function () {
+ getCrnOutput();
+ operatorBlockShow();
+ initDemo();
+ },500);
+
+ // 鍒ゆ柇鎵嬪姩鎿嶄綔妯″潡鏄惁鍙敤
+ function operatorBlockShow() {
+ if (parent.systemRunning) {
+ $('.crn-operation').css("opacity", "0.5");
+ $('.crn-operation-shade').show();
+ $('.crn-operation-shade-span').show();
+ } else {
+ $('.crn-operation').css("opacity", "1");
+ $('.crn-operation-shade').hide();
+ $('.crn-operation-shade-span').hide();
+ }
+ }
+
+ // 鑾峰彇鍫嗗灈鏈烘墽琛屼腑鐨勫懡浠�
+ function getCommandLog() {
+ $.ajax({
+ url: baseUrl + "/crn/command/ongoing",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ var commands = res.data;
+ for (var i=0; i<commands.length;i++){
+ $("#crn"+commands[i].crnNo).val(commands[i].command);
+ }
+ } else if (res.code === 403) {
+ window.location.href = baseUrl + "/login";
+ } else {
+ console.log(res.msg);
+ }
+ }
+ })
+ }
+
+ // 鍫嗗灈鏈轰俊鎭〃鑾峰彇 ---- 琛ㄤ竴
+ function getCrnStateInfo() {
+ var tableEl = $('#crn-state-table');
+ $.ajax({
+ url: baseUrl+ "/crn/table/crn/state",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ var table = res.data;
+ if (table.length > crnStateTableBlankRows && table.length !== crnStateTableFullRows) {
+ initCrnStateTable(table.length-crnStateTableBlankRows);
+ crnStateTableFullRows = table.length;
+ }
+ for (var i=1;i<=table.length;i++){
+ var tr = tableEl.find("tr").eq(i);
+ setVal(tr.children("td").eq(0), table[i-1].crnNo);
+ setVal(tr.children("td").eq(1), table[i-1].statusType);
+ setVal(tr.children("td").eq(2), table[i-1].status);
+ setVal(tr.children("td").eq(3), table[i-1].loading);
+ setVal(tr.children("td").eq(4), table[i-1].bay);
+ setVal(tr.children("td").eq(5), table[i-1].lev);
+ setVal(tr.children("td").eq(6), table[i-1].forkOffset);
+ setVal(tr.children("td").eq(7), table[i-1].liftPos);
+ setVal(tr.children("td").eq(8), table[i-1].walkPos);
+ setVal(tr.children("td").eq(9), table[i-1].warnCode);
+ setVal(tr.children("td").eq(10), table[i-1].alarm);
+ }
+ } else if (res.code === 403){
+ window.location.href = baseUrl+"/login";
+ } else {
+ console.log(res.msg);
+ }
+ }
+ });
+ }
+
+ // 鍫嗗灈鏈烘暟鎹〃鑾峰彇 ---- 琛ㄤ簩
+ function getCrnMsgInfo() {
+ var tableEl = $('#crn-msg-table');
+ $.ajax({
+ url: baseUrl+ "/crn/table/crn/msg",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ var table = res.data;
+ if (table.length > crnStateTableBlankRows && table.length !== crnMsgTableFullRows) {
+ initCrnStateTable(table.length-crnStateTableBlankRows);
+ crnMsgTableFullRows = table.length;
+ }
+ for (var i=1;i<=table.length;i++){
+ var tr = tableEl.find("tr").eq(i);
+ setVal(tr.children("td").eq(0), table[i-1].crnNo);
+ setVal(tr.children("td").eq(1), table[i-1].workNo);
+ setVal(tr.children("td").eq(2), table[i-1].status);
+ setVal(tr.children("td").eq(3), table[i-1].sourceStaNo);
+ setVal(tr.children("td").eq(4), table[i-1].staNo);
+ setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
+ setVal(tr.children("td").eq(6), table[i-1].locNo);
+ // setVal(tr.children("td").eq(7), table[i-1].xspeed);
+ // setVal(tr.children("td").eq(8), table[i-1].yspeed);
+ // setVal(tr.children("td").eq(9), table[i-1].zspeed);
+ // setVal(tr.children("td").eq(10), table[i-1].xdistance);
+ // setVal(tr.children("td").eq(11), table[i-1].ydistance);
+ // setVal(tr.children("td").eq(12), table[i-1].xduration);
+ // setVal(tr.children("td").eq(13), table[i-1].yduration);
+ }
+ } else if (res.code === 403){
+ window.location.href = baseUrl+"/login";
+ } else {
+ console.log(res.msg);
+ }
+ }
+ });
+ }
+
+ // 鍫嗗灈鏈烘墜鍔ㄦ搷浣滃尯 -----------------------------------------------------------------------
+
+ function getReqParam() {
+ var crnNo = $('input[name="crnSelect"]:checked').val();
+ 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
+ };
+ }
+
+ // 鍏ュ簱
+ 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 coorMove() {
+ http.post(baseUrl+"/crn/operator/coorMove", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+ }
+
+ // 鍥炲師鐐�
+ function bacOrigin() {
+ http.post(baseUrl+"/crn/operator/bacOrigin", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+ }
+
+ // 鍥炲師鐐�
+ function reverseOrigin() {
+ http.post(baseUrl+"/crn/operator/reverseOrigin", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+ }
+
+ // 浠诲姟瀹屾垚
+ function taskComplete() {
+ http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+ }
+
+ // 鏆傚仠
+ function pause() {
+ http.post(baseUrl+"/crn/operator/pause", getReqParam(), function (res) {
+ layer.msg(res.msg);
+ });
+ }
+
+ // 鍚姩
+ function boot() {
+ http.post(baseUrl+"/crn/operator/boot", 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 getCrnOutput() {
+ $.ajax({
+ url: baseUrl + "/crn/output/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ console.log(res)
+ if (res.code === 200) {
+ crnOutput(res.data);
+ } else if (res.code === 403) {
+ window.location.href = baseUrl + "/login";
+ } else {
+ console.log(res.msg);
+ }
+ }
+ })
+ }
+
+ // ------------------------------------------------------------------------------------------------
+
+ // 鍫嗗灈鏈轰俊鎭〃鑾峰彇 ----- 琛ㄤ竴
+ function initCrnStateTable(row) {
+ var line;
+ if (row === undefined){
+ var one = $('#crn-state-table thead').height();
+ var total = $('.crn-state').height();
+ var count = total / one;
+ count = parseInt(count) - 1;
+ crnStateTableBlankRows = count;
+ line = count;
+ } else {
+ line = row;
+ }
+ var html = "";
+ for (var i = 0; i < line; i ++){
+ html += " <tr>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " </tr>\n";
+ }
+ $('#crn-state-table tbody').after(html);
+ }
+
+ // 鍫嗗灈鏈烘暟鎹〃鑾峰彇 ----- 琛ㄤ簩
+ function initCrnMsgTable(row) {
+ var line;
+ if (row === undefined){
+ var one = $('#crn-msg-table thead').height();
+ var total = $('.crn-msg').height();
+ var count = total / one;
+ count = parseInt(count) - 1;
+ crnMsgTableBlankRows = count;
+ line = count;
+ } else {
+ line = row;
+ }
+ var html = "";
+ for (var i = 0; i < line; i ++){
+ html += " <tr>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " </tr>\n";
+ }
+ $('#crn-msg-table tbody').after(html);
+ }
+
+ // 鏃ュ織杈撳嚭妗�
+ function crnOutput(content){
+ crnOutputDom.value += content;
+ crnOutputDom.scrollTop = crnOutputDom.scrollHeight;
+ }
+
+
+ var crnDemoData;
+ function initDemo() {
+ $.ajax({
+ url: baseUrl+"/crn/demo/status",
+ async: false,
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200) {
+ crnDemoData = res.data;
+ crnDemoData.forEach(function (e) {
+ $("#demoBtn-"+e.crnNo).html(e.demo?'鍋滄':'婕旂ず');
+ })
+ } else if (res.code === 403){
+ parent.location.href = baseUrl+"/login";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ }
+
+ function demoSwitch(el) {
+ var crnId = el.split("-")[1];
+ var opt;
+ if (crnDemoData == null) {
+ initDemo();
+ }
+ for (var i = 0; i<crnDemoData.length; i++) {
+ if (Number(crnDemoData[i].crnNo) === Number(crnId)) {
+ opt = !crnDemoData[i].demo;
+ }
+ }
+ layer.confirm(crnId + ' 鍙峰爢鍨涙満纭畾'+ (opt?'寮�濮�':'鍋滄') + '婕旂ず鍚楋紵', function(){
+ doDemo(crnId, 'root', opt); // 鍋滄wcs绯荤粺
+ });
+ }
+
+ function doDemo(crnId, password, opt) {
+ // 鍔犺浇tips
+ var index = layer.load(1, {
+ shade: [0.1,'#fff']
+ });
+ $.ajax({
+ url: baseUrl+ "/crn/demo/switch",
+ headers: {'token': localStorage.getItem('token')},
+ // async: false,
+ data: {
+ crnId: Number(crnId),
+ password: password,
+ opt: opt
+ },
+ 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});
+ }
+ }
+ });
+
+ }
+
+</script>
+</html>
--
Gitblit v1.9.1