package com.ard.route.service.impl; import java.util.List; import com.ard.common.utils.DateUtils; 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.mapper.ArdRoutePointMapper; 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.getUsername; /** * 航线任务Service业务层处理 * * @author xia * @date 2026-01-20 */ @Service public class ArdRouteMissionServiceImpl implements IArdRouteMissionService { @Autowired private ArdRouteMissionMapper ardRouteMissionMapper; @Autowired private ArdRoutePointMapper ardRoutePointMapper; /** * 查询航线任务 * * @param id 航线任务主键 * @return 航线任务 */ @Override public ArdRouteMission selectArdRouteMissionById(String id) { ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(id); ardRouteMission.setMissionDetailList(getMissionDetailList(id)); return ardRouteMission; } /** * 查询航线任务列表 * * @param ardRouteMission 航线任务 * @return 航线任务 */ @Override public List selectArdRouteMissionList(ArdRouteMission ardRouteMission) { List list = ardRouteMissionMapper.selectArdRouteMissionList(ardRouteMission); for (ArdRouteMission routeMission : list) { routeMission.setMissionDetailList(getMissionDetailList(routeMission.getId())); } return list; } private List getMissionDetailList(String missionId) { return ardRoutePointMapper.selectArdRoutePointByMissionId(missionId); } /** * 新增航线任务 * * @param ardRouteMission 航线任务 * @return 结果 */ @Override public int insertArdRouteMission(ArdRouteMission ardRouteMission) { ardRouteMission.setId(IdUtils.simpleUUID()); ardRouteMission.setExecuteStatus("0"); ardRouteMission.setCreateTime(DateUtils.getNowDate()); dataProcessingRoutePoint(ardRouteMission.getMissionDetailList(),ardRouteMission.getId()); return ardRouteMissionMapper.insertArdRouteMission(ardRouteMission); } /** * 修改航线任务 * * @param ardRouteMission 航线任务 * @return 结果 */ @Override public int updateArdRouteMission(ArdRouteMission ardRouteMission) { ardRouteMission.setUpdateTime(DateUtils.getNowDate()); // 删除航线任务航点 ardRoutePointMapper.deleteArdRoutePointByMissionId(ardRouteMission.getId()); // 重新插入航线任务航点 dataProcessingRoutePoint(ardRouteMission.getMissionDetailList(),ardRouteMission.getId()); return ardRouteMissionMapper.updateArdRouteMission(ardRouteMission); } /** * 航线任务航点对象数据加工 */ private void dataProcessingRoutePoint(List missionDetailList,String missionId){ for (ArdRoutePoint missionDetail : missionDetailList) { missionDetail.setMissionId(missionId); } ardRoutePointMapper.insertArdRoutePointS(missionDetailList); } /** * 批量删除航线任务 * * @param ids 需要删除的航线任务主键 * @return 结果 */ @Override public int deleteArdRouteMissionByIds(String[] ids) { return ardRouteMissionMapper.deleteArdRouteMissionByIds(ids); } /** * 删除航线任务信息 * * @param id 航线任务主键 * @return 结果 */ @Override public int deleteArdRouteMissionById(String id) { return ardRouteMissionMapper.deleteArdRouteMissionById(id); } /** * 修改航线任务状态 * * @param id 航线任务主键 * @param status 状态类型 * @return 结果 */ @Override public int updateArdRouteMissionStatus(String id, String status) { ArdRouteMission ardRouteMission = new ArdRouteMission(); ardRouteMission.setId(id); ardRouteMission.setExecuteStatus(status); ardRouteMission.setExecuteBy(getUsername()); ardRouteMission.setExecuteTime(DateUtils.getNowDate()); ardRouteMission.setUpdateTime(DateUtils.getNowDate()); return ardRouteMissionMapper.updateArdRouteMission(ardRouteMission); } }