From 5d2e6ca50091f405dfda9e287b367dd295dc6cf8 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Mon, 09 Feb 2026 17:39:17 +0800
Subject: [PATCH] 1. 航线任务增加校验,只有下发人和登陆人是一个人才可以删除修改操作。 2. 增加校验航线任务是否可以创建航线接口。
---
ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java | 8 ++++
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java | 14 +++++++
ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java | 10 +++++
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java | 58 +++++++++++++++++++----------
4 files changed, 70 insertions(+), 20 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java b/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
index d6b7935..b71e9a2 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
@@ -116,4 +116,14 @@
return toAjax(ardRouteMissionService.updateIsRead(updateMission));
}
+ /**
+ * 校验航线任务是否可以创建航线
+ */
+ @ApiOperation("校验航线任务是否可以创建航线")
+ //@PreAuthorize("@ss.hasPermi('route:mission:query')")
+ @GetMapping(value = "/{missionId}")
+ public Boolean routeMissionNot(@PathVariable("missionId") String missionId) {
+ return ardRouteMissionService.selectRouteMissionNot(missionId);
+ }
+
}
diff --git a/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java b/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
index 3b85e5e..df6181c 100644
--- a/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
+++ b/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
@@ -78,4 +78,12 @@
*/
public int updateIsRead(UpdateMission updateMission);
+ /**
+ * 校验航线任务是否可以创建航线
+ *
+ * @param missionId 航线任务ID
+ * @return 结果
+ */
+ public Boolean selectRouteMissionNot(String missionId);
+
}
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 f6859f7..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
@@ -38,6 +38,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
+
+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.*;
@@ -138,6 +140,7 @@
*/
@Override
public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
+ validateForCreate(ardRouteInfo);
checkRouteMissionStatus(ardRouteInfo,"1");
checkRouteMissionStatus(ardRouteInfo,"2");
ardRouteInfo.setId(IdUtils.simpleUUID());
@@ -180,6 +183,17 @@
}
}
+ // 验证,只有当前用户是下发人才能创建航线
+ 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() + "】,无法执行操作!";
+ }
+ }
+ }
+
private void validateForCreate(ArdRouteMission mission) {
if ("1".equals(mission.getExecuteStatus())){
throw new RuntimeException("航线任务已完成,无法创建航线!!!");
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
index 686d42a..2afdbb7 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
@@ -15,10 +15,11 @@
import com.ard.system.mapper.SysUserMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import com.ard.route.mapper.ArdRouteMissionMapper;
import com.ard.route.service.IArdRouteMissionService;
+
+import static com.ard.common.utils.SecurityUtils.getUserId;
/**
@@ -96,25 +97,6 @@
return ardRouteMissionMapper.insertArdRouteMission(ardRouteMission);
}
-// /**
-// * 定时任务,定时发送新增航线任务消息
-// */
-// @Scheduled(fixedRate = 2000)
-// public void sendMissionMessage() {
-// ArdRouteMission ardRouteMission = new ArdRouteMission();
-// ardRouteMission.setIsRead("0");
-// // 获取所有未读的消息给
-// List<ArdRouteMission> routeMissionLs = ardRouteMissionMapper.selectArdRouteMissionList(ardRouteMission);
-// for (ArdRouteMission routeMissionL : routeMissionLs) {
-// if (routeMissionL.getIssuerId() != null){
-// List<ArdRoutePoint> missionDetailList = ardRoutePointMapper.selectArdRoutePointByMissionId(routeMissionL.getId());
-// routeMissionL.setMissionDetailList(missionDetailList);
-// MiWebSocketUtils.sendMessage(routeMissionL.getIssuerId(),JSON.toJSONString(routeMissionL));
-// }
-// }
-// }
-
-
/**
* 修改航线任务
*
@@ -123,6 +105,7 @@
*/
@Override
public int updateArdRouteMission(ArdRouteMission ardRouteMission) {
+ validateForCreate(ardRouteMission,"2");
ardRouteMission.setUpdateTime(DateUtils.getNowDate());
ardRouteMission.setIssuerName(getUserName(ardRouteMission.getIssuerId()));
// 删除航线任务航点
@@ -156,9 +139,25 @@
*/
@Override
public int deleteArdRouteMissionByIds(String[] ids) {
+ // 删除航线任务时只能删除自己的航线任务
+ for (String id : ids) {
+ ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(id);
+ validateForCreate(ardRouteMission,"1");
+ }
// 删除航线任务航点
ardRoutePointMapper.deleteArdRoutePointByMissionId(ids[0]);
return ardRouteMissionMapper.deleteArdRouteMissionByIds(ids);
+ }
+
+ // 验证,只有当前用户是下发人才能删除修改
+ private void validateForCreate(ArdRouteMission mission,String type) {
+ if (!mission.getIssuerId().equals(getUserId())){
+ if ("1".equals(type)){
+ throw new RuntimeException("只能删除下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
+ }else if ("2".equals(type)){
+ throw new RuntimeException("只能修改下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
+ }
+ }
}
/**
@@ -169,6 +168,10 @@
*/
@Override
public int deleteArdRouteMissionById(String id) {
+ ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(id);
+ if (ardRouteMission != null){
+ validateForCreate(ardRouteMission,"1");
+ }
ardRoutePointMapper.deleteArdRoutePointByMissionId(id);
return ardRouteMissionMapper.deleteArdRouteMissionById(id);
}
@@ -207,4 +210,19 @@
return ardRouteMissionMapper.updateIsRead(ids, isRead);
}
+ /**
+ * 校验航线任务是否可以创建航线
+ *
+ * @param missionId 航线任务ID
+ * @return 结果
+ */
+ @Override
+ public Boolean selectRouteMissionNot(String missionId) {
+ ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(missionId);
+ if (mission != null){
+ throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
+ }
+ return true;
+ }
+
}
--
Gitblit v1.9.3