From 02d21f6176ac8d54f7ba121bf42821a405be40f2 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 23 十月 2025 16:45:21 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/MonitorController.java | 169 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 136 insertions(+), 33 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java
index 0cdb798..84604dd 100644
--- a/src/main/java/com/zy/asrs/controller/MonitorController.java
+++ b/src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -11,9 +11,16 @@
import com.zy.core.CrnThread;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
+import com.zy.core.model.LedSlave;
+import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.LedThread;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -29,6 +36,8 @@
@Autowired
private ReportQueryMapper reportQueryMapper;
+ @Autowired
+ private SlaveProperties slaveProperties;
/**
* 鑾峰彇褰撳墠鏃堕棿
@@ -53,7 +62,17 @@
* 鑾峰彇鍏朵粬淇℃伅
*/
@GetMapping("/other")
- public R monitorOther(@RequestParam("crnId") Integer crnId) {
+ public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer sta) {
+ Integer ledId = 0;
+ for (LedSlave led : slaveProperties.getLed()) {
+ for (Integer staNo : led.getStaArr()) {
+ if (staNo.equals(sta)) {
+ ledId = led.getId();
+ break;
+ }
+ }
+ }
+
Double xSpeed = 0.0D;
Double ySpeed = 0.0D;
Double zSpeed = 0.0D;
@@ -76,10 +95,10 @@
forkPos = 1;
break;
case 1:
- forkPos = 0;
+ forkPos = 2;
break;
case 2:
- forkPos = 2;
+ forkPos = 0;
break;
default:
forkPos = 1;
@@ -93,23 +112,22 @@
}
}
- xSpeed = Double.valueOf(new Random().nextInt(10));
- ySpeed = Double.valueOf(new Random().nextInt(10));
-
-// int totalWrk = reportQueryMapper.getTotalWrkByCrnId(crnId);
-// int totalLoc = reportQueryMapper.getTotalLocByCrnId();
+ // 鑾峰彇杈撻�佺嚎plc绾跨▼
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
+ String ledContent = Cools.isEmpty(ledThread) ? "" : ledThread.getWorkNos().toString();
+// ledContent = "ask鐨勬ā鍧楄惃婊″ぇ绠椾簡钀ㄦ弧澶т簡\n 鏄獦澧冨埌鍩冨強鍡插鍡瞈n 钀ㄨ揪濮嗘墦寮�钀ㄦ弧澶у嚡鎾掗害褰撳姵钀ㄦ弧澶ц�佸笀";
return R.ok(
- Cools.add("xSpeed", xSpeed) // 琛岃蛋閫熷害
- .add("ySpeed", ySpeed) // 鍗囬檷閫熷害
- .add("zSpeed", zSpeed) // 鍙夌墮閫熷害
+ Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 琛岃蛋閫熷害
+ .add("ySpeed", Arith.multiplys(1, Math.abs(ySpeed), 1)) // 鍗囬檷閫熷害
+ .add("zSpeed", Arith.multiplys(1, Math.abs(zSpeed), 1)) // 鍙夌墮閫熷害
.add("forkPos", forkPos) // 鍙夌墮閫熷害
-// .add("totalLoc", totalLoc) // 鎬诲簱浣嶆暟
-// .add("totalWrk", totalWrk) // 鎬讳换鍔℃暟
- .add("xDistance", xDistance) // 绱璧拌璺濈km
- .add("yDistance", yDistance) // 绱鍗囬檷璺濈km
- .add("xDuration", xDuration) // 绱璧拌鏃堕暱h
- .add("yDuration", yDuration) // 绱鍗囬檷鏃堕暱h
+ .add("xDistance", Arith.multiplys(1, Math.abs(xDistance), 1)) // 绱璧拌璺濈km
+ .add("yDistance", Arith.multiplys(1, Math.abs(yDistance), 1)) // 绱鍗囬檷璺濈km
+ .add("xDuration", Arith.multiplys(1, Math.abs(xDuration), 1)) // 绱璧拌鏃堕暱h
+ .add("yDuration", Arith.multiplys(1, Math.abs(yDuration), 1)) // 绱鍗囬檷鏃堕暱h
+ .add("isShow", !Cools.isEmpty(ledContent)) // 鏄惁鏄剧ず鍐呭
+ .add("content", ledContent) // 鏄剧ず鍐呭
);
}
@@ -177,14 +195,18 @@
}
- /**
- * 搴撲綅浣跨敤鎯呭喌缁熻
- */
+
+
@GetMapping("/loc/rep")
public R monitorLocRep(){
List<Map<String, Object>> pie = new ArrayList<>();
+
LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
+ // 鎬诲簱浣嶆暟
+ Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
+ // 浣跨敤涓�
+ Integer used = locUseRate.getFqty() + locUseRate.getUqty();
if(locUseRate!=null) {
Map<String, Object> map = new HashMap<>();
map.put("name", "鍦ㄥ簱");
@@ -193,7 +215,7 @@
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "绌�");
- map1.put("value", locUseRate.getOqty());
+ map1.put("value", 11200-used);
pie.add(map1);
Map<String, Object> map2 = new HashMap<>();
@@ -207,26 +229,107 @@
pie.add(map3);
}
- // 鎬诲簱浣嶆暟
- Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
- // 浣跨敤涓�
- Integer used = locUseRate.getFqty() + locUseRate.getUqty();
+
// 搴撲綅浣跨敤鐜�
- double usedDivides = Arith.divides(3, used, total);
+ double usedDivides = Arith.divides(3, used, 11200);
double usedPr = Arith.multiplys(1, usedDivides, 100);
return R.ok(
Cools.add("pie", pie)
- .add("stockCunt", locUseRate.getFqty())
- .add("emptyCount", locUseRate.getOqty())
- .add("noneCount", locUseRate.getXqty())
- .add("total", total)
- .add("used", used)
- .add("usedPr", usedPr)
+ .add("stockCunt", locUseRate.getFqty())
+ .add("emptyCount", 11200-used)
+ .add("noneCount", locUseRate.getXqty())
+ .add("total", 11200)
+ .add("used", used)
+ .add("usedPr", usedPr)
);
}
+ /**
+ * 搴撲綅浣跨敤鎯呭喌缁熻
+ */
+// @GetMapping("/loc/rep")
+// public R monitorLocRep(){
+// List<Map<String, Object>> pie = new ArrayList<>();
+//
+// LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
+// if(locUseRate!=null) {
+// Map<String, Object> map = new HashMap<>();
+// map.put("name", "鍦ㄥ簱");
+// map.put("value", locUseRate.getFqty());
+// pie.add(map);
+//
+// Map<String, Object> map1 = new HashMap<>();
+// map1.put("name", "绌�");
+// map1.put("value", locUseRate.getOqty());
+// pie.add(map1);
+//
+// Map<String, Object> map2 = new HashMap<>();
+// map2.put("name", "浣跨敤");
+// map2.put("value", locUseRate.getUqty());
+// pie.add(map2);
+//
+// Map<String, Object> map3 = new HashMap<>();
+// map3.put("name", "绂佺敤");
+// map3.put("value", locUseRate.getXqty());
+// pie.add(map3);
+// }
+//
+// // 鎬诲簱浣嶆暟
+// Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
+// // 浣跨敤涓�
+// Integer used = locUseRate.getFqty() + locUseRate.getUqty();
+// // 搴撲綅浣跨敤鐜�
+// double usedDivides = Arith.divides(3, used, total);
+// double usedPr = Arith.multiplys(1, usedDivides, 100);
+//
+// return R.ok(
+// Cools.add("pie", pie)
+// .add("stockCunt", locUseRate.getFqty())
+// .add("emptyCount", locUseRate.getOqty())
+// .add("noneCount", locUseRate.getXqty())
+// .add("total", total)
+// .add("used", used)
+// .add("usedPr", usedPr)
+// );
+// }
+
+ /**
+ * 鑾峰彇鍏朵粬淇℃伅
+ */
+ @GetMapping("/led")
+ public R monitorLed(@RequestParam("ledId") Integer ledId) {
+ String ledContent = "";
+ List<LedCommand> commandList = null;
+ for (LedSlave slave : slaveProperties.getLed()) {
+ if (slave.getStaArr().contains(ledId)) {
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
+ if (null != ledThread) {
+ ledContent = ledThread.getStringBuffer().toString();
+ commandList = ledThread.getCommandList();
+ }
+ }
+ }
+ return R.ok().add(commandList);
+ }
+
+ /**
+ * 寮傚父閫氱煡
+ */
+ @GetMapping("/led/error")
+ public R monitorLedError(@RequestParam("ledId") Integer ledId) {
+ String errorMsg = "";
+ for (LedSlave slave : slaveProperties.getLed()) {
+ if (slave.getStaArr().contains(ledId)) {
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
+ if (null != ledThread) {
+ errorMsg = ledThread.getErrorMsg().toString();
+ }
+ }
+ }
+ return R.ok().add(errorMsg);
+ }
--
Gitblit v1.9.1