From 4ac9edd4c0030d2daafd712cd14ef9080b2f1e43 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 10 Feb 2026 11:52:40 +0800
Subject: [PATCH] 优化
---
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java | 57 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
index a8b9e9f..5ecf63c 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -5,6 +5,7 @@
import com.ard.common.exception.ControlException;
import com.ard.common.utils.DateUtils;
+import com.ard.common.utils.SecurityUtils;
import com.ard.common.utils.file.FileUtils;
import com.ard.common.utils.uuid.IdUtils;
import com.ard.data.noflyzone.domain.ArdNoFlyZone;
@@ -36,10 +37,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
-
import javax.annotation.Resource;
-import static com.ard.common.utils.SecurityUtils.getUsername;
+import static com.ard.common.utils.SecurityUtils.getUserId;
import static com.ard.route.enums.kml.DroneEnumValueEnums.M350_RTK;
import static com.ard.route.util.InitializationUtils.divided_23;
import static com.ard.route.util.ToolUtils.*;
@@ -140,6 +140,7 @@
*/
@Override
public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
+ validateForCreate(ardRouteInfo);
checkRouteMissionStatus(ardRouteInfo,"1");
checkRouteMissionStatus(ardRouteInfo,"2");
ardRouteInfo.setId(IdUtils.simpleUUID());
@@ -165,18 +166,31 @@
*/
private void checkRouteMissionStatus(ArdRouteInfo ardRouteInfo,String type){
ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
- switch(type){
- case "1":
- validateForCreate(mission);
- break;
- case "2":
- bindRoute(mission, ardRouteInfo);
- break;
- case "3":
- executeMission(mission);
- break;
- default:
- throw new RuntimeException("不支持的操作类型!!!");
+ if (mission != null){
+ switch(type){
+ case "1":
+ validateForCreate(mission);
+ break;
+ case "2":
+ bindRoute(mission,ardRouteInfo);
+ break;
+ case "3":
+ executeMission(mission,ardRouteInfo);
+ break;
+ default:
+ throw new RuntimeException("不支持的操作类型!!!");
+ }
+ }
+ }
+
+ // 验证,只有当前用户是下发人才能创建航线
+ private void validateForCreate(ArdRouteInfo ardRouteInfo) {
+ ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
+ if (mission != null){
+ if (!mission.getIssuerId().equals(getUserId())){
+ throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
+ //return "创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!";
+ }
}
}
@@ -187,17 +201,18 @@
}
private void bindRoute(ArdRouteMission mission, ArdRouteInfo routeInfo) {
- if (!"0".equals(mission.getRouteId())) {
+ if (mission.getRouteId() != null) {
throw new RuntimeException("航线任务下已绑定航线,不可创建新航线信息!!!");
}
mission.setRouteId(routeInfo.getId());
ardRouteMissionMapper.updateArdRouteMission(mission);
}
- private void executeMission(ArdRouteMission mission) {
+ private void executeMission(ArdRouteMission mission,ArdRouteInfo ardRouteInfo) {
if ("0".equals(mission.getExecuteStatus())) {
+ mission.setRouteId(ardRouteInfo.getId());
mission.setExecuteStatus("1");
- mission.setExecuteBy(getUsername());
+ mission.setExecuteName(SecurityUtils.getUsername());
mission.setExecuteTime(DateUtils.getNowDate());
mission.setUpdateTime(DateUtils.getNowDate());
ardRouteMissionMapper.updateArdRouteMission(mission);
@@ -472,9 +487,11 @@
@Override
public Boolean routeBegins(String id,String boxSn) {
ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(id);
- // 判断是否循环航线
- if (null != route && "0".equals(route.getIsLoop())){
- deleteArdRouteInfoById(id);
+ if (null != route){
+ // 判断是否循环航线
+ if ("0".equals(route.getIsLoop())){
+ deleteArdRouteInfoById(id);
+ }
checkRouteMissionStatus(route,"3");
}
WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);
--
Gitblit v1.9.3