From 1ab7083c9e7544d75c0c6cfe0eaaaee751087179 Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Fri, 20 Jun 2025 16:18:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E7=BC=96=E5=8F=B7=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=80=A7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/robot/RobotInformationMapper.java | 4 ++ .../robot/RobotInformationServiceImpl.java | 47 +++++++++---------- .../mapper/robot/RobotInformationMapper.xml | 27 ++++++++++- 3 files changed, 50 insertions(+), 28 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotInformationMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotInformationMapper.java index 43c66cea0..b13efbd4d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotInformationMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotInformationMapper.java @@ -88,4 +88,8 @@ public interface RobotInformationMapper extends BaseMapperX * @return */ List getListByMapId(@Param("mapId") Long mapId); + + RobotInformationDO selectByRobotNoAndIdNotIn(@Param("robotNo") String robotNo, @Param("id") Long id); + + RobotInformationDO selectByMacAndIdNotIn(@Param("macAddress") String macAddress,@Param("id") Long id); } 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 e1a180543..c1a384a76 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 @@ -184,20 +184,17 @@ public class RobotInformationServiceImpl extends ServiceImpl() - .eq(RobotInformationDO::getMacAddress, createReqVO.getMacAddress()) - .last("limit 1")); - if (ObjectUtil.isNotEmpty(existRobotMac)) { + RobotInformationDO existRobotInformationDO = + informationMapper.selectByMacAndIdNotIn(createReqVO.getMacAddress(),null); + if (ObjectUtil.isNotEmpty(existRobotInformationDO)) { throw exception(ROBOT_MAC_ADDRESS_EXISTS); } - //判断机器人编号 - RobotInformationDO existRobotNo = informationMapper.selectOne(new LambdaQueryWrapper() - .eq(RobotInformationDO::getRobotNo, createReqVO.getRobotNo()) - .last("limit 1")); - if (ObjectUtil.isNotEmpty(existRobotNo)) { + HashSet set = new HashSet<>(); + set.add(createReqVO.getRobotNo()); + List robots = informationMapper.selectByRobotNos(set); + if (ObjectUtil.isNotEmpty(robots)) { throw exception(ROBOT_ROBOT_NO_EXISTS); } @@ -393,24 +390,22 @@ public class RobotInformationServiceImpl extends ServiceImpl existRobot = informationMapper.queryAllByLimit(query); - boolean exist = existRobot.stream().anyMatch(v -> (v.getMacAddress().equals(updateReqVO.getMacAddress()) - && !v.getId().equals(updateReqVO.getId()))); - if (exist) { - throw exception(ROBOT_MAC_ADDRESS_EXISTS); + if (!updateReqVO.getRobotNo().equals(robotInformationDO.getRobotNo())) { + RobotInformationDO existRobotInformationDO = + informationMapper.selectByRobotNoAndIdNotIn(updateReqVO.getRobotNo(),updateReqVO.getId()); + if (ObjectUtil.isNotEmpty(existRobotInformationDO)) { + throw exception(ROBOT_ROBOT_NO_EXISTS); + } } - //校验机器人编号 - query.setMacAddress(null); - query.setRobotNo(updateReqVO.getRobotNo()); - List existRobotNo = informationMapper.queryAllByLimit(query); - boolean robotNoExist = existRobotNo.stream().anyMatch(v -> (v.getRobotNo().equals(updateReqVO.getRobotNo()) - && !v.getId().equals(updateReqVO.getId()))); - if (robotNoExist) { - throw exception(ROBOT_ROBOT_NO_EXISTS); + + if (!updateReqVO.getMacAddress().equals(robotInformationDO.getMacAddress())) { + RobotInformationDO existRobotInformationDO = + informationMapper.selectByMacAndIdNotIn(updateReqVO.getMacAddress(),updateReqVO.getId()); + if (ObjectUtil.isNotEmpty(existRobotInformationDO)) { + throw exception(ROBOT_MAC_ADDRESS_EXISTS); + } } + //校验IP RobotInformationDO existRobotIp = informationMapper.selectOne(new LambdaQueryWrapper() .eq(RobotInformationDO::getRobotIp, updateReqVO.getRobotIp()) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/robot/RobotInformationMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/robot/RobotInformationMapper.xml index ae360b607..1a8e28ac3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/robot/RobotInformationMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/robot/RobotInformationMapper.xml @@ -160,8 +160,7 @@ from robot_information where - deleted = '0' - and robot_no in + robot_no in #{robotNo} @@ -199,4 +198,28 @@ + +