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