From e768ed379e709144761824f6de7e0d204bb746c1 Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Thu, 8 May 2025 14:59:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=9C=E9=81=A5socket?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/robot/RemoteControllerProcessor.java | 42 ++++++++----- .../server/TCPServerApplicationRunner.java | 62 +++++++++++++++++++ .../service/robot/RemoteRobotServiceImpl.java | 17 +++-- .../src/main/resources/application-dev.yaml | 2 +- .../src/main/resources/application-local.yaml | 2 +- .../system/api/remote/RemoteRobotApi.java | 13 ++-- .../remote/dto/RemoteRobotTransferDTO.java | 22 +++++++ .../system/enums/ErrorCodeConstants.java | 1 + .../system/api/remote/RemoteRobotApiImpl.java | 13 ++-- .../RemoteControllerInformationService.java | 5 +- ...emoteControllerInformationServiceImpl.java | 38 ++++++++---- .../robot/RobotInformationService.java | 6 ++ .../robot/RobotInformationServiceImpl.java | 21 ++++--- .../module/system/util/socket/TCPClient.java | 4 +- 14 files changed, 189 insertions(+), 59 deletions(-) create mode 100644 yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/config/server/TCPServerApplicationRunner.java create mode 100644 yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotTransferDTO.java diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java index 22c68e3df..a61dfd0aa 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/api/robot/RemoteControllerProcessor.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.module.remote.controller.admin.robot.dto.RemoteControllerSocketDTO; import cn.iocoder.yudao.module.remote.enums.robot.RemoteIpTypeEnum; import cn.iocoder.yudao.module.remote.util.crc.CRCUtil; +import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotTransferDTO; import com.alibaba.fastjson.JSON; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -52,7 +53,7 @@ public class RemoteControllerProcessor { private final String ONE = "01"; private final String TWO = "02"; - public void addCache() { + public void addCache(RemoteRobotTransferDTO dto) { RemoteControllerSocketDTO remoteControllerSocketDTO = cache.get(remoteControllerIp); log.info("缓存的数据 :{}", JSON.toJSONString(remoteControllerSocketDTO)); if (ObjectUtil.isNotEmpty(remoteControllerSocketDTO)) { @@ -71,15 +72,15 @@ public class RemoteControllerProcessor { } remoteControllerSocketDTO.setHost(remoteControllerIp); remoteControllerSocketDTO.setPort(remoteControllerPort); + Socket socket = new Socket(); try { - Socket socket = new Socket(); socket.connect(new InetSocketAddress(remoteControllerIp, remoteControllerPort), 1000); remoteControllerSocketDTO.setSocket(socket); } catch (IOException e) { log.error("添加socket失败 :{}", e); throw exception(REMOTE_ROBOT_CONNECT_FAIL); } - setMsg(remoteControllerSocketDTO, RemoteIpTypeEnum.ONE.getType()); + setMsg(remoteControllerSocketDTO, RemoteIpTypeEnum.ONE.getType(), dto); cache.put(remoteControllerIp, remoteControllerSocketDTO); } @@ -89,7 +90,7 @@ public class RemoteControllerProcessor { * @param remoteControllerSocket * @param type */ - public void setMsg(RemoteControllerSocketDTO remoteControllerSocket, Integer type) { + public void setMsg(RemoteControllerSocketDTO remoteControllerSocket, Integer type, RemoteRobotTransferDTO dto) { String msg = defaultMsg; if (RemoteIpTypeEnum.ONE.getType().equals(type)) { msg = msg + " " + ONE; @@ -97,14 +98,14 @@ public class RemoteControllerProcessor { msg = msg + " " + TWO; } - String[] split = remoteControllerSocket.getHost().split("\\."); + String[] split = dto.getRobotIp().split("\\."); for (String ipItem : split) { String hex = Integer.toHexString(Integer.valueOf(ipItem)); msg = msg + " " + hex; log.info("组装 :{}", hex); } - String portHex = Integer.toHexString(remoteControllerSocket.getPort()); + String portHex = Integer.toHexString(dto.getRobotPort().intValue()); String portHexOne = portHex.substring(0, 2); String portHexTwo = portHex.substring(2); msg = msg + " " + portHexOne + " " + portHexTwo; @@ -135,24 +136,31 @@ public class RemoteControllerProcessor { remoteControllerSocket.setMsg(msg); } - public void remoteCache() { + public void remoteCache(RemoteRobotTransferDTO dto) { RemoteControllerSocketDTO remoteControllerSocketDTO = cache.get(remoteControllerIp); if (ObjectUtil.isEmpty(remoteControllerSocketDTO)) { return; } - setMsg(remoteControllerSocketDTO, RemoteIpTypeEnum.THREE.getType()); + setMsg(remoteControllerSocketDTO, RemoteIpTypeEnum.THREE.getType(), dto); cache.remove(remoteControllerIp); Socket socket = remoteControllerSocketDTO.getSocket(); + if (socket == null ||socket.isClosed()) { + try { + socket = new Socket(); + socket.connect(new InetSocketAddress(remoteControllerIp, remoteControllerPort), 1000); + } catch (IOException e) { + log.error("连接socket出现异常 :{}", remoteControllerIp); + } + } OutputStream os = null; try { - if (socket != null && !socket.isClosed()) { - os = socket.getOutputStream(); - log.info("断开连接 :{},对应的IP :{}", remoteControllerSocketDTO.getMsg(), remoteControllerSocketDTO.getHost()); - os.write(remoteControllerSocketDTO.getMsg().getBytes()); - socket.close(); - } + os = socket.getOutputStream(); + log.info("断开连接 :{} ,对应的IP :{}", remoteControllerSocketDTO.getMsg(), remoteControllerSocketDTO.getHost()); + os.write(remoteControllerSocketDTO.getMsg().getBytes()); + socket.shutdownInput(); + socket.close(); log.info("关闭socket :{}", remoteControllerIp); } catch (IOException e) { log.error("关闭socket出现异常 :{}", remoteControllerIp); @@ -165,7 +173,7 @@ public class RemoteControllerProcessor { } } - remoteCache(); + remoteCache(dto); } @@ -197,8 +205,8 @@ public class RemoteControllerProcessor { Socket socket = remoteControllerSocketDTO.getSocket(); if (socket == null || socket.isClosed()) { + socket = new Socket(); try { - socket = new Socket(); socket.connect(new InetSocketAddress(v.getKey(), remoteControllerPort), 1000); remoteControllerSocketDTO.setSocket(socket); } catch (IOException e) { @@ -210,7 +218,7 @@ public class RemoteControllerProcessor { try { os = socket.getOutputStream(); String str = remoteControllerSocketDTO.getMsg(); - System.out.println(str); + log.info("socket推送的数据 :{}", str); os.write(remoteControllerSocketDTO.getMsg().getBytes()); } catch (IOException e) { log.error("socket发送异常 :{}", e); diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/config/server/TCPServerApplicationRunner.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/config/server/TCPServerApplicationRunner.java new file mode 100644 index 000000000..a325c3e98 --- /dev/null +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/config/server/TCPServerApplicationRunner.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.remote.config.server; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.ServerSocket; +import java.net.Socket; + +@Slf4j +@Component +public class TCPServerApplicationRunner implements ApplicationRunner { + + @Override + public void run(ApplicationArguments args) { + new Thread(new Runnable() { + @Override + public void run() { + initServer(); + } + }).start(); + } + + public void initServer() { + try { + log.info("开始初始化socket服务"); + ServerSocket server=new ServerSocket(9000); + while (true){ + // 监听客户端的请求,没有的话就会进行阻塞 + Socket socket=server.accept(); + //开启一个线程进行处理客户端的请求 + new Thread(new Runnable() { + @Override + public void run() { + try { + + InputStream is=socket.getInputStream(); + byte[] bytes=new byte[1024]; + int len=is.read(bytes); + System.out.println(new String(bytes,0,len)); + OutputStream os= socket.getOutputStream(); + //响应给客户端 + os.write("收到谢谢".getBytes()); + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + }).start(); + log.info("初始化socket服务完成"); + } + } catch (Exception e) { + + } + } +} diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java index 07f8b94ad..395e60b67 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/java/cn/iocoder/yudao/module/remote/service/robot/RemoteRobotServiceImpl.java @@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.remote.util.redis.RedisUtil; import cn.iocoder.yudao.module.system.api.remote.RemoteRobotApi; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotStatusDTO; +import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotTransferDTO; import cn.iocoder.yudao.module.system.api.robot.dto.FloorZoneDTO; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; @@ -126,15 +127,15 @@ public class RemoteRobotServiceImpl implements RemoteRobotService { @Override public void robotChangeMode(RemoteRobotChangeModeDTO data, HttpServletRequest request) { String ip = IpUtils.getIp(request); - CommonResult result = remoteRobotApi.robotChangeMode(data.getRemoteMode(), ip, data.getRobotNo(),remoteControllerPort,remoteControllerIp); + CommonResult result = remoteRobotApi.robotChangeMode(data.getRemoteMode(), ip, data.getRobotNo(),remoteControllerPort,remoteControllerIp); if (!result.isSuccess()) { throw exception0(TASK_COMMONG_FAIL.getCode(), result.getMsg()); } //非自动模式 if (0!= data.getRemoteMode()) { - remoteControllerProcessor.addCache(); + remoteControllerProcessor.addCache(result.getData()); }else { - remoteControllerProcessor.remoteCache(); + remoteControllerProcessor.remoteCache(result.getData()); } } @@ -151,11 +152,17 @@ public class RemoteRobotServiceImpl implements RemoteRobotService { @Override public void remoteDisconnect(HttpServletRequest request) { String ip = IpUtils.getIp(request); - CommonResult result = remoteRobotApi.remoteDisconnect(ip); + CommonResult result = remoteRobotApi.remoteDisconnect(ip); if (!result.isSuccess()) { throw exception0(TASK_COMMONG_FAIL.getCode(), result.getMsg()); } - remoteControllerProcessor.remoteCache(); + + if (ObjectUtil.isEmpty(result.getData())) { + log.info("断开连接, 未查到远遥绑定的信息 :{}",ip); + return; + } + + remoteControllerProcessor.remoteCache(result.getData()); } /** diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-dev.yaml b/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-dev.yaml index 15a79e097..ab71ccb74 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-dev.yaml +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-dev.yaml @@ -54,7 +54,7 @@ logging: remote: controller-port: 9000 - controller-ip: 10.10.110.17 + controller-ip: 127.0.0.1 msg: AA 55 13 04 01 88 88 # 驾舱socket头信息 cockpit-time-out: 120 # 驾舱超时报警时间 industrial-control-time-out: 120 # 工控通信超时报警时间 diff --git a/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-local.yaml b/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-local.yaml index 8928b220d..b91a5e505 100644 --- a/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-local.yaml +++ b/yudao-module-remote/yudao-module-remote-biz/src/main/resources/application-local.yaml @@ -54,7 +54,7 @@ logging: remote: controller-port: 9000 - controller-ip: 10.10.110.17 + controller-ip: 127.0.0.1 msg: AA 55 13 04 01 88 88 # 驾舱socket头信息 cockpit-time-out: 120 # 驾舱超时报警时间 industrial-control-time-out: 120 # 工控通信超时报警时间 diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java index e9260017b..ad3eeea72 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApi.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.api.remote; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotStatusDTO; +import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotTransferDTO; import cn.iocoder.yudao.module.system.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -40,11 +41,11 @@ public interface RemoteRobotApi { @PostMapping(PREFIX + "/robotChangeMode") @Operation(summary = "切换模式") - CommonResult robotChangeMode(@RequestParam(value = "remoteMode") Integer remoteMode, - @RequestParam(value = "ip") String ip, - @RequestParam(value = "robotNo") String robotNo, - @RequestParam(value = "remoteControllerPort") int remoteControllerPort, - @RequestParam(value = "remoteControllerIp") String remoteControllerIp); + CommonResult robotChangeMode(@RequestParam(value = "remoteMode") Integer remoteMode, + @RequestParam(value = "ip") String ip, + @RequestParam(value = "robotNo") String robotNo, + @RequestParam(value = "remoteControllerPort") int remoteControllerPort, + @RequestParam(value = "remoteControllerIp") String remoteControllerIp); @PostMapping(PREFIX + "/getRemotePositionMapList") @Operation(summary = "远遥查询地图") @@ -52,7 +53,7 @@ public interface RemoteRobotApi { @PostMapping(PREFIX + "/remoteDisconnect") @Operation(summary = "断开连接") - CommonResult remoteDisconnect(@RequestParam(value = "remoteIp") String remoteIp); + CommonResult remoteDisconnect(@RequestParam(value = "remoteIp") String remoteIp); @PostMapping(PREFIX + "/remoteTaskDone") @Operation(summary = "任务完成/取货完成") diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotTransferDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotTransferDTO.java new file mode 100644 index 000000000..8eb1d0d46 --- /dev/null +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/remote/dto/RemoteRobotTransferDTO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.system.api.remote.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RemoteRobotTransferDTO { + @Schema(description = "车辆IP") + private String robotIp; + + @Schema(description = "车辆端口") + private Long robotPort; + + @Schema(description = "AGV编号") + private String robotNo; +} diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index d04b8e23a..8516246ef 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -201,6 +201,7 @@ public interface ErrorCodeConstants { ErrorCode ROBOT_HAVE_TASK = new ErrorCode(1-002-034-015, "车辆当前有处理中的任务,请断开连接后,选取其他空闲车辆"); ErrorCode ROBOT_PORT_NOT_COMPLIANCE = new ErrorCode(1-002-034-016, "车辆端口范围在4096至65535之间"); ErrorCode ROBOT_IP_NOT_COMPLIANCE = new ErrorCode(1-002-034-017, "请检测车辆IP是否符合规范"); + ErrorCode ROBOT_IP_OR_PORT_EMPTY = new ErrorCode(1-002-034-020, "车辆IP或者端口为空"); // ========== 机器人任务主表 1-002-035-000 ========== ErrorCode TASK_NOT_EXISTS = new ErrorCode(1-002-035-001, "车辆任务主表不存在"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java index 4d9df3a30..f2e7dcd7c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/remote/RemoteRobotApiImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.api.remote; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotStatusDTO; +import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotTransferDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapDTO; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapService; import cn.iocoder.yudao.module.system.service.remote.RemoteControllerInformationService; @@ -100,9 +101,9 @@ public class RemoteRobotApiImpl implements RemoteRobotApi { * @return */ @Override - public CommonResult robotChangeMode(Integer remoteMode, String remoteIp, String robotNo,int remoteControllerPort,String remoteControllerIp) { - controllerInformationService.robotChangeMode(remoteMode, remoteIp, robotNo,remoteControllerPort,remoteControllerIp); - return CommonResult.success(true); + public CommonResult robotChangeMode(Integer remoteMode, String remoteIp, String robotNo, int remoteControllerPort, String remoteControllerIp) { + RemoteRobotTransferDTO dto = controllerInformationService.robotChangeMode(remoteMode, remoteIp, robotNo,remoteControllerPort,remoteControllerIp); + return CommonResult.success(dto); } @Override @@ -118,9 +119,9 @@ public class RemoteRobotApiImpl implements RemoteRobotApi { * @return */ @Override - public CommonResult remoteDisconnect(String remoteIp) { - controllerInformationService.remoteDisconnect(remoteIp); - return CommonResult.success(true); + public CommonResult remoteDisconnect(String remoteIp) { + RemoteRobotTransferDTO data = controllerInformationService.remoteDisconnect(remoteIp); + return CommonResult.success(data); } /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/remote/RemoteControllerInformationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/remote/RemoteControllerInformationService.java index 8e76bd8e5..93cf0ba0e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/remote/RemoteControllerInformationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/remote/RemoteControllerInformationService.java @@ -6,6 +6,7 @@ import javax.validation.*; import cn.iocoder.yudao.module.mqtt.api.path.dto.PathPosedsDTO; import cn.iocoder.yudao.module.system.api.remote.dto.LoginCheckDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotStatusDTO; +import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotTransferDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteTaskTransferDTO; import cn.iocoder.yudao.module.system.controller.admin.remote.vo.RemoteControllerInformationPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.remote.vo.RemoteControllerInformationSaveReqVO; @@ -103,7 +104,7 @@ public interface RemoteControllerInformationService extends IService() .eq(RemoteControllerInformationDO::getRemoteIp, remoteIp) .last("limit 1")); if (ObjectUtil.isEmpty(information.getRobotNo())) { - return; + return null; } checkGraphMatch(information.getRobotNo()); @@ -403,6 +404,12 @@ public class RemoteControllerInformationServiceImpl extends ServiceImpl { * @param robotNo */ void setRobotFree(String robotNo); + + /** + * 校验端口和IP + * @param updateObj + */ + void checkIpAndPort(RobotInformationDO updateObj); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index 66348f78c..d26e25c14 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -190,8 +190,6 @@ public class RobotInformationServiceImpl extends ServiceImpl() .eq(RobotInformationDO::getRobotNo, createReqVO.getRobotNo()) @@ -218,6 +216,9 @@ public class RobotInformationServiceImpl extends ServiceImpl