From af2ebb4ebbcb69f6385947aa322a508464388494 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 25 十一月 2025 09:03:39 +0800
Subject: [PATCH] *
---
src/main/webapp/views/deviceOperate/devpOperate.html | 228 +++++
src/main/java/com/zy/core/enums/RgvModeType.java | 24
src/main/java/com/zy/asrs/controller/RgvController.java | 759 ++++++++++--------
src/main/java/com/zy/common/config/AdminInterceptor.java | 15
src/main/java/com/zy/common/config/WebConfig.java | 12
src/main/java/com/zy/asrs/domain/param/RingThroughParam.java | 17
src/main/webapp/views/deviceOperate/crnOperate.html | 399 +++++++++
src/main/webapp/views/deviceOperate/rgvOperate.html | 212 +++++
src/main/webapp/views/deviceOperate/wcsOperate.html | 678 ++++++++++++++++
9 files changed, 1,985 insertions(+), 359 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 80b35a5..1b5aa62 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,381 +2,444 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
import com.core.common.R;
-import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.RgvStatusType;
-import com.zy.asrs.domain.param.CrnOperatorParam;
-import com.zy.asrs.domain.param.RgvOperatorParam;
-import com.zy.asrs.domain.vo.RgvMsgTableVo;
-import com.zy.asrs.domain.vo.RgvStateTableVo;
-import com.zy.asrs.entity.BasRgv;
-import com.zy.asrs.entity.BasRgvErr;
-import com.zy.asrs.entity.BasRgvMap;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.mapper.BasRgvErrMapper;
-import com.zy.asrs.mapper.BasRgvMapMapper;
-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.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
+import com.zy.asrs.domain.param.RingThroughParam;
+import com.zy.asrs.entity.BasDevpPosition;
+import com.zy.asrs.service.BasDevpPositionService;
+import com.zy.core.cache.RgvErrCache;
+import com.zy.core.cache.RgvStatusCache;
import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.RgvModeType;
-import com.zy.core.enums.RgvTaskModeType;
-import com.zy.core.enums.RgvTaskStatusType;
+import com.zy.core.cache.TaskProtocolCache;
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.model.protocol.TaskProtocol;
import com.zy.core.thread.RgvThread;
-import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-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.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
-import java.util.Objects;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
- * 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;
- @Autowired
- private BasRgvMapMapper basRgvMapMapper;
-// @ManagerAuth(memo = "瑙i攣灏忚溅")
-// @PostMapping("/lock")
-// public R lock(CrnOperatorParam param){
-// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, param.getRgvNo());
-// rgvThread.setPakMk(true);
-// return R.ok();
-// }
-//
-// @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;
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-//
-// vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
-// vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 鐘舵��
-// vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
-// vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
-// vo.setLoading1(rgvProtocol.getLoaded1() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅1鏈夌墿
-// vo.setRgvPos(basRgvMap != null?basRgvMap.getNowRoute():0);
-// vo.setRgvPos1(rgvProtocol.getRgvPosI2());
-// vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
-// vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
-//// vo.setPakIn(rgvThread.isPakIn() ? "鍙叆" : "涓嶅彲鍏�");
-//// vo.setPakOut(rgvThread.isPakOut() ? "鍙嚭" : "涓嶅彲鍑�");
-//// vo.setPakRgv(rgvThread.isPakRgv() ? "鏃犻攣" : "閿佸畾");
-// vo.setPaking(rgvThread.isPaking()? "鏃犻攣" : "閿佸畾");
-//// vo.setPakAll(rgvThread.isPakAll() ? "鏃犻攣" : "閿佸畾");
-//// vo.setPakToCrn(rgvThread.isPakToCrn() ? "鏃犻攣" : "閿佸畾");
-//
-//
-// vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
-//// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
-// vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿
-//
-// // --- 閬嶅巻 errX 瀛楁鐢熸垚 warnCode 鍜� alarm ---
-// List<String> alarms = new ArrayList<>();
-// List<String> warnCodes = new ArrayList<>();
-// Field[] fields = rgvProtocol.getClass().getDeclaredFields();
-// for (Field field : fields) {
-// if (field.getName().startsWith("err") && field.getType().equals(Boolean.class)) {
-// field.setAccessible(true);
-// try {
-// Boolean value = (Boolean) field.get(rgvProtocol);
-// if (Boolean.TRUE.equals(value)) {
-// String numPart = field.getName().substring(3);
-// int errId = Integer.parseInt(numPart);
-// warnCodes.add(String.valueOf(errId));
-//
-// BasRgvErr rgvErr = basRgvErrMapper.selectById(errId);
-// alarms.add(rgvErr == null ? "鏈煡寮傚父(" + errId + ")" : rgvErr.getErrName());
-// }
-// } catch (IllegalAccessException e) {
-// e.printStackTrace();
-// }
-// }
-// }
-//
-// vo.setWarnCode(String.join(",", warnCodes));
-// vo.setAlarm(alarms.isEmpty() ? "" : String.join("锛�", alarms));
-// }
-//
-// return R.ok().add(list);
-// }
+ private BasDevpPositionService basDevpPositionService;
-
-// @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.Rgv, basRgv.getRgvNo());
-// if (rgvThread == null) {
-// continue;
-// }
-// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-// if (rgvProtocol == null) {
-// continue;
-// }
-//
-// vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1宸ヤ綔鍙�
-// vo.setWorkNo2(rgvProtocol.getTaskNo2()); //宸ヤ綅2 宸ヤ綔鍙�
-// vo.setStaNo(String.valueOf(rgvProtocol.getRgvPosDestination())); //灏忚溅鐩爣绔�
-// vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
-//
-// }
-// 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.RGV.poll()) != null && i <=10) {
- str.append("\n").append(s);
- i++;
+ @GetMapping("/status/all")
+// @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+ public R allStatus(){
+ List<Map<String, Object>> res = new ArrayList<>();
+ ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
+ for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+ Map<String, Object> map2 = new HashMap<>();
+ map2.put("rgvNo", rgvProtocol.getRgvNo());
+ map2.put("taskNo", rgvProtocol.getTaskNo());
+ map2.put("mode", rgvProtocol.getModeType().desc);
+ map2.put("status", rgvProtocol.getStatusType().desc);
+ map2.put("rgvPos", rgvProtocol.getRgvPos());
+ map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination());
+ map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿");
+ map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo()));
+ res.add(map2);
}
- return R.ok().add(str.toString());
+ 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(false); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskNo(0); // 宸ヤ綔鍙�
-// command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-//// command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
-// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskNo2(0); // 宸ヤ綔鍙�
-// command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-//// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
-// command.setCommand(true);
-//
-// return rgvControl(command)? R.ok(): R.error();
-// }
+ @PostMapping("/task/cache/all")
+// @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+ public R allTaskCache(@RequestParam(defaultValue = "0") Integer rgvNo){
+ List<Map<String, Object>> res = new ArrayList<>();
+ try{
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ Map<String, Object> map2 = new HashMap<>();
+ map2.put("rgvNo", rgvNo);
+ map2.put("taskNo", taskProtocol.getTaskNo());
+ map2.put("targetPosition", taskProtocol.getTargetPosition());
+ map2.put("isRunning", taskProtocol.getIsRunning());
+ map2.put("taskStatus", taskProtocol.getTaskStatus());
+ map2.put("direction", taskProtocol.isDirection());
+ res.add(map2);
+ }
+ } catch (Exception e){
+// return R.error("寮傚父"+e.getMessage());
+ }
+ return R.ok().add(res);
+ }
-// @ManagerAuth(memo = "鍙栬揣")
-// @PostMapping("/operator/take")
-// public R rgvFetch(RgvOperatorParam param){
-// RgvCommand command = new RgvCommand();
-// command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-// command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅
-// command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
-// command.setTaskStatus(RgvTaskStatusType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
-// command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔�
-//// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
-//// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
-//// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-//// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
-//// command.setTaskNo2( 0); // 宸ヤ綔鍙�
-//// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-//// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
-// command.setCommand(true);
-//
-// return rgvControl(command)? R.ok(): R.error();
-// }
+ @PostMapping("/run/del")//Take Put Walk
+// @ManagerAuth(memo = "娓呯┖浠诲姟")
+ public R rgvRunDel(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
-// @ManagerAuth(memo = "鏀捐揣")
-// @PostMapping("/operator/stockMove")
-// public R rgvPut(RgvOperatorParam param){
-// RgvCommand command = new RgvCommand();
-// command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-// command.setWrkTaskPri(param.getWorkSta()); //鎵ц宸ヤ綅
-// command.setTaskNo(Math.toIntExact(param.getWorkNo())); // 宸ヤ綔鍙�
-// command.setTaskStatus(RgvTaskStatusType.PUT); // 浠诲姟妯″紡: 鍙栬揣
-// command.setTargetPosition(Integer.valueOf(param.getStaNo())); // 鐩爣绔�
-//// command.setAckFinish1(false); // 浠诲姟瀹屾垚纭浣�
-//// command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
-//// command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣�
-//// command.setTaskNo2( 0); // 宸ヤ綔鍙�
-//// command.setTaskMode2(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栨斁璐�
-//// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-//// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
-// command.setCommand(true);
-//
-// return rgvControl(command)? R.ok(): R.error();
-// }
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ }
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鍒犻櫎澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
+ @PostMapping("/run/del2")//Take Put Walk
+// @ManagerAuth(memo = "娓呴櫎浣滀笟鍚姩涓�")
+ public R rgvRunDel2(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ try {
+ rgvThread.setWrkSign();
+ } catch (Exception e) {
+ return R.error("娓呴櫎浣滀笟鍚姩涓け璐�"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
+ @PostMapping("/run/walk")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅琛岃蛋")
+ public R rgvRunWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if ((rgvStaNoPut == null || rgvStaNoPut == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){
+ return R.error("鐩爣绔欑偣璇峰~鍐�");
+ }
+ if (rgvPosDestination == null || rgvPosDestination == 0){
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ rgvPosDestination = basDevpPosition.getPlcPosition();
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issued = new TaskProtocol();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ //鎵ц
+ issued.setTaskNo(Long.valueOf(taskNo));
+ issued.setTaskStatus(1);
+ issued.setTaskNoDirection(issued.gettaskNoDirection$(issued.getTaskNo(), issued.getTaskStatus()));
+ issued.setTargetPosition(rgvPosDestination);
+ issued.setIsRunning(1);
+ issued.setDirection(true);
+
+ taskProtocolCache.updateTaskProtocol(issued);
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/put")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鏀捐揣")
+ public R rgvPutWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
+ return R.error("鐩爣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedPut = new TaskProtocol();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedPut.setTaskNo(Long.valueOf(taskNo));
+ issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+ issuedPut.setTargetPosition(basDevpPosition.getPlcPosition());
+ issuedPut.setIsRunning(1);
+ issuedPut.setDirection(basDevpPosition.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedPut);
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/take")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedTake = new TaskProtocol();
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedTake.setTaskNo(Long.valueOf(taskNo));
+ issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+ issuedTake.setTargetPosition(basDevpPosition.getPlcPosition());
+ issuedTake.setIsRunning(1);
+ issuedTake.setDirection(basDevpPosition.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedTake);
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/TakeAndPut")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvTakeAndPut(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+ }
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
+ return R.error("鏀捐揣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedTake = new TaskProtocol();
+ TaskProtocol issuedPut = new TaskProtocol();
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPositionTake)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedTake.setTaskNo(Long.valueOf(taskNo));
+ issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPositionTake.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPositionTake.getPlcId());
+ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+ issuedTake.setTargetPosition(basDevpPositionTake.getPlcPosition());
+ issuedTake.setIsRunning(1);
+ issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1);
+
+ BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPositionPut)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedPut.setTaskNo(Long.valueOf(taskNo));
+ issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPositionPut.getDevNo());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPositionPut.getPlcId());
+ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+ issuedPut.setTargetPosition(basDevpPositionPut.getPlcPosition());
+ issuedPut.setIsRunning(1);
+ issuedPut.setDirection(basDevpPositionPut.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedTake);
+ taskProtocolCache.updateTaskProtocol(issuedPut);
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/delRgvTask")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvDelRgvTask(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+
+ try {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ rgvThread.setDelRgvTask();
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
-// @ManagerAuth(memo = "浠诲姟瀹屾垚")
-// @PostMapping("/operator/taskComplete")
-// public R rgvTaskComplete(RgvOperatorParam param){
-// RgvCommand command = new RgvCommand();
-// command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
-// command.setAckFinish1(true); // 浠诲姟瀹屾垚纭浣�
-//// command.setTaskNo1(0); // 宸ヤ綔鍙�
-// command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
-// command.setSourceStaNo1((short) 0); // 婧愮珯
-// command.setDestinationStaNo1((short) 0); // 鐩爣绔�
-// command.setAckFinish2(true); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskNo2( 0); // 宸ヤ綔鍙�
-// command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
-// command.setSourceStaNo2((short) 0); // 婧愮珯
-// command.setDestinationStaNo2((short) 0); // 鐩爣绔�
-// command.setCommand(true);
-//
-// return rgvControl(command)? R.ok(): R.error();
-// }
+ @PostMapping("/ring/through/rgv/position/data")
+// @ManagerAuth(memo = "灏忚溅浣嶇疆淇℃伅")
+ public R ringThroughRgv(){
+ List<RingThroughParam> result = new ArrayList<>();
-// @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.setWrkTaskPri(0); //鎵ц宸ヤ綅
-// command.setTaskNo(Math.toIntExact(0)); // 宸ヤ綔鍙�
-// command.setTaskStatus((short)0); // 浠诲姟妯″紡: 鍙栬揣
-// command.setTargetPosition(0); // 鐩爣绔�
-//
-// return rgvClear(command)? R.ok(): R.error();
-// }
+ ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
+ for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+ RingThroughParam ringThroughParam = new RingThroughParam();
-// @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(true); // 浠诲姟瀹屾垚纭浣�
-// Command.setAckFinish2(true); // 浠诲姟瀹屾垚纭浣�
-// Command.setCommand(true); // 浠诲姟瀹屾垚纭浣�
-// // 寤舵椂鍙戦��
-// Thread.sleep(1000L);
-// if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, 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;
-// }
-//
-// private boolean rgvClear(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(3, command))) {
-// return true;
-// } else {
-// throw new CoolException("鍛戒护涓嬪彂澶辫触");
-// }
-// }
-// }
-// return false;
-//
-// }
+ ringThroughParam.setIndex(rgvProtocol.getRgvNo());
+// ringThroughParam.setIndex(i);
+// double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
+// double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
+// double[] doubles = Utils.getRgvPosNew(perimeter, rgvProtocol.RgvPos.doubleValue());
+// double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
-}
\ No newline at end of file
+ ringThroughParam.setValueX(rgvProtocol.getRgvNo()*100*1D);
+ ringThroughParam.setValueY(rgvProtocol.getRgvNo()*100*2D);
+ ringThroughParam.setModeColor(rgvProtocol.modeType.color);
+ ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/dev/position/data")
+// @ManagerAuth(memo = "绔欑偣淇℃伅")
+ // 绔欑偣浣嶇疆淇℃伅
+ public R ringThroughDev(){
+ List<RingThroughParam> result = new ArrayList<>();
+ ArrayList<Integer> arrayList = new ArrayList<Integer>() {{
+ add(1001);
+ add(1002);
+ add(1003);
+ add(1004);
+ add(1005);
+ add(1006);
+ add(1007);
+ add(1008);
+ add(1009);
+ add(1010);
+ add(1011);
+ add(1012);
+ add(1013);
+ add(1014);
+ add(1015);
+ add(1016);
+ add(1017);
+ add(1018);
+ add(1019);
+ add(1020);
+ add(1021);
+ add(1022);
+ add(1023);
+ }};
+ for (Integer staNo : arrayList){
+ RingThroughParam ringThroughParam = new RingThroughParam();
+ ringThroughParam.setIndex(staNo);
+// double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
+// ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
+// ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
+// double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),perimeter, basDevpPosition.getPlcPosition());
+ ringThroughParam.setValueX(staNo*100*1D);
+ ringThroughParam.setValueY(staNo*100*2D);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/track/position/data")
+// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
+ public R wnergyGatheringRingParamTrack(){
+ return R.ok();
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMast(){
+ return R.ok();
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMastV1(){
+ return R.ok();
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttle(){
+ return R.ok();
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttleV1(){
+ return R.ok();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java b/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
new file mode 100644
index 0000000..f920c86
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/param/RingThroughParam.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.domain.param;
+
+import lombok.Data;
+
+@Data
+public class RingThroughParam {
+ // RGV鍙�
+ private Integer index;
+
+ private Double valueX;
+
+ private Double valueY;
+
+ private String modeColor;
+
+ private String statusColor;
+}
diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java
index 04ca10f..70355df 100644
--- a/src/main/java/com/zy/common/config/AdminInterceptor.java
+++ b/src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -43,6 +43,21 @@
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ System.out.println("=== 鎷︽埅鍣ㄦ敹鍒拌姹� ===");
+ System.out.println("鏂规硶: " + request.getMethod());
+ System.out.println("URI: " + request.getRequestURI());
+
+ // 鍏抽敭淇锛氬繀椤绘斁琛� OPTIONS 棰勬璇锋眰
+ if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
+ System.out.println("鉁� 鏀捐 OPTIONS 棰勬璇锋眰");
+ // 鎵嬪姩璁剧疆 CORS 澶�
+ response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8080");
+ response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
+ response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Token, token");
+ response.setHeader("Access-Control-Allow-Credentials", "true");
+ response.setStatus(HttpServletResponse.SC_OK);
+ return false; // OPTIONS 璇锋眰涓嶉渶瑕佺户缁悗缁鐞�
+ }
cors(response);
if (handler instanceof org.springframework.web.servlet.resource.ResourceHttpRequestHandler) {
return true;
diff --git a/src/main/java/com/zy/common/config/WebConfig.java b/src/main/java/com/zy/common/config/WebConfig.java
index 11bb6b2..45cf5e3 100644
--- a/src/main/java/com/zy/common/config/WebConfig.java
+++ b/src/main/java/com/zy/common/config/WebConfig.java
@@ -2,6 +2,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -20,5 +21,16 @@
.addPathPatterns("/**")
;
}
+// .excludePathPatterns("/rgv/**");
+
+// @Override
+// public void addCorsMappings(CorsRegistry registry) {
+// registry.addMapping("/**") // 瀵规墍鏈夋帴鍙g敓鏁�
+// .allowedOrigins("http://127.0.0.1:8080") // 鍏抽敭锛氭寚瀹氭偍鐨勫墠鍦板潃
+// .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 鍏佽鐨勮姹傛柟娉�
+// .allowedHeaders("*") // 鍏佽鎵�鏈夎姹傚ご
+// .allowCredentials(true) // 鑻ュ墠绔姹傞渶瑕佹惡甯ookie绛夎璇佷俊鎭紝姝ら」璁句负true
+// .maxAge(3600); // 棰勬璇锋眰鐨勭紦瀛樻椂闂达紙绉掞級
+// }
}
diff --git a/src/main/java/com/zy/core/enums/RgvModeType.java b/src/main/java/com/zy/core/enums/RgvModeType.java
index 139d63d..7682be5 100644
--- a/src/main/java/com/zy/core/enums/RgvModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvModeType.java
@@ -2,42 +2,44 @@
public enum RgvModeType {
- NONE(-1, "绂荤嚎"),
- STOP(0, "鍏虫満"),
- HAND(1, "鎵嬪姩"),
-// HALF_AUTO(2, "鍗婅嚜鍔�"),
- AUTO(2, "鑷姩"),
- AUTO2(100, "鍏跺畠"),
+ NONE(-1, "绂荤嚎","ffffff"),
+ STOP(2, "缁翠慨","ffffff"),
+ HAND(0, "鎵嬪姩","ffffff"),
+ HALF_AUTO(3, "鍗婅嚜鍔�","ffffff"),
+ AUTO(1, "鑷姩","ffffff"),
+ OTHER(100, "鍏跺畠","ffffff"),
;
public Integer id;
public String desc;
- RgvModeType(Integer id, String desc) {
+ public String color;
+ RgvModeType(Integer id, String desc, String color) {
this.id = id;
this.desc = desc;
+ this.color = color;
}
public static RgvModeType get(Short id) {
if (null == id) {
- return null;
+ return OTHER;
}
for (RgvModeType type : RgvModeType.values()) {
if (type.id.equals(id.intValue())) {
return type;
}
}
- return null;
+ return OTHER;
}
public static RgvModeType get(RgvModeType type) {
if (null == type) {
- return null;
+ return OTHER;
}
for (RgvModeType rgvModeType : RgvModeType.values()) {
if (rgvModeType == type) {
return rgvModeType;
}
}
- return null;
+ return OTHER;
}
}
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
new file mode 100644
index 0000000..abcc195
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -0,0 +1,399 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>鍫嗗灈鏈鸿澶�</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.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/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+</head>
+
+<body>
+ <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+ <div style="width: 100%;">
+ <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
+ max-height="350" style="width: 100%">
+ <el-table-column property="crnNo" label="鍫嗗灈鏈�">
+ </el-table-column>
+ <el-table-column property="laneNo" label="宸烽亾鍙�">
+ </el-table-column>
+ <el-table-column property="workNo" label="宸ヤ綔鍙�">
+ </el-table-column>
+ <el-table-column property="statusType" label="妯″紡">
+ </el-table-column>
+ <el-table-column property="wrkStatus$" label="浠诲姟鐘舵��">
+ </el-table-column>
+ <el-table-column property="deviceStatus" label="璁惧鐘舵��">
+ </el-table-column>
+ <el-table-column property="taskComplete" label="浠诲姟瀹屾垚鎸囦护">
+ </el-table-column>
+ <el-table-column property="errorCrn" label="寮傚父鎻愮ず">
+ </el-table-column>
+ <el-table-column property="demo" label="婕旂ず">
+ </el-table-column>
+ <el-table-column property="demoValue$" label="婕旂ず鐘舵��">
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
+ <div style="width: 55%;margin-right: 10px;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧璋冭瘯</span>
+ </div>
+ <div>
+ <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+<!-- <el-form-item label="婧愮珯/婧愬簱浣�">-->
+<!-- <el-input v-model="formParam.sourceStaNo" placeholder="婧愮珯/婧愬簱浣�"></el-input>-->
+<!-- </el-form-item>-->
+ <el-form-item label="鎺�">
+ <el-input v-model="formParam.sourceRow" placeholder="鎺�"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒�">
+ <el-input v-model="formParam.sourceBay" placeholder="鍒�"></el-input>
+ </el-form-item>
+ <el-form-item label="灞�">
+ <el-input v-model="formParam.sourceLev" placeholder="灞�"></el-input>
+ </el-form-item>
+ </el-form>
+ <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+<!-- <el-form-item label="鐩爣绔�/鐩爣搴撲綅">-->
+<!-- <el-input v-model="formParam.staNo" placeholder="鐩爣绔�/鐩爣搴撲綅"></el-input>-->
+<!-- </el-form-item>-->
+ <el-form-item label="鎺�">
+ <el-input v-model="formParam.row" placeholder="鎺�"></el-input>
+ </el-form-item>
+ <el-form-item label="鍒�">
+ <el-input v-model="formParam.bay" placeholder="鍒�"></el-input>
+ </el-form-item>
+ <el-form-item label="灞�">
+ <el-input v-model="formParam.lev" placeholder="灞�"></el-input>
+ </el-form-item>
+ </el-form>
+ <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+ <el-form-item label="娴嬭瘯搴撲綅鏁伴噺">
+ <el-input v-model="formParam.locMastDemoCount" placeholder="娴嬭瘯搴撲綅鏁伴噺"></el-input>
+ </el-form-item>
+ <el-form-item label="鍘熷鍑哄簱搴撲綅">
+ <el-input v-model="formParam.locMastDemoF" placeholder="鍘熷鏈夌墿搴撲綅"></el-input>
+ </el-form-item>
+ <el-form-item label="鍘熷绌哄簱浣�">
+ <el-input v-model="formParam.locMastDemoE" placeholder="鍘熷鏈夌墿搴撲綅"></el-input>
+ </el-form-item>
+ <el-form-item label="鍫嗗灈鏈烘斁璐х珯鐐�">
+ <el-input v-model="formParam.staOutDemo" placeholder="鍫嗗灈鏈烘斁璐х珯鐐�"></el-input>
+ </el-form-item>
+ <el-form-item label="鍫嗗灈鏈哄彇璐х珯鐐�">
+ <el-input v-model="formParam.staIntDemo" placeholder="鍫嗗灈鏈哄彇璐х珯鐐�"></el-input>
+ </el-form-item>
+ </el-form>
+ <el-form label-position="top" :inline="true" class="demo-form-inline">
+ <el-form-item label="">
+ <el-checkbox @change="updateEnableInOut('in')" v-model="enableIn">鍙叆</el-checkbox>
+ </el-form-item>
+ <el-form-item label="">
+ <el-checkbox @change="updateEnableInOut('out')" v-model="enableOut">鍙嚭</el-checkbox>
+ </el-form-item>
+ <el-form-item label="">
+ <el-checkbox @change="updateDemo('demo')" v-model="hpMkDemo">婕旂ず</el-checkbox>
+ </el-form-item>
+ </el-form>
+ <div>
+<!-- <el-button @click="requestOperate('put')" type="primary">鍏ュ簱</el-button>-->
+<!-- <el-button @click="requestOperate('take')" type="primary">鍑哄簱</el-button>-->
+ <el-button @click="requestOperate('stockMove')" type="primary">搴撲綅杞Щ</el-button>
+
+ <div style="margin-top: 10px">
+ <el-button @click="requestOperate('taskComplete')" type="primary">浠诲姟瀹屾垚</el-button>
+ <el-button @click="requestOperate('taskCompleteClearCommand')" type="primary">浠诲姟瀹屾垚鎸囦护娓呴櫎</el-button>
+ </div>
+<!-- <el-button @click="requestOperate('siteMove')" type="primary">绔欏埌绔�</el-button>-->
+<!-- <el-button @click="requestOperate('clearCommand')" type="primary">娓呴櫎鍛戒护</el-button>-->
+<!-- <el-button @click="requestOperate('reset')" type="primary">澶嶄綅</el-button>-->
+ <br/>
+ <br/>
+<!-- <el-button @click="requestOperate('auto')" type="warning">鑱旀満</el-button>-->
+<!-- <el-button @click="requestOperate('semiAutomatic')" type="warning">鍗婅嚜鍔�</el-button>-->
+<!-- <el-button @click="requestOperate('hand')" type="warning">鎵嬪姩</el-button>-->
+<!-- <el-button @click="requestOperate('onlineWrk4')" type="warning">鎭㈠鑱旀満浠诲姟</el-button>-->
+<!-- <el-button @click="requestOperate('onlineWrk3')" type="warning">娓呴櫎鑱旀満浠诲姟</el-button>-->
+<!-- <el-button @click="requestOperate('onlineWrk1')" type="warning">鐢宠瀹屾垚浠诲姟</el-button>-->
+ <br/>
+ <br/>
+<!-- <el-button @click="requestOperate('onlineWrk2')" type="warning">鐢宠鍙栨秷浠诲姟</el-button>-->
+ </div>
+ </div>
+ </el-card>
+ </div>
+ <div style="width: 45%;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧鐘舵��</span>
+ </div>
+ <div>
+ <div v-if="currentIndex == null">
+ <el-empty description="璇烽�夋嫨璁惧"></el-empty>
+ </div>
+ <div v-else>
+ <el-descriptions :title="currentTitle" direction="vertical" :column="4" border>
+ <el-descriptions-item label="鍫嗗灈鏈�">{{ tableData[currentIndex].crnNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="宸ヤ綔鍙�">
+ {{ tableData[currentIndex].workNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="妯″紡">
+ <el-tag>{{ tableData[currentIndex].statusType }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="浠诲姟鐘舵��">
+ <div v-if="tableData[currentIndex].wrkStatus == 0">
+ <el-tag>{{ tableData[currentIndex].wrkStatus$ }}</el-tag>
+ </div>
+ <div v-else>
+ <el-tag type="success">{{ tableData[currentIndex].wrkStatus$ }}</el-tag>
+ </div>
+ </el-descriptions-item>
+ <el-descriptions-item label="璁惧鐘舵��">
+ <el-tag>{{ tableData[currentIndex].deviceStatus }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鏈夌墿">
+ <el-tag>{{ tableData[currentIndex].loading }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鍒�">{{ tableData[currentIndex].bay }}
+ </el-descriptions-item>
+ <el-descriptions-item label="灞�">{{ tableData[currentIndex].lev }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鏁呴殰浠g爜">{{ tableData[currentIndex].warnCode }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鏁呴殰鎻忚堪">{{ tableData[currentIndex].lev }}
+ </el-descriptions-item>
+ <el-descriptions-item label="婧愮珯">{{ tableData[currentIndex].sourceStaNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鐩爣绔�">{{ tableData[currentIndex].staNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="婧愬簱浣�">{{ tableData[currentIndex].sourceLocNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鐩爣搴撲綅">{{ tableData[currentIndex].locNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="璐у弶瀹氫綅">{{ tableData[currentIndex].forkOffset }}
+ </el-descriptions-item>
+ <el-descriptions-item label="杞借揣鍙板畾浣�">{{ tableData[currentIndex].liftPos }}
+ </el-descriptions-item>
+ <el-descriptions-item label="璧拌鍦ㄥ畾浣�">{{ tableData[currentIndex].walkPos }}
+ </el-descriptions-item>
+ <el-descriptions-item label="璧拌閫熷害(m/min)">{{ tableData[currentIndex].xspeed }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍗囬檷閫熷害(m/min)">{{ tableData[currentIndex].yspeed }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍙夌墮閫熷害(m/min)">{{ tableData[currentIndex].zspeed }}
+ </el-descriptions-item>
+ <el-descriptions-item label="璧拌璺濈(Km)">{{ tableData[currentIndex].xdistance }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍗囬檷璺濈(Km)">{{ tableData[currentIndex].ydistance }}
+ </el-descriptions-item>
+ <el-descriptions-item label="璧拌鏃堕暱(H)">{{ tableData[currentIndex].xduration }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍗囬檷鏃堕暱(H)">{{ tableData[currentIndex].yduration }}
+ </el-descriptions-item>
+ <el-descriptions-item label="寮傚父鎻愮ず">{{ tableData[currentIndex].errorCrn }}
+ </el-descriptions-item>
+ </el-descriptions>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </div>
+ </div>
+ <script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ currentRow: null,
+ currentTitle: "鏈�夋嫨璁惧",
+ currentIndex: null,
+ formParam: {
+ crnNo: null,
+ sourceStaNo: null,
+ sourceRow: 1,
+ sourceBay: 0,
+ sourceLev: 1,
+ staNo: null,
+ locMastDemoCount: 3,
+ locMastDemoF: null,
+ locMastDemoE: null,
+ staOutDemo: null,
+ staIntDemo: null,
+ row: 1,
+ bay: 0,
+ lev: 1
+ },
+ enableIn: false,
+ enableOut: false,
+ hpMkDemo: false
+ },
+ created() {
+ this.init()
+ },
+ watch: {
+
+ },
+ methods: {
+ init() {
+ this.getTableData()
+
+ setInterval(() => {
+ this.getTableData()
+ }, 1000)
+ },
+ handleRowClick(row, col, event) {
+ const index = this.tableData.indexOf(row)
+ this.currentRow = row;
+ this.currentIndex = index
+ this.currentTitle = row.crnNo + "鍙峰爢鍨涙満"
+ this.formParam.crnNo = row.crnNo
+ this.enableIn = row.inEnable == "Y" ? true : false
+ this.enableOut = row.outEnable == "Y" ? true : false
+ this.hpMkDemo = row.hpMk == "Y" ? true : false
+ },
+ getTableData() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/crn/list/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function (res) {
+ that.tableData = res.data
+ }
+ });
+ },
+ requestOperate(method) {
+ let that = this
+ that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(()=>{
+ $.ajax({
+ url: baseUrl + "/crn/operator/" + method,
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: this.formParam,
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: 'success'
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ })
+
+ },
+ updateEnableInOut(type) {
+ let that = this
+ let param = {}
+ if (type == "in") {
+ param = {
+ inEnable: this.enableIn ? "Y" : "N",
+ crnNo: this.formParam.crnNo
+ }
+ } else {
+ param = {
+ outEnable: this.enableOut ? "Y" : "N",
+ crnNo: this.formParam.crnNo
+ }
+ }
+
+ $.ajax({
+ url: baseUrl + "/basCrnp/update/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: param,
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: 'success'
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ },
+ updateDemo(type) {
+ let that = this
+ let param = {}
+ that.$confirm('灏嗗惎鍔ㄦ紨绀烘ā寮忥紝鏄惁缁х画','鎻愮ず',{
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(()=>{
+ if (type == "demo") {
+ param = {
+ hpMk: this.hpMkDemo ? "Y" : "N",
+ staOutDemo: this.formParam.staOutDemo,
+ staIntDemo: this.formParam.staIntDemo,
+ locMastDemoF: this.formParam.locMastDemoF,
+ locMastDemoE: this.formParam.locMastDemoE,
+ locMastDemoCount: this.formParam.locMastDemoCount,
+ crnNo: this.formParam.crnNo
+ }
+ } else {
+ param = {
+ crnNo: this.formParam.crnNo
+ }
+ }
+
+
+ $.ajax({
+ url: baseUrl + "/basCrnp/update/demo/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: param,
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: 'success'
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ })
+ }
+ }
+ })
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/deviceOperate/devpOperate.html b/src/main/webapp/views/deviceOperate/devpOperate.html
new file mode 100644
index 0000000..fee7b07
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/devpOperate.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>杈撻�佺珯鐐硅澶�</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.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/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+</head>
+
+<body>
+ <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+ <div style="width: 100%;">
+ <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
+ max-height="450" style="width: 100%">
+ <el-table-column property="devNo" label="绔欏彿">
+ </el-table-column>
+ <el-table-column property="workNo" label="宸ヤ綔鍙�">
+ </el-table-column>
+<!-- <el-table-column property="locType1" label="楂樹綆搴撲綅">-->
+<!-- </el-table-column>-->
+ <el-table-column property="pakMk" label="鍏ュ簱鏍囪">
+ </el-table-column>
+ <el-table-column property="pakMkRun" label="閫�鍥炴爣璁�">
+ </el-table-column>
+ <el-table-column property="pakMkTask" label="灏忚溅浠诲姟涓嬪彂鏍囪">
+ </el-table-column>
+ <el-table-column property="weight" label="绉伴噸">
+ </el-table-column>
+ <el-table-column property="barcode" label="鏉$爜">
+ </el-table-column>
+ <el-table-column property="errorDev" label="寮傚父鎻愮ず">
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
+ <div style="width: 55%;margin-right: 10px;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧璋冭瘯</span>
+ </div>
+ <div>
+ <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+ <el-form-item label="宸ヤ綔鍙�">
+ <el-input v-model="formParam.workNo" placeholder="宸ヤ綔鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="鐩爣绔�">
+ <el-input v-model="formParam.staNo" placeholder="鐩爣绔�"></el-input>
+ </el-form-item>
+ </el-form>
+ <el-form label-position="top" :inline="true" class="demo-form-inline">
+ <el-form-item label="">
+ <el-checkbox v-model="formParam.inEnable">鍙叆</el-checkbox>
+ </el-form-item>
+ <el-form-item label="">
+ <el-checkbox v-model="formParam.outEnable">鍙嚭</el-checkbox>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button @click="requestOperate('update')" type="primary">鏇存柊绔欑偣淇℃伅</el-button>
+<!-- <el-button @click="requestOperate('in')" type="warning">鏀捐揣瀹屾垚</el-button>-->
+ </div>
+ <div style="margin-top: 10px">
+ <el-button @click="requestOperate('pakMk')" type="warning">鍏ュ簱鏍囪澶嶄綅</el-button>
+ <el-button @click="requestOperate('pakMkRun')" type="warning">閫�搴撴爣璁板浣�</el-button>
+ <el-button @click="requestOperate('pakMkTask')" type="warning">灏忚溅浠诲姟涓嬪彂鏍囪澶嶄綅</el-button>
+ <el-button @click="requestOperate('pakMkWalk')" type="warning">WMS浠诲姟涓嬪彂鏍囪澶嶄綅</el-button>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ <div style="width: 45%;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧鐘舵��</span>
+ </div>
+ <div>
+ <div v-if="currentIndex == null">
+ <el-empty description="璇烽�夋嫨璁惧"></el-empty>
+ </div>
+ <div v-else>
+ <el-descriptions :title="currentTitle" direction="vertical" :column="4" border>
+ <el-descriptions-item label="绔欑偣">{{ tableData[currentIndex].devNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="宸ヤ綔鍙�">
+ {{ tableData[currentIndex].workNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鑷姩">
+ <el-tag>{{ tableData[currentIndex].autoing }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鏈夌墿">
+ <el-tag>{{ tableData[currentIndex].loading }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鍙叆">
+ <el-tag>{{ tableData[currentIndex].inEnable }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鍙嚭">
+ <el-tag>{{ tableData[currentIndex].outEnable }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="绌烘澘淇″彿">
+ <el-tag>{{ tableData[currentIndex].emptyMk }}</el-tag>
+ </el-descriptions-item>
+ <el-descriptions-item label="鐩爣绔�">{{ tableData[currentIndex].staNo }}
+ </el-descriptions-item>
+ <el-descriptions-item label="楂樹綆搴撲綅">{{ tableData[currentIndex].locType1 }}
+ </el-descriptions-item>
+ <el-descriptions-item label="閲嶉噺">{{ tableData[currentIndex].weight }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鏉$爜">{{ tableData[currentIndex].barcode }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍏ュ簱鏍囪">{{ tableData[currentIndex].pakMk }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍏ュ簱鍥為��鏍囪">{{ tableData[currentIndex].pakMkRun }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍏ュ簱灏忚溅浠诲姟涓嬪彂鏍囪">{{ tableData[currentIndex].pakMkTask }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鍏ュ簱wms浠诲姟涓嬪彂鏍囪">{{ tableData[currentIndex].pakMkWalk }}
+ </el-descriptions-item>
+ <el-descriptions-item label="寮傚父鎻愮ず">{{ tableData[currentIndex].errorDev }}
+ </el-descriptions-item>
+ </el-descriptions>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </div>
+ </div>
+ <script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ currentRow: null,
+ currentTitle: "鏈�夋嫨璁惧",
+ currentIndex: null,
+ formParam: {
+ devNo: null,
+ workNo: null,
+ staNo: null,
+ pakMk: null,
+ inEnable: false,
+ outEnable: false
+ }
+ },
+ created() {
+ this.init()
+ },
+ watch: {
+
+ },
+ methods: {
+ init() {
+ this.getTableData()
+
+ setInterval(() => {
+ this.getTableData()
+ }, 1000)
+ },
+ handleRowClick(row, col, event) {
+ const index = this.tableData.indexOf(row)
+ this.currentRow = row;
+ this.currentIndex = index
+ this.currentTitle = row.devNo + "绔欑偣"
+
+ this.formParam.devNo = row.devNo
+ this.formParam.workNo = row.workNo
+ this.formParam.staNo = row.staNo
+ this.formParam.pakMk = row.pakMk
+ this.formParam.inEnable = row.inEnable == "Y" ? true : false
+ this.formParam.outEnable = row.outEnable == "Y" ? true : false
+ },
+ getTableData() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/site/list/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function (res) {
+ that.tableData = res.data
+ }
+ });
+ },
+ requestOperate(method) {
+ let that = this
+ that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(()=>{
+ $.ajax({
+ url: baseUrl + "/site/detl/"+method,
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: this.formParam,
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: 'success'
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ })
+
+ }
+ }
+ })
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/deviceOperate/rgvOperate.html b/src/main/webapp/views/deviceOperate/rgvOperate.html
new file mode 100644
index 0000000..314d8a5
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>杈撻�佺珯鐐硅澶�</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.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/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+</head>
+
+<body>
+ <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+ <div style="width: 100%;">
+ <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
+ max-height="450" style="width: 100%">
+ <el-table-column property="rgvNo" label="灏忚溅鍙�">
+ </el-table-column>
+ <el-table-column property="taskNo" label="宸ヤ綔鍙�">
+ </el-table-column>
+ <el-table-column property="mode" label="浣滀笟妯″紡">
+ </el-table-column>
+ <el-table-column property="status" label="鐘舵��">
+ </el-table-column>
+ <el-table-column property="rgvPos" label="褰撳墠瀹氫綅鍊�">
+ </el-table-column>
+ <el-table-column property="rgvPosDestination" label="鐩爣瀹氫綅缃�">
+ </el-table-column>
+ <el-table-column property="loaded" label="鎺㈢墿">
+ </el-table-column>
+ <el-table-column property="errorRgv" label="鎻愮ず">
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
+ <div style="width: 55%;margin-right: 10px;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧璋冭瘯</span>
+ </div>
+ <div>
+ <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+ <el-form-item label="鐩爣瀹氫綅缃�">
+ <el-input v-model="formParam.rgvPosDestination" placeholder="鐩爣瀹氫綅缃�"></el-input>
+ </el-form-item>
+ <el-form-item label="鍙栬揣绔欑偣">
+ <el-input v-model="formParam.rgvStaNoTake" placeholder="鐩爣绔欑偣"></el-input>
+ </el-form-item>
+ <el-form-item label="鐩爣绔欑偣">
+ <el-input v-model="formParam.rgvStaNoPut" placeholder="鐩爣绔欑偣"></el-input>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button @click="requestOperate('take')" type="primary">鍙栬揣</el-button>
+ <el-button @click="requestOperate('put')" type="primary">鏀捐揣</el-button>
+ <el-button @click="requestOperate('TakeAndPut')" type="primary">鍙栨斁璐�</el-button>
+ <el-button @click="requestOperate('walk')" type="warning">琛岃蛋</el-button>
+ </div>
+ <div style="margin-top: 10px">
+ <el-button @click="requestOperate('del')" type="warning">浠诲姟娓呯┖</el-button>
+ <el-button @click="requestOperate('del2')" type="warning">浣滀笟鍚姩涓姸鎬佸浣�</el-button>
+ </div>
+ <div style="margin-top: 10px">
+ <el-button @click="requestOperate('delRgvTask')" type="warning">娓呯┖wcs涓嬪彂鏁版嵁锛堣繍琛屾暟鎹渶瑕佺‖浠跺浣�9S锛�</el-button>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ <div style="width: 45%;">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>璁惧褰撳墠浠诲姟</span>
+ </div>
+ <div>
+ <div v-if="currentIndex == null">
+ <el-empty description="璇烽�夋嫨璁惧"></el-empty>
+ </div>
+ <div v-else>
+ <el-table ref="singleTable" :data="taskAllData" highlight-current-row @row-click="handleRowClick"
+ max-height="450" style="width: 100%">
+ <el-table-column property="rgvNo" label="灏忚溅鍙�">
+ </el-table-column>
+ <el-table-column property="taskNo" label="宸ヤ綔鍙�">
+ </el-table-column>
+ <el-table-column property="taskStatus" label="浣滀笟妯″紡">
+ </el-table-column>
+ <el-table-column property="isRunning" label="鐘舵��">
+ </el-table-column>
+ <el-table-column property="targetPosition" label="鐩爣瀹氫綅缃�">
+ </el-table-column>
+ <el-table-column property="direction" label="鏂瑰悜">
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </div>
+ </div>
+ <script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ taskAllData: [],
+ currentRow: null,
+ currentTitle: "鏈�夋嫨璁惧",
+ currentIndex: null,
+ formParam: {
+ rgvNo: 0,
+ rgvStaNoTake: 0,
+ rgvStaNoPut: 0,
+ rgvPosDestination: 0
+ }
+ },
+ created() {
+ this.init()
+ },
+ watch: {
+
+ },
+ methods: {
+ init() {
+ this.getTableData()
+
+ setInterval(() => {
+ this.getTableData()
+ }, 1000)
+ },
+ handleRowClick(row, col, event) {
+ const index = this.tableData.indexOf(row)
+ this.currentRow = row;
+ this.currentIndex = index
+ this.currentTitle = row.rgvNo + "灏忚溅"
+
+ this.formParam.rgvNo = row.rgvNo
+ this.formParam.rgvStaNoTake = row.rgvStaNoTake
+ this.formParam.rgvStaNoPut = row.rgvStaNoPut
+ this.formParam.rgvPosDestination = row.rgvPosDestination
+
+ this.getTaskAllData(index+1)
+ },
+ getTaskAllData(index) {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/task/cache/all",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {rgvNo: index},
+ method: 'POST',
+ success: function (res) {
+ that.taskAllData = res.data
+ }
+ });
+ },
+ getTableData() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/status/all",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function (res) {
+ that.tableData = res.data
+ }
+ });
+ },
+ requestOperate(method) {
+ let that = this
+ that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(()=>{
+ $.ajax({
+ url: baseUrl + "/rgv/run/"+method,
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: this.formParam,
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: 'success'
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ })
+
+ }
+ }
+ })
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/deviceOperate/wcsOperate.html b/src/main/webapp/views/deviceOperate/wcsOperate.html
new file mode 100644
index 0000000..c97edfd
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/wcsOperate.html
@@ -0,0 +1,678 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>鐜舰绌挎杞︽櫤鑳界郴缁�</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.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/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+ <style>
+ body {
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ margin: 0;
+ padding: 0;
+ background-color: #a0d2eb;
+ color: #ffffff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100vh;
+ }
+ header {
+ background-color: #2196F3;
+ color: white;
+ padding: 15px 20px;
+ text-align: center;
+ font-size: 24px;
+ letter-spacing: 1px;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
+ }
+ .map {
+ position: relative;
+ width: 52vw;
+ height: 80vh;
+ border-radius: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .inner-ring, .outer-ring {
+ position: absolute;
+ border-radius: 50%;
+ }
+ .inner-ring {
+ width: 72vh;
+ height: 72vh;
+ border: 4px solid #00E676;
+ box-shadow: inset 0 0 30px rgba(0, 230, 118, 0.5), 0 0 20px rgba(0, 230, 118, 0.5);
+ }
+ .outer-ring {
+ width: 80vh;
+ height: 80vh;
+ border: 4px solid #00E676;
+ box-shadow: inset 0 0 30px rgba(0, 230, 118, 0.5), 0 0 20px rgba(0, 230, 118, 0.5);
+ }
+ .station {
+ position: absolute;
+ width: 20px;
+ height: 14px;
+ text-align: center;
+ line-height: 1.5; /* 璋冩暣琛岄珮涓庡瓧浣撳ぇ灏忕殑姣斿�� */
+ font-size: 10px; /* 璁剧疆鏇村皬鐨勫瓧浣� */
+ font-weight: bold;
+ transition: transform 0.3s ease;
+ background-color: #ab1839;
+ transform: scale(1); /* 鍙�夛細濡傛灉涓嶉渶瑕佹斁澶ф晥鏋� */
+ }
+ .bus {
+ font-size: 10px;
+ background-color: #2196F3;
+ border: 10px solid #ffffff;
+ position: absolute;
+ width: 15px;
+ height: 15px;
+ border-radius: 50%;
+ text-align: center;
+ line-height: 15px;
+ font-weight: bold;
+ transition: transform 0.3s ease;
+ }
+ .station:hover, .bus:hover {
+ transform: scale(1.4);
+ z-index: 999;
+ }
+
+ .task-bar-left {
+ position: fixed;
+ top: 1%;
+ /*transform: translateY(-50%);*/
+ width: 25%; /* 璁剧疆瀹藉害 */
+ background-color: rgba(255, 255, 255, 0); /* 鍗婇�忔槑鑳屾櫙 */
+
+ border-radius: 5px;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0);
+ z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
+ }
+
+ .task-bar-left1 {
+ position: fixed;
+ top: 8%;
+ /*transform: translateY(-50%);*/
+ width: 25%; /* 璁剧疆瀹藉害 */
+ background-color: rgba(255, 255, 255, 0); /* 鍗婇�忔槑鑳屾櫙 */
+
+ border-radius: 5px;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0);
+ z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
+ }
+
+ .task-bar-right {
+ position: fixed;
+ top: 1%;
+ /*transform: translateY(-50%);*/
+ width: 25%; /* 璁剧疆瀹藉害 */
+ background-color: rgba(255, 255, 255, 0); /* 鍗婇�忔槑鑳屾櫙 */
+
+ border-radius: 5px;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0);
+ z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
+ }
+
+ .task-bar-right1 {
+ position: fixed;
+ top: 5%;
+ /*transform: translateY(-50%);*/
+ width: 25%; /* 璁剧疆瀹藉害 */
+ background-color: rgba(255, 255, 255, 0); /* 鍗婇�忔槑鑳屾櫙 */
+
+ border-radius: 5px;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0);
+ z-index: 1000; /* 纭繚鍦ㄥ叾浠栧厓绱犱箣涓� */
+ }
+
+ .task-bar-div1 {
+ /*width: 100%; !* 璁剧疆瀹藉害 *!*/
+ background-color: rgba(255, 255, 255, 0.8); /* 鍗婇�忔槑鑳屾櫙 */
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
+ }
+
+ .left-task-bar {
+ left: 20px; /* 璺濈宸﹁竟鐨勮窛绂� */
+ /*bottom: 100px;*/
+ }
+
+ .right-task-bar {
+ /*bottom: 100px;*/
+ right: 20px; /* 璺濈鍙宠竟鐨勮窛绂� */
+ }
+
+ .el-table .warning-row {
+ background: oldlace;
+ }
+
+ .el-table .success-row {
+ background: #f0f9eb;
+ }
+ .container {
+ width: 100vh;
+ height: 72vh;
+ position: absolute;
+ /*background: #8c939d;*/
+ }
+ .bus-station {
+ width: 100vh;
+ height: 72vh;
+ position: absolute;
+ display: flex;
+ /*background: #8c939d;*/
+ }
+ .bus-item-top {
+ background: red;
+ position: relative;
+ width: 40px;
+ height: 60px;
+ line-height: 60px;
+ top: 880px;
+ text-align: center;
+ }
+ .bus-item-left {
+ background: red;
+ position: relative;
+ width: 60px;
+ height: 40px;
+ line-height: 40px;
+ left: 1230px;
+ text-align: center;
+ }
+ .bus-item-left2 {
+ background: red;
+ position: relative;
+ width: 60px;
+ height: 40px;
+ line-height: 40px;
+ left: 1000px;
+ text-align: center;
+ }
+ </style>
+</head>
+<body>
+<!--<header>-->
+<!-- 鐜舰绌挎杞︽櫤鑳界郴缁�-->
+<!--</header>-->
+<div id="app">
+ <div class="map">
+ <div v-if="licenseDayI <=30 ">
+ <div style="color: red">{{licenseDay}}</div>
+ </div>
+ <svg class="container">
+ <path d="M 1200,750
+ L 1200,100
+ C 1200,100 1200,50 1150,50
+ C 1150,50 1100,50 1100,100
+ L 1100,700
+ C 1100,700 1100,750 1050,750
+ L 60,750
+ C 60,750 10,750 10,800
+ C 10,800 10,850 60,850
+ L 1100,850
+ C 1100,850 1200,850 1200,750
+"
+ style="fill:none; stroke:blue; stroke-width:4;" />
+ </svg>
+ <div v-for="station in tableDataDev" class="station" :style="{ top: station.valueY + 'px', left: station.valueX + 'px' }">{{ station.index }}</div>
+ <div>
+ <el-switch
+ style="display: block"
+ v-model="valueSystem"
+ active-color="#13ce66"
+ inactive-color="#A64036"
+ active-text="绯荤粺杩愯涓�..."
+ inactive-text="绯荤粺宸插仠姝�!"
+ @change='upDateValueSystem'>
+ </el-switch>
+ </div>
+ <div v-for="bus in tableDataRgv" class="bus" :style="{ top: bus.valueY + 'px', left: bus.valueX + 'px' , borderColor: bus.modeColor, backgroundColor: bus.statusColor}">{{ bus.index }}</div>
+ </div>
+</div>
+
+<script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ activeNames: ['1'],
+ valueLeft: '0',
+ valueLeft1: '0',
+ valueRight: '0',
+ valueRight1: '0',
+ licenseDay: '宸茶繃鏈�',
+ licenseDayI: 100,
+ valueSystem: false,
+ tableDataRgv: [],
+ tableDataDev: [],
+ energyGatheringRing: [],
+ tableDataLeft: [],
+ tableDataLeft1: [],
+ tableDataRight: [],
+ tableDataRight1: [],
+ devpPos1:[
+ {dev_no: 116,pos:633980},
+ {dev_no: 117,pos:604043},
+ {dev_no: 118,pos:574323},
+ {dev_no: 119,pos:559534},
+ {dev_no: 120,pos:544682},
+ {dev_no: 121,pos:514912},
+ {dev_no: 122,pos:485227},
+ {dev_no: 123,pos:470367},
+ {dev_no: 124,pos:455514},
+ {dev_no: 125,pos:425768},
+ {dev_no: 126,pos:396268},
+ {dev_no: 127,pos:381106},
+ {dev_no: 128,pos:366311},
+ {dev_no: 129,pos:336638},
+ {dev_no: 130,pos:306820},
+ {dev_no: 131,pos:277067},
+ {dev_no: 132,pos:257418},
+ {dev_no: 133,pos:217730},
+ ],
+ devpPos2:[
+ {dev_no: 112,pos:891000},
+ {dev_no: 113,pos:865000},
+ {dev_no: 114,pos:800000},
+ {dev_no: 115,pos:780000},
+ ],
+ devpPos3:[
+ {dev_no: 101,pos:1269958},
+ {dev_no: 102,pos:1243454},
+ {dev_no: 103,pos:1229081},
+ {dev_no: 104,pos:1202099},
+ {dev_no: 105,pos:1187564},
+ {dev_no: 106,pos:1160630},
+ {dev_no: 107,pos:1146152},
+ {dev_no: 108,pos:1119463},
+ {dev_no: 109,pos:1105038},
+ {dev_no: 110,pos:1077961},
+ {dev_no: 111,pos:1063813},
+ ],
+ },
+ created(){
+ this.init();
+ this.devpPos1.reverse()
+ this.devpPos3.reverse()
+ },
+ watch: {
+
+ },
+ methods: {
+ init(){
+ this.getTableDataRgv()
+ this.getTableDataDev()
+ this.getTableDataTrack()
+ this.getTableDataLeft()
+ this.getTableDataLeft1()
+ this.getTableDataRight()
+ this.getTableDataRight1()
+ this.getValueSystem()
+ this.getLicenseDays()
+
+ setInterval(() => {
+ this.getTableDataRgv()
+ this.getTableDataDev()
+ this.getTableDataTrack()
+ this.getTableDataLeft()
+ this.getTableDataLeft1()
+ this.getTableDataRight()
+ this.getTableDataRight1()
+ this.getValueSystem()
+ this.getLicenseDays()
+
+ }, 1000)
+ },
+
+ verifyPassword(callback) {
+ this.$prompt('璇疯緭鍏ョ鐞嗗憳瀵嗙爜: root', '楠岃瘉', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ inputType: 'password',
+ inputPattern: /^root$/,
+ inputErrorMessage: '瀵嗙爜閿欒'
+ }).then(({ value }) => {
+ if (value === 'root') {
+ callback();
+ }
+ }).catch(() => {
+ this.$message.info('宸插彇娑堟搷浣�');
+ });
+ },
+ handleChange(val) {
+ console.log(val);
+ if (val.length === 0){
+ valueRight = '0';
+ } else {
+ console.log("2222"+val);
+
+ if (val.length >= 1){
+ this.handleChangeValueRight(1)
+ }
+ }
+ },
+ handleChange1(val) {
+ console.log(val);
+ if (val.length === 0){
+ valueRight1 = '0';
+ } else {
+ console.log("2222"+val);
+
+ if (val.length >= 1){
+ this.handleChangeValueRight1(1)
+ }
+ }
+ },
+ taskDelete(row) {
+ let that = this;
+ that.$confirm('纭瑕佸垹闄よ浠诲姟鍚�?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ $.ajax({
+ url: baseUrl + "/rgv/disable/task/delete",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ data: {
+ wrkNo: row.wrkNo
+ },
+ success: function (res) {
+ if (res.code === 200) {
+ that.$message.success('鍒犻櫎鎴愬姛');
+ // 鍒犻櫎褰撳墠琛�
+ that.tableDataRight.splice(that.tableDataRight.indexOf(row), 1);
+ } else {
+ that.$message.error('鍒犻櫎澶辫触');
+ }
+ }
+ });
+ });
+ },
+ taskDelete1(row) {
+ let that = this;
+ that.$confirm('纭瑕佸垵濮嬪寲璇ヤ换鍔″悧?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ $.ajax({
+ url: baseUrl + "/rgv/disable/task/delete1",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ data: {
+ wrkNo: row.wrkNo
+ },
+ success: function (res) {
+ if (res.code === 200) {
+ that.$message.success('鍒濆鍖栨垚鍔�');
+ // 鍒犻櫎褰撳墠琛�
+ // that.tableDataRight.splice(that.tableDataRight.indexOf(row), 1);
+ } else {
+ that.$message.error('鍒濆鍖栧け璐�');
+ }
+ }
+ });
+ });
+ },
+ toggleStatus(index, row) {
+ let that = this;
+ const currentStatus = row.status;
+ const targetStatus = currentStatus === 0 ? 1 : 0;
+
+ that.$confirm(`纭瑕�${currentStatus === 0 ? '绂佺敤' : '鍚敤'}璇ヨ澶囧悧?`, '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ $.ajax({
+ url: baseUrl + "/rgv/disable/rgv/status",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ data: {
+ rgvNo: row.rgvNo,
+ status: targetStatus
+ },
+ success: function (res) {
+ if (res.code === 200) {
+ that.$message.success(`鐘舵�佹洿鏂版垚鍔焋);
+ row.status$ = targetStatus; // 鏇存柊鍓嶇鐘舵��
+ } else {
+ that.$message.error('鐘舵�佹洿鏂板け璐�');
+ }
+ }
+ });
+ });
+ },
+ handleChangeValueRight(val) {
+ console.log("33333"+val);
+
+ switch (val){
+ case 1:
+ valueRight = '100';
+ case 2:
+ valueRight = '100';
+ case 3:
+ valueRight = '100';
+ case 4:
+ valueRight = '100';
+ default:
+ valueRight = '0';
+ }
+ },
+ handleChangeValueRight1(val) {
+ console.log("33333"+val);
+
+ switch (val){
+ case 1:
+ valueRight1 = '100';
+ case 2:
+ valueRight1 = '100';
+ case 3:
+ valueRight1 = '100';
+ case 4:
+ valueRight1 = '100';
+ default:
+ valueRight1 = '0';
+ }
+ },
+ tableRowClassName({row, rowIndex}) {
+ if (rowIndex === 1) {
+ return 'warning-row';
+ } else if (rowIndex === 3) {
+ return 'success-row';
+ }
+ return '';
+ },
+ getLicenseDays(){
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/license/getLicenseDays",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ if (res.data.day<0){
+ that.licenseDay = "宸茶繃鏈�"+res.data.day+"澶�";
+ that.licenseDayI = -1;
+ } else {
+ that.licenseDay = "璁稿彲璇佹湁鏁堟湡"+res.data.day+"澶�";
+ that.licenseDayI = res.data.day;
+ }
+ }else {
+ that.licenseDay = "宸茶繃鏈�";
+ that.licenseDayI = -1;
+ }
+ }
+ });
+ // setTimeout(function() {
+ //
+ // }, 1000);
+ },
+ getValueSystem() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/console/system/running/status",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.valueSystem = res.data.status
+ }
+ });
+ },
+ upDateValueSystem(){
+ let that = this;
+ let operatorTypeI = 0;
+ if (that.valueSystem){
+ operatorTypeI = 1;
+ }
+ this.verifyPassword(() => {
+ $.ajax({
+ url: baseUrl + "/console/system/switch",
+ headers: {'token': localStorage.getItem('token')},
+ data: {operatorType : operatorTypeI},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) {
+ that.valueSystem = res.data.status;
+ }
+ }
+ });
+ });
+ },
+ getTableDataLeft() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/ring/through/task/wrk/mast/position/data",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataLeft = res.data
+ }
+ });
+ },
+ getTableDataLeft1() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/ring/through/task/wrk/mast/position/data/v1",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataLeft1 = res.data
+ }
+ });
+ },
+ getTableDataRight() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/task/rgv/circular/shuttle/mast/position/data",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataRight = res.data
+ }
+ });
+ },
+ getTableDataRight1() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/task/rgv/circular/shuttle/mast/position/data/v1",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataRight1 = res.data
+ }
+ });
+ },
+ getTableDataRgv() {
+ let that = this;
+ // that.tableDataRgv = busPsto
+ // return
+ $.ajax({
+ url: baseUrl + "/rgv/ring/through/rgv/position/data",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataRgv = res.data
+ }
+ });
+ },
+ getTableDataDev() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/ring/through/dev/position/data",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.tableDataDev = res.data
+ }
+ });
+ },
+ getTableDataTrack() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/rgv/ring/through/track/position/data",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'post',
+ success: function (res) {
+ that.energyGatheringRing = res.data
+ }
+ });
+ }
+ }
+ })
+
+</script>
+</body>
+
+</html>
--
Gitblit v1.9.1