From 579f3590f60df0e26c3400394222b26d3d7cc87c Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Thu, 25 Dec 2025 15:45:22 +0800
Subject: [PATCH] 1. 新增盒子编码,检查是否有重复的盒子编码。
---
ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java | 25 +++++++++++++++++++++++++
ard-work/src/main/java/com/ard/work/service/impl/ArdServerInfoServiceImpl.java | 24 ------------------------
ard-work/src/main/java/com/ard/work/service/IArdServerInfoService.java | 2 --
3 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/work/service/IArdServerInfoService.java b/ard-work/src/main/java/com/ard/work/service/IArdServerInfoService.java
index 2e25e77..78b1125 100644
--- a/ard-work/src/main/java/com/ard/work/service/IArdServerInfoService.java
+++ b/ard-work/src/main/java/com/ard/work/service/IArdServerInfoService.java
@@ -28,8 +28,6 @@
*/
public List<ArdServerInfo> selectArdServerInfoList(ArdServerInfo ardServerInfo);
- public List<ArdServerInfo> selectArdServerInfoListNo(ArdServerInfo ardServerInfo);
-
/**
* 新增服务器管理
*
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
index 053cfa6..9d6b7f9 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
@@ -176,6 +176,8 @@
try {
// 1. 检查已存在的无人机盒子
List<ArdDroneInfo> existingDrones = getExistingDrones(boxSn);
+ // 1.1 新增时不能添加重复的
+ checkDuplicateBox(existingDrones, boxSn);
// 2. 授权数量验证
validateAuthorization(existingDrones.size(), boxSn.length);
// 3. 获取并组装新的无人机信息
@@ -207,6 +209,29 @@
}
/**
+ * 检查是否有重复的盒子编码
+ */
+ private void checkDuplicateBox(List<ArdDroneInfo> existingDrone,String[] boxSn) {
+ Set<String> existingBoxSnSet = new HashSet<>();
+ for (ArdDroneInfo droneInfo : existingDrone) {
+ existingBoxSnSet.add(droneInfo.getBoxSn());
+ }
+
+ // 检查是否有重复的盒子编码
+ List<String> duplicateBoxSns = new ArrayList<>();
+ for (String sn : boxSn) {
+ if (existingBoxSnSet.contains(sn)) {
+ duplicateBoxSns.add(sn);
+ }
+ }
+
+ if (!duplicateBoxSns.isEmpty()) {
+ log.warn("存在重复的无人机盒子编码: {}", duplicateBoxSns);
+ throw new ServiceException("以下无人机盒子编码已存在: " + String.join(", ", duplicateBoxSns));
+ }
+ }
+
+ /**
* 验证授权数量
*/
private void validateAuthorization(int existingCount, int newCount) {
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdServerInfoServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdServerInfoServiceImpl.java
index ad2e534..025eee6 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdServerInfoServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdServerInfoServiceImpl.java
@@ -5,14 +5,11 @@
import com.ard.work.component.forest.TyClient;
import com.ard.work.component.netty.TyTcpClientManager;
import com.ard.work.domain.dto.TokenDTO;
-import com.ard.work.domain.entity.ArdDroneInfo;
import com.ard.work.domain.entity.ArdServerInfo;
import com.ard.work.domain.receiver.AccessTokenReceiver;
import com.ard.work.domain.receiver.TyHttpCommonReceiver;
-import com.ard.work.mapper.ArdDroneInfoMapper;
import com.ard.work.mapper.ArdServerInfoMapper;
import com.ard.work.service.IArdServerInfoService;
-import com.dtflys.forest.exceptions.ForestRuntimeException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
@@ -40,9 +37,6 @@
@Resource
private TyTcpClientManager tyTcpClientManager;
- @Resource
- private ArdDroneInfoMapper ArdDroneInfoMapper;
-
/**
* 查询服务器管理
*
@@ -63,24 +57,6 @@
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List<ArdServerInfo> selectArdServerInfoList(ArdServerInfo ardServerInfo) {
- return ardServerInfoMapper.selectArdServerInfoList(ardServerInfo);
- }
-
- @Override
- @DataScope(deptAlias = "d", userAlias = "u")
- public List<ArdServerInfo> selectArdServerInfoListNo(ArdServerInfo ardServerInfo) {
-
-// List<ArdDroneInfo> ardDroneInfos = ArdDroneInfoMapper.selectArdDroneList(new ArdDroneInfo());
-// for (ArdDroneInfo ardDroneInfo : ardDroneInfos) {
-// ardDroneInfo.getBoxSn();
-// }
-// List<ArdServerInfo> servers = ardServerInfoMapper.selectArdServerInfoList(ardServerInfo);
-// for (ArdServerInfo server : servers) {
-// for (ArdDroneInfo ardDroneInfo : server.getArdDroneInfoList()) {
-// ardDroneInfo.getBoxSn();
-// }
-// }
-
return ardServerInfoMapper.selectArdServerInfoList(ardServerInfo);
}
--
Gitblit v1.9.3