package com.srs.survey.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.common.core.domain.AjaxResult;
import com.srs.comprehensive.domain.ViewStuInfo;
import com.srs.survey.domain.SurItinerary;
import com.srs.survey.domain.dto.LeaveRes;
import com.srs.survey.domain.dto.ReturnRes;
import com.srs.survey.domain.dto.SubmitRes;
import com.srs.survey.domain.dto.XwReturnRes;
import com.srs.survey.domain.vo.SurItineraryStatisticsVo;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 学生假期返校Service接口
 *
 * @author srs
 * @date 2025-03-14
 */
public interface ISurItineraryService extends IService<SurItinerary> {


    public AjaxResult sendFdyStuLeaveMsg(SurItinerary param);
    public AjaxResult sendFdyStuReturnMsg(SurItinerary param);

    public Map<String,Object> listFdyStuReturn(SurItinerary param);

    public Map<String,Object> listFdyStuLeave(SurItinerary param);

    public List<Map<String, Object>> listXwSubmitRes(Long surveyId ,  Long deptId);

    public List<Map<String, Object>> listSubmitRes(Long surveyId);

    public List<Map<String, Object>> countWillLeave(Long surveyId);


    public List<Map<String, Object>> countXwWillLeave(Long surveyId,Long deptId);

    public List<Map<String, Object>> countFdyClassWillLeave(Long surveyId,String fdyNo);

    public List<Map<String, Object>> listReturnRes1(Long surveyId);

    public List<Map<String, Object>> listXwReturnRes1(Long surveyId,Long deptId);

    public List<LeaveRes> listLeaveRes(Long surveyId);

    public List<XwReturnRes> listXwReturnRes(SurItinerary param);

    public List<ReturnRes> listReturnRes(Long surveyId);

    public AjaxResult getStuCampus();

    public AjaxResult updateStuHomeGpsAddr(SurItinerary param);

    public AjaxResult stuSchoolUpdate(SurItinerary param);

    public AjaxResult manyReturnAudit(Long[] ids);

    public AjaxResult returnAudit(SurItinerary param);

    public AjaxResult stuWillReturnUpdate(SurItinerary param);

    public AjaxResult boolStuOwnReturn(Long id);

    public AjaxResult stuHomeUpdate(SurItinerary param);

    public AjaxResult manyLeaveAudit(Long[] ids);

    public AjaxResult manyLeaveReject(Long[] ids);

    public AjaxResult leaveAudit(SurItinerary param);

    public List<SurItinerary> listView(SurItinerary param);

    public AjaxResult stuGetRecordBySvId(Long svId) ;

    public AjaxResult stuLeaveApply(SurItinerary param) ;

    /**
     * 查询学生假期返校
     *
     * @param returnSchoolId 学生假期返校主键
     * @return 学生假期返校
     */
    public SurItinerary selectSurItineraryByReturnSchoolId(Long returnSchoolId);

    /**
     * 查询学生假期返校列表
     *
     * @param surItinerary 学生假期返校
     * @return 学生假期返校集合
     */
    List<SurItinerary> selectSurItineraryList(SurItinerary surItinerary);

    /**
     * 新增学生假期返校
     *
     * @param surItinerary 学生假期返校
     * @return 结果
     */
    int insertSurItinerary(SurItinerary surItinerary);

    /**
     * 修改学生假期返校
     *
     * @param surItinerary 学生假期返校
     * @return 结果
     */
    int updateSurItinerary(SurItinerary surItinerary);

    /**
     * 批量删除学生假期返校
     *
     * @param returnSchoolIds 需要删除的学生假期返校主键集合
     * @return 结果
     */
    int deleteSurItineraryByReturnSchoolIds(Long[] returnSchoolIds);

    /**
     * 删除学生假期返校信息
     *
     * @param returnSchoolId 学生假期返校主键
     * @return 结果
     */
    int deleteSurItineraryByReturnSchoolId(Long returnSchoolId);
    /**
     * 审核学生
     */
    int auditItinerary(Long returnSchoolId);
    int batchAuditItinerary(Long[] returnSchoolId);

    List<SurItineraryStatisticsVo> getItineraryStatistics(Long surveyId);

}
