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/impl/ArdRouteMissionServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 48 insertions(+), 4 deletions(-)
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 e23626c..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
@@ -9,6 +9,7 @@
import com.ard.common.utils.uuid.IdUtils;
import com.ard.route.domain.route.ArdRouteMission;
import com.ard.route.domain.route.ArdRoutePoint;
+import com.ard.route.domain.route.UpdateMission;
import com.ard.route.mapper.ArdRoutePointMapper;
import com.ard.route.websocket.utils.MiWebSocketUtils;
import com.ard.system.mapper.SysUserMapper;
@@ -17,6 +18,8 @@
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;
/**
@@ -82,6 +85,7 @@
ardRouteMission.setExecuteStatus("0");
ardRouteMission.setIsRead("0");
ardRouteMission.setCreateTime(DateUtils.getNowDate());
+ ardRouteMission.setIssuerTime(DateUtils.getNowDate());
ardRouteMission.setIssuerName(getUserName(ardRouteMission.getIssuerId()));
dataProcessingRoutePoint(ardRouteMission.getMissionDetailList(),ardRouteMission.getId());
try {
@@ -101,6 +105,7 @@
*/
@Override
public int updateArdRouteMission(ArdRouteMission ardRouteMission) {
+ validateForCreate(ardRouteMission,"2");
ardRouteMission.setUpdateTime(DateUtils.getNowDate());
ardRouteMission.setIssuerName(getUserName(ardRouteMission.getIssuerId()));
// 删除航线任务航点
@@ -134,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() + "】,无法执行操作!");
+ }
+ }
}
/**
@@ -147,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);
}
@@ -172,13 +197,32 @@
/**
* 批量修改航线任务已读状态
*
- * @param ids 主键集合
- * @param isRead 已读状态
+ * @param updateMission 批量修改已读类型实体
* @return 结果
*/
@Override
- public int updateIsRead(String[] ids, String isRead) {
- return ardRouteMissionMapper.updateIsRead(ids,isRead);
+ public int updateIsRead(UpdateMission updateMission) {
+ if (updateMission == null || updateMission.getIds() == null || updateMission.getIds().length == 0) {
+ return 0;
+ }
+ String[] ids = updateMission.getIds();
+ String isRead = updateMission.getIsRead();
+ 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