| | |
| | | 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业务层处理 |
| | |
| | | * @date 2026-01-20 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class ArdRouteMissionServiceImpl implements IArdRouteMissionService { |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Autowired |
| | | private ArdRoutePointMapper ardRoutePointMapper; |
| | | |
| | | @Autowired |
| | | private SysUserMapper sysUserMapper; |
| | | |
| | | /** |
| | | * 查询航线任务 |
| | |
| | | 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)); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | |
| | | /** |
| | | * 修改航线任务 |
| | |
| | | @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(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public int deleteArdRouteMissionByIds(String[] ids) { |
| | | // 删除航线任务航点 |
| | | ardRoutePointMapper.deleteArdRoutePointByMissionId(ids[0]); |
| | | return ardRouteMissionMapper.deleteArdRouteMissionByIds(ids); |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public int deleteArdRouteMissionById(String id) { |
| | | ardRoutePointMapper.deleteArdRoutePointByMissionId(id); |
| | | return ardRouteMissionMapper.deleteArdRouteMissionById(id); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |