/*
 * Author: wangjian
 * 生成Service
 */
package com.tofly.gpsboot.service.paln.task;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.pojo.plan.PlanFactory;
import com.tofly.pojo.plan.TfYwpnStationReport;
import com.tofly.pojo.plan.TfYwpnWorkingCondition;
import com.tofly.pojo.plan.dto.PlanDeviceDTO;
import com.tofly.pojo.statement.dto.InspectionStatementDto;
import com.tofly.pojo.statement.vo.MaintenancePlanVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


/**
 * 计划下发厂站设备关联
 *
 * @author admin
 * @date Thu Mar 25 00:00:00 CST 2021
 */
public interface PlanFactoryService extends IService<PlanFactory> {
    /**
     * 处理巡检计划到位
     * @param planFactoryList
     * @return
     */
    Boolean senPlanFactory(List<PlanFactory> planFactoryList,Long userId);

    /**
     * 更新巡检计划到位详情
     * @param fileList
     * @param planFactory
     * @return
     */
    Boolean updatePlanFactory(List<MultipartFile> fileList,
                              List<MultipartFile> looksPhoto,
                              List<MultipartFile> pretreatmentPhoto,
                              List<MultipartFile> twoTankPhoto,
                              List<MultipartFile> outWaterOpenChannel,
                              List<MultipartFile> flowmeter,
                              List<MultipartFile> sample,
                              List<MultipartFile> aerationTankPhoto,
                              PlanFactory planFactory,
                              Long userId,
                              TfYwpnWorkingCondition workingCondition,
                              TfYwpnStationReport stationReport);

    /**
     * 手动结束巡检计划
     * @param planId
     * @return
     */
    Boolean updatePlanOver(Long planId);

    /**
     * 根据巡检类型获取设备列表
     * @param page
     * @param dto
     * @return
     */
    Page<PlanFactory> getPlanDeviceList(Page page , PlanDeviceDTO dto);
    /**
     * 获取设备维护巡检统计信息
     * @param page
     * @param dto
     * @return
     */
    Page<MaintenancePlanVo> getMaintenanceStatisticsPlan(Page page, InspectionStatementDto dto);
}
