From 7c8b32a58dd812d1400b21cddbf0ea36832a6d0d Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 24 三月 2026 11:21:49 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/TempStationBufferCheckController.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/TempStationBufferCheckController.java b/src/main/java/com/zy/asrs/controller/TempStationBufferCheckController.java
new file mode 100644
index 0000000..06e4a45
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/TempStationBufferCheckController.java
@@ -0,0 +1,107 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.core.common.R;
+import com.zy.asrs.entity.DeviceConfig;
+import com.zy.asrs.service.DeviceConfigService;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.model.protocol.StationTaskBufferItem;
+import com.zy.core.thread.StationThread;
+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.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/openapi/temp")
+public class TempStationBufferCheckController {
+
+ @Autowired
+ private DeviceConfigService deviceConfigService;
+
+ @GetMapping("/stationEmptyAutoBufferCheck")
+ public R stationEmptyAutoBufferCheck() {
+ List<Map<String, Object>> itemList = new ArrayList<>();
+
+ List<DeviceConfig> stationDeviceList = deviceConfigService.list(new QueryWrapper<DeviceConfig>()
+ .eq("device_type", String.valueOf(SlaveType.Devp)));
+ for (DeviceConfig deviceConfig : stationDeviceList) {
+ StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, deviceConfig.getDeviceNo());
+ if (stationThread == null) {
+ continue;
+ }
+
+ List<StationProtocol> statusList = stationThread.getStatus();
+ if (statusList == null || statusList.isEmpty()) {
+ continue;
+ }
+
+ for (StationProtocol stationProtocol : statusList) {
+ if (stationProtocol == null || !stationProtocol.isAutoing() || stationProtocol.isLoading()) {
+ continue;
+ }
+
+ List<Map<String, Object>> bufferItemList = buildNonEmptyTaskBufferItemList(stationProtocol.getTaskBufferItems());
+ if (bufferItemList.isEmpty()) {
+ continue;
+ }
+
+ Map<String, Object> item = new LinkedHashMap<>();
+ item.put("deviceNo", deviceConfig.getDeviceNo());
+ item.put("stationId", stationProtocol.getStationId());
+ item.put("taskNo", stationProtocol.getTaskNo());
+ item.put("targetStaNo", stationProtocol.getTargetStaNo());
+ item.put("taskWriteIdx", stationProtocol.getTaskWriteIdx());
+ item.put("systemWarning", stationProtocol.getSystemWarning());
+ item.put("taskBufferItems", bufferItemList);
+ itemList.add(item);
+ }
+ }
+
+ Map<String, Object> result = new LinkedHashMap<>();
+ result.put("scanTime", new Date());
+ result.put("total", itemList.size());
+ result.put("items", itemList);
+ return R.ok().add(result);
+ }
+
+ private List<Map<String, Object>> buildNonEmptyTaskBufferItemList(List<StationTaskBufferItem> taskBufferItems) {
+ List<Map<String, Object>> result = new ArrayList<>();
+ if (taskBufferItems == null || taskBufferItems.isEmpty()) {
+ return result;
+ }
+
+ for (StationTaskBufferItem taskBufferItem : taskBufferItems) {
+ if (!hasTaskBufferValue(taskBufferItem)) {
+ continue;
+ }
+ Map<String, Object> item = new LinkedHashMap<>();
+ item.put("slotIdx", taskBufferItem.getSlotIdx());
+ item.put("taskNo", taskBufferItem.getTaskNo());
+ item.put("targetStaNo", taskBufferItem.getTargetStaNo());
+ result.add(item);
+ }
+ return result;
+ }
+
+ private boolean hasTaskBufferValue(StationTaskBufferItem taskBufferItem) {
+ if (taskBufferItem == null) {
+ return false;
+ }
+ Integer taskNo = taskBufferItem.getTaskNo();
+ if (taskNo != null && taskNo > 0) {
+ return true;
+ }
+ Integer targetStaNo = taskBufferItem.getTargetStaNo();
+ return targetStaNo != null && targetStaNo > 0;
+ }
+}
--
Gitblit v1.9.1