package com.usky.fire.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.fire.domain.PatrolInspectionAbnormal;
import com.usky.common.mybatis.core.CrudService;
import com.usky.fire.domain.PatrolInspectionRecord;
import com.usky.fire.service.vo.PatrolInspectionAbnormalExportVo;
import com.usky.fire.service.vo.PatrolInspectionAbnormalVo;
import com.usky.fire.service.vo.PatrolInspectionRecordVo;

import java.util.List;

/**
 * <p>
 * 巡检异常记录表 服务类
 * </p>
 *
 * @author fu
 * @since 2024-06-13
 */
public interface PatrolInspectionAbnormalService extends CrudService<PatrolInspectionAbnormal> {
    /**
     * 新增巡检异常记录
     * @param patrolInspectionAbnormal 异常记录表实体
     */
    void addAbnormal(PatrolInspectionAbnormal patrolInspectionAbnormal);

    /**
     * 异常记录分页接口
     * @param areaName      区域名称
     * @param siteName      地点名称
     * @param name          人员名称
     * @param planType      计划类型
     * @param routeId       路线id
     * @param startDateTime 开始时间
     * @param endDateTime   结束时间
     * @param pageNum       当前页
     * @param pageSize      每页条数
     * @return
     */
    CommonPage<PatrolInspectionAbnormal> recordList(String areaName, String siteName, String name,
                                                  Integer planType, Integer routeId,
                                                  String startDateTime, String endDateTime,
                                                  Integer pageNum, Integer pageSize);

    /**
     * 异常巡检记录详情
     * @param id
     * @return
     */
    List<PatrolInspectionAbnormalVo> recordDetails(Integer id);

    /**
     * 异常记录导出
     * @param areaName      区域名称
     * @param siteName      地点名称
     * @param name          人员名称
     * @param planType      计划类型
     * @param routeId       路线id
     * @param startDateTime 开始时间
     * @param endDateTime   结束时间
     * @return
     */
    List<PatrolInspectionAbnormalExportVo> abnormalListExport(String areaName, String siteName, String name,
                                                              Integer planType, Integer routeId,
                                                              String startDateTime, String endDateTime);
}
