package com.tofly.qualitycontrol.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.qualitycontrol.dto.PlanDTO;
import com.tofly.qualitycontrol.dto.PlanReportDTO;
import com.tofly.qualitycontrol.entity.Plan;
import com.tofly.qualitycontrol.vo.PlanAuditVO;
import com.tofly.qualitycontrol.vo.PlanManageVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 时间配置
 *
 * @author B
 */
public interface IPlanService extends IService<Plan> {

	/**
	 * 新增质检计划,上传文件
	 *
	 * @param plan
	 * @param fileList
	 * @return java.lang.Boolean
	 **/
	Boolean savePlan(Plan plan,List<MultipartFile> fileList);

	/**
	 * 修改质检计划
	 *
	 * @param plan
	 * @param fileList
	 * @return java.lang.Boolean
	 **/
	Boolean updatePlan(Plan plan,List<MultipartFile> fileList);

	/**
	 * 计划管理分页,查询
	 *
	 * @param planMonth
	 * @param planStatus
	 * @param page
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.tofly.qualitycontrol.vo.PlanManageVO>
	 **/
	IPage<PlanManageVO> getManageList(String planTime,String planStatus,Page<Plan> page);

	/**
	 * 上报质检计划
	 *
	 * @param planReportDTO
	 * @return java.lang.Boolean
	 **/
	Boolean reportPlan(PlanReportDTO planReportDTO);

	/**
	 * 计划审核分页,查询
	 *
	 * @param planTime
	 * @param planStatus
	 * @param page
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.tofly.qualitycontrol.vo.PlanAuditVO>
	 **/
	IPage<PlanAuditVO> getAuditList(Long reporterDeptIdId,String planTime,String planStatus,Page<Plan> page);

	/**
	 * 审核详情,包含计划信息和审核历史
	 *
	 * @param id
	 * @return com.tofly.qualitycontrol.dto.PlanDTO
	 **/
	PlanDTO getDetailAndHistoryList(Long id,Long type);

	/**
	 * 审核计划
	 *
	 * @param id
	 * @param auditResult
	 * @param auditDesc
	 * @return java.lang.Boolean
	 **/
	Boolean auditPlan(Long id,String auditResult,String auditDesc);

}
