设备上电审核前上报的基础信息表管理接口,以及设备厂商管理接口调整等

This commit is contained in:
mi9688
2024-12-06 17:34:01 +08:00
parent 6aaed01915
commit 71f4f3b139
15 changed files with 260 additions and 48 deletions

View File

@ -62,6 +62,8 @@
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.fastbee</groupId>-->
<!-- <artifactId>fastbee-project-service</artifactId>-->

View File

@ -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();

View File

@ -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
{

View File

@ -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();
}
}

View File

@ -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("发送成功");
}
}

View File

@ -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();
}
}
}
}
}