设备上电审核前上报的基础信息表管理接口,以及设备厂商管理接口调整等
This commit is contained in:
@ -62,6 +62,8 @@
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.fastbee</groupId>-->
|
||||
<!-- <artifactId>fastbee-project-service</artifactId>-->
|
||||
|
@ -31,7 +31,7 @@ import com.fastbee.common.core.page.TableDataInfo;
|
||||
* @date 2024-12-05
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/iot/info")
|
||||
@RequestMapping("/iot/device/report/info")
|
||||
@Api(tags = "设备上电审核前上报的基础信息")
|
||||
public class DeviceReportInfoController extends BaseController
|
||||
{
|
||||
@ -41,9 +41,9 @@ public class DeviceReportInfoController extends BaseController
|
||||
/**
|
||||
* 查询设备上电审核前上报的基础信息列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('iot:info:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询设备上电审核前上报的基础信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('iot:info:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询设备上电审核前上报的基础信息列表")
|
||||
public TableDataInfo list(DeviceReportInfo deviceReportInfo)
|
||||
{
|
||||
startPage();
|
||||
|
@ -30,7 +30,7 @@ import com.fastbee.common.core.page.TableDataInfo;
|
||||
* @date 2024-11-13
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/renke/manufacturers")
|
||||
@RequestMapping("/device/manufacturers")
|
||||
@Api(tags = "设备厂家信息")
|
||||
public class DeviceManufacturersController extends BaseController
|
||||
{
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.fastbee.data.controller.websocket;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
|
||||
|
||||
|
||||
/**
|
||||
* @author hanjinqun
|
||||
* @date 2022/10/24
|
||||
*/
|
||||
@Configuration
|
||||
public class WebSocketConfig {
|
||||
@Bean
|
||||
public ServerEndpointExporter serverEndpointExporter() {
|
||||
return new ServerEndpointExporter();
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.fastbee.data.controller.websocket;
|
||||
|
||||
import com.fastbee.common.core.domain.AjaxResult;
|
||||
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* ws发送消息测试
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping(value = "/api/v1/websocket")
|
||||
|
||||
public class WebSocketController {
|
||||
@Autowired
|
||||
private WebSocketService webSocketServer;
|
||||
|
||||
/**
|
||||
* 模拟数据发送
|
||||
*/
|
||||
@RequestMapping(value = "/sendTestMessage", method = RequestMethod.GET)
|
||||
public AjaxResult sendTestMessage(String message) {
|
||||
try {
|
||||
// webSocketServer.sendAllMessage(message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return AjaxResult.error();
|
||||
}
|
||||
return AjaxResult.success("发送成功");
|
||||
}
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package com.fastbee.data.controller.websocket;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.websocket.*;
|
||||
import javax.websocket.server.PathParam;
|
||||
import javax.websocket.server.ServerEndpoint;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
|
||||
|
||||
@Component
|
||||
@ServerEndpoint("/websocket/{userId}")
|
||||
public class WebSocketService {
|
||||
/**
|
||||
* 日志工具
|
||||
*/
|
||||
private Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
/**
|
||||
* 与某个客户端的连接会话,需要通过它来给客户端发送数据
|
||||
*/
|
||||
private Session session;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private String userId;
|
||||
/**
|
||||
* 用来存放每个客户端对应的MyWebSocket对象
|
||||
*/
|
||||
private static CopyOnWriteArraySet<WebSocketService> webSockets = new CopyOnWriteArraySet<>();
|
||||
/**
|
||||
* 用来存在线连接用户信息
|
||||
*/
|
||||
private static ConcurrentHashMap<String, Session> sessionPool = new ConcurrentHashMap<String, Session>();
|
||||
|
||||
/**
|
||||
* 链接成功调用的方法
|
||||
*/
|
||||
@OnOpen
|
||||
public void onOpen(Session session, @PathParam(value = "userId") String userId) {
|
||||
try {
|
||||
this.session = session;
|
||||
this.userId = userId;
|
||||
webSockets.add(this);
|
||||
sessionPool.put(userId, session);
|
||||
logger.info("【websocket消息】有新的连接,总数为:" + webSockets.size());
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 链接关闭调用的方法
|
||||
*/
|
||||
@OnClose
|
||||
public void onClose() {
|
||||
try {
|
||||
webSockets.remove(this);
|
||||
sessionPool.remove(this.userId);
|
||||
logger.info("【websocket消息】连接断开,总数为:" + webSockets.size());
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 收到客户端消息后调用的方法
|
||||
*/
|
||||
@OnMessage
|
||||
public void onMessage(String message) {
|
||||
logger.info("【websocket消息】收到客户端消息:" + message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送错误时的处理
|
||||
*
|
||||
* @param session
|
||||
* @param error
|
||||
*/
|
||||
@OnError
|
||||
public void onError(Session session, Throwable error) {
|
||||
logger.error("用户错误,原因:" + error.getMessage());
|
||||
error.printStackTrace();
|
||||
}
|
||||
|
||||
/**
|
||||
* 此为广播消息
|
||||
*/
|
||||
public void sendAllMessage(String message) {
|
||||
logger.info("【websocket消息】广播消息:" + message);
|
||||
for (WebSocketService webSocket : webSockets) {
|
||||
try {
|
||||
if (webSocket.session.isOpen()) {
|
||||
webSocket.session.getAsyncRemote().sendText(message);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 此为单点消息
|
||||
*/
|
||||
public void sendOneMessage(String userId, String message) {
|
||||
Session session = sessionPool.get(userId);
|
||||
if (session != null && session.isOpen()) {
|
||||
try {
|
||||
logger.info("【websocket消息】 单点消息:" + message);
|
||||
session.getAsyncRemote().sendText(message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 此为单点消息(多人)
|
||||
*/
|
||||
public void sendMoreMessage(String[] userIds, String message) {
|
||||
for (String userId : userIds) {
|
||||
Session session = sessionPool.get(userId);
|
||||
if (session != null && session.isOpen()) {
|
||||
try {
|
||||
logger.info("【websocket消息】 单点消息:" + message);
|
||||
session.getAsyncRemote().sendText(message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user