package cn.iocoder.yudao.module.remote.service.task;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.api.remote.RemoteExceptionTaskApi;
import cn.iocoder.yudao.module.system.api.remote.dto.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.TASK_COMMONG_FAIL;

@Slf4j
@Service
public class RemoteTaskServiceImpl implements RemoteTaskService {

    @Resource
    private RemoteExceptionTaskApi remoteExceptionTaskApi;



    /**
     * 远遥查询异常的车辆
     * @param remoteTaskQuery
     * @return
     */
    @Override
    public PageResult<RemoteExceptionTaskDetailDTO> getExceptionTaskDetail(RemoteTaskQueryDTO remoteTaskQuery) {
        return remoteExceptionTaskApi.getExceptionTaskDetail(remoteTaskQuery);
    }

    /**
     * 查摄像头信息
     * @param robotNo
     * @return
     */
    @Override
    public List<RemoteRobotCameraDTO> getCarmeraByRobotNo(String robotNo) {
        CommonResult<List<RemoteRobotCameraDTO>> result = remoteExceptionTaskApi.getCarmeraByRobotNo(robotNo);
        if (!result.isSuccess()){
            throw exception0(TASK_COMMONG_FAIL.getCode(), result.getMsg());
        }
        return result.getData();
    }

    /**
     * 任务转移
     * @param remoteTaskTransfer
     */
    @Override
    public void remoteTransferTask(RemoteTaskTransferDTO remoteTaskTransfer) {
        CommonResult<Boolean> result = remoteExceptionTaskApi.remoteTransferTask(remoteTaskTransfer);
        if (!result.isSuccess()){
            throw exception0(TASK_COMMONG_FAIL.getCode(), result.getMsg());
        }
    }
}
