zhaowenyu
2026-02-06 ffe731d748e54363c715048a03857788ee62ba21
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
@@ -1,18 +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业务层处理
@@ -21,6 +28,7 @@
 * @date 2026-01-20
 */
@Service
@Slf4j
public class ArdRouteMissionServiceImpl implements IArdRouteMissionService {
    @Autowired
@@ -28,6 +36,9 @@
    @Autowired
    private ArdRoutePointMapper ardRoutePointMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    /**
     * 查询航线任务
@@ -71,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));
//           }
//        }
//    }
    /**
     * 修改航线任务
@@ -85,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();
    }
    /**
@@ -139,10 +185,26 @@
        ArdRouteMission ardRouteMission = new ArdRouteMission();
        ardRouteMission.setId(id);
        ardRouteMission.setExecuteStatus(status);
        ardRouteMission.setExecuteBy(SecurityUtils.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);
    }
}