diff --git a/build.gradle b/build.gradle
index 434d09f..3270328 100644
--- a/build.gradle
+++ b/build.gradle
@@ -36,6 +36,8 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-freemarker'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
+ // WebSocket 支持
+ implementation 'org.springframework.boot:spring-boot-starter-websocket'
//域控管理
implementation 'org.springframework.boot:spring-boot-starter-data-ldap'
//邮件的包
@@ -132,7 +134,3 @@ sourceSets {
}
}
}
-
-jar {
- enabled = false
-}
diff --git a/src/main/java/com/gaotao/config/ShiroConfig.java b/src/main/java/com/gaotao/config/ShiroConfig.java
index 8a77576..b7bc184 100644
--- a/src/main/java/com/gaotao/config/ShiroConfig.java
+++ b/src/main/java/com/gaotao/config/ShiroConfig.java
@@ -51,6 +51,7 @@ public class ShiroConfig {
filterMap.put("/api/wms/**", "anon");//wcs、rcs反馈信息
filterMap.put("/api/agv/**", "anon");//agv反馈信息
filterMap.put("/api/dashboard/**", "anon");//看板接口
+ filterMap.put("/ws/dashboard/**", "anon");//看板接口
filterMap.put("/swagger/**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-ui.html", "anon");
diff --git a/src/main/java/com/gaotao/config/WebSocketConfig.java b/src/main/java/com/gaotao/config/WebSocketConfig.java
new file mode 100644
index 0000000..e3d9a2f
--- /dev/null
+++ b/src/main/java/com/gaotao/config/WebSocketConfig.java
@@ -0,0 +1,68 @@
+package com.gaotao.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
+import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
+import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
+
+/**
+ * WebSocket 配置类
+ *
+ *
功能说明:
+ *
+ * - 启用STOMP协议的WebSocket消息代理
+ * - 配置消息端点和订阅前缀
+ * - 支持跨域访问
+ * - 提供SockJS降级支持
+ *
+ *
+ * 订阅主题说明:
+ *
+ * - /topic/dashboard/manual-picking - 人工拣选看板
+ * - /topic/dashboard/robot-picking - 机械臂拣选看板
+ * - /topic/dashboard/slitting-board - 分切区看板
+ * - /topic/dashboard/inventory-board - 库存分析看板
+ *
+ *
+ * @author System
+ * @since 2025-01-23
+ */
+@Configuration
+@EnableWebSocketMessageBroker
+public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
+
+ /**
+ * 配置消息代理
+ *
+ * @param config 消息代理注册器
+ */
+ @Override
+ public void configureMessageBroker(MessageBrokerRegistry config) {
+ // 启用简单消息代理,用于向客户端推送消息
+ // /topic - 公共广播(一对多)
+ // /queue - 点对点(一对一)
+ config.enableSimpleBroker("/topic", "/queue");
+
+ // 客户端发送消息的目的地前缀
+ config.setApplicationDestinationPrefixes("/app");
+
+ // 点对点消息的用户前缀
+ config.setUserDestinationPrefix("/user");
+ }
+
+ /**
+ * 注册STOMP端点
+ *
+ * @param registry STOMP端点注册器
+ */
+ @Override
+ public void registerStompEndpoints(StompEndpointRegistry registry) {
+ // 注册WebSocket端点:/ws/dashboard
+ // 前端通过此端点建立WebSocket连接
+ registry.addEndpoint("/ws/dashboard")
+ .setAllowedOriginPatterns("*") // 允许所有跨域访问
+ .withSockJS(); // 启用SockJS降级支持(当浏览器不支持WebSocket时)
+ }
+}
+
diff --git a/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java b/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java
new file mode 100644
index 0000000..0f13359
--- /dev/null
+++ b/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java
@@ -0,0 +1,39 @@
+package com.gaotao.modules.dashboard.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 看板数据访问接口
+ *
+ * 功能说明:从数据库视图获取看板实时数据
+ *
+ * 数据来源:
+ *
+ * - view_board_slitting_assist_arm - 分切区助力臂数据
+ * - view_board_slitting_inbound - 分切区入库数据
+ *
+ *
+ * @author System
+ * @since 2025-01-23
+ */
+@Mapper
+public interface DashboardDao {
+
+ /**
+ * 查询分切区助力臂数据
+ *
+ * @return 助力臂区实时数据
+ */
+ List