package com.ruoyi.drill.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.drill.domain.DrillPlan;
import com.ruoyi.drill.dto.DrillPlanDto;
import com.ruoyi.drill.dto.DrillPlanListDto;
import com.ruoyi.drill.dto.DrillPlanResultDto;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface IDrillPlanService extends IService<DrillPlan> {

    /**
     * 新增或修改演习计划
     *
     * @param drillPlan 保存参数
     * @return 是否成功
     * @author matianxiang
     * @date 2023/8/8 16:48
     */
    AjaxResult saveAndUpdateDrillPlan(DrillPlanDto drillPlan);

    /**
     * 启动演习
     *
     * @param drillPlan
     * @return
     * @author matianxiang
     * @date 2023/8/9 15:44
     */
    AjaxResult startPlanForApp(DrillPlanDto drillPlan);

    /**
     * 保存演习总结
     *
     * @param drillPlan
     * @return
     * @author matianxiang
     * @date 2023/8/9 17:04
     */
    AjaxResult summaryPlan(DrillPlanResultDto drillPlan);

    /**
     * 完成进度统计
     *
     * @param year 年度
     * @return
     * @author matianxiang
     * @date 2023/8/10 9:38
     */
    AjaxResult statistics(String year);

    /**
     * 消息的定时任务
     *
     * @param
     * @return
     * @author matianxiang
     * @date 2023/8/10 9:38
     */
    AjaxResult checkPlan();

    /**
     * APP获取演习计划详情
     * 添加权限校验，领导时需要判断当前账号是否为演习组织人
     * @param id 演习计划ID
     * @param drillStatus 演习状态：1-未完成；2-已完成(drill_plan)
     * @return
     */
    AjaxResult getInfo(String id,Long drillStatus);

    /**
     * PC获取演习计划详情
     * @param id
     * @return
     */
    AjaxResult getInfoPC(String id);

    List<DrillPlanListDto> findList(DrillPlan drillPlan);

    AjaxResult removePlan(String ids);
}
