| | |
| | | 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.stereotype.Service; |
| | | import com.ard.route.mapper.ArdRouteMissionMapper; |
| | | import com.ard.route.service.IArdRouteMissionService; |
| | | |
| | | import static com.ard.common.utils.SecurityUtils.getUserId; |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private ArdRoutePointMapper ardRoutePointMapper; |
| | | |
| | | @Autowired |
| | | private SysUserMapper sysUserMapper; |
| | | |
| | | /** |
| | | * 查询航线任务 |
| | |
| | | ardRouteMission.setExecuteStatus("0"); |
| | | ardRouteMission.setIsRead("0"); |
| | | ardRouteMission.setCreateTime(DateUtils.getNowDate()); |
| | | ardRouteMission.setIssuerTime(DateUtils.getNowDate()); |
| | | ardRouteMission.setIssuerName(getUserName(ardRouteMission.getIssuerId())); |
| | | dataProcessingRoutePoint(ardRouteMission.getMissionDetailList(),ardRouteMission.getId()); |
| | | Long userId = ardRouteMission.getIssuerId().longValue(); |
| | | try { |
| | | log.debug("给用户{}定时推送,航线任务信息", ardRouteMission.getIssuerName()); |
| | | MiWebSocketUtils.sendMessage(userId,JSON.toJSONString(ardRouteMission)); |
| | | MiWebSocketUtils.sendMessage(ardRouteMission.getIssuerId(),JSON.toJSONString(ardRouteMission)); |
| | | } catch (Exception e) { |
| | | log.error("Error sending message to session {}", ardRouteMission.getIssuerName(), e); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public int updateArdRouteMission(ArdRouteMission ardRouteMission) { |
| | | validateForCreate(ardRouteMission,"2"); |
| | | 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) { |
| | | // 删除航线任务时只能删除自己的航线任务 |
| | | 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() + "】,无法执行操作!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public int deleteArdRouteMissionById(String id) { |
| | | ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(id); |
| | | if (ardRouteMission != null){ |
| | | validateForCreate(ardRouteMission,"1"); |
| | | } |
| | | ardRoutePointMapper.deleteArdRoutePointByMissionId(id); |
| | | return ardRouteMissionMapper.deleteArdRouteMissionById(id); |
| | | } |
| | |
| | | /** |
| | | * 批量修改航线任务已读状态 |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | } |