package com.tuoheng.admin.task;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tuoheng.admin.entity.domain.ThMission;
import com.tuoheng.admin.enums.MarkTypeEnum;
import com.tuoheng.admin.enums.TaskStatusEnum;
import com.tuoheng.admin.mapper.ThMissionMapper;
import com.tuoheng.admin.service.IMissionService;
import com.tuoheng.admin.service.IThInspectionService;
import com.tuoheng.common.utils.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

@Component
@Slf4j
public class ScheduledTask {

    @Autowired
    private ThMissionMapper missionMapper;

    @Autowired
    private IThInspectionService inspectionService;


    private final static SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


/*    @Scheduled(fixedRate = 3000)
    public void scheduledTask() {

        log.info("执行定时执行飞行任务：" + LocalDateTime.now());



        List<ThMission> thMissions = missionMapper.selectList(new LambdaQueryWrapper<ThMission>()
                .eq(ThMission::getMark, MarkTypeEnum.VALID.getCode())
                .ge(ThMission::getExecutionStartTime, dateformat.format(new Date()))
                .ge(ThMission::getExecutionStatus, 1)
                .eq(ThMission::getStatus, TaskStatusEnum.WAIT.getCode()));

        log.info("一秒钟一次");

        for (ThMission thMission : thMissions) {
            JsonResult jsonResult = inspectionService.executeTask(String.valueOf(thMission.getId()));
            thMission.setExecutionStatus(2);
            if(jsonResult.getCode()!=0 && ObjectUtil.isEmpty(jsonResult.getData())){
                thMission.setStatus(TaskStatusEnum.FAIL.getCode());
            }
            missionMapper.updateById(thMission);
        }
    }*/
}
