From ffe731d748e54363c715048a03857788ee62ba21 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Fri, 06 Feb 2026 17:14:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java |   70 ++++++++++++++++++++++++++++++++++-
 1 files changed, 68 insertions(+), 2 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 ea5facc..686d42a 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
@@ -1,17 +1,25 @@
 package com.ard.route.service.impl;
 
 import java.util.List;
+
+import com.alibaba.fastjson2.JSON;
+import com.ard.common.core.domain.entity.SysUser;
 import com.ard.common.utils.DateUtils;
+import com.ard.common.utils.SecurityUtils;
 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;
+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.getUsername;
 
 /**
  * 航线任务Service业务层处理
@@ -20,6 +28,7 @@
  * @date 2026-01-20
  */
 @Service
+@Slf4j
 public class ArdRouteMissionServiceImpl implements IArdRouteMissionService {
 
     @Autowired
@@ -27,6 +36,9 @@
 
     @Autowired
     private ArdRoutePointMapper ardRoutePointMapper;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
     /**
      * 查询航线任务
@@ -70,10 +82,38 @@
     public int insertArdRouteMission(ArdRouteMission ardRouteMission) {
         ardRouteMission.setId(IdUtils.simpleUUID());
         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 {
+            log.debug("给用户{}定时推送,航线任务信息", ardRouteMission.getIssuerName());
+            MiWebSocketUtils.sendMessage(ardRouteMission.getIssuerId(),JSON.toJSONString(ardRouteMission));
+        } catch (Exception e) {
+            log.error("Error sending message to session {}", ardRouteMission.getIssuerName(), e);
+        }
         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));
+//           }
+//        }
+//    }
+
 
     /**
      * 修改航线任务
@@ -84,11 +124,18 @@
     @Override
     public int updateArdRouteMission(ArdRouteMission ardRouteMission) {
         ardRouteMission.setUpdateTime(DateUtils.getNowDate());
+        ardRouteMission.setIssuerName(getUserName(ardRouteMission.getIssuerId()));
         // 删除航线任务航点
         ardRoutePointMapper.deleteArdRoutePointByMissionId(ardRouteMission.getId());
         // 重新插入航线任务航点
         dataProcessingRoutePoint(ardRouteMission.getMissionDetailList(),ardRouteMission.getId());
         return ardRouteMissionMapper.updateArdRouteMission(ardRouteMission);
+    }
+
+    // 获取用户名称
+    private String getUserName(Long userId) {
+        SysUser sysUser = sysUserMapper.selectUserById(userId);
+        return sysUser.getUserName();
     }
 
     /**
@@ -109,6 +156,8 @@
      */
     @Override
     public int deleteArdRouteMissionByIds(String[] ids) {
+        // 删除航线任务航点
+        ardRoutePointMapper.deleteArdRoutePointByMissionId(ids[0]);
         return ardRouteMissionMapper.deleteArdRouteMissionByIds(ids);
     }
 
@@ -120,6 +169,7 @@
      */
     @Override
     public int deleteArdRouteMissionById(String id) {
+        ardRoutePointMapper.deleteArdRoutePointByMissionId(id);
         return ardRouteMissionMapper.deleteArdRouteMissionById(id);
     }
 
@@ -135,10 +185,26 @@
         ArdRouteMission ardRouteMission = new ArdRouteMission();
         ardRouteMission.setId(id);
         ardRouteMission.setExecuteStatus(status);
-        ardRouteMission.setExecuteBy(getUsername());
+        ardRouteMission.setExecuteName(SecurityUtils.getUsername());
         ardRouteMission.setExecuteTime(DateUtils.getNowDate());
         ardRouteMission.setUpdateTime(DateUtils.getNowDate());
         return ardRouteMissionMapper.updateArdRouteMission(ardRouteMission);
     }
 
+    /**
+     * 批量修改航线任务已读状态
+     *
+     * @param updateMission 批量修改已读类型实体
+     * @return 结果
+     */
+    @Override
+    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);
+    }
+
 }

--
Gitblit v1.9.3