package com.yeejoin.amos.patrol.business.service.intfc;

import com.yeejoin.amos.patrol.business.param.PlanInfoPageParam;
import com.yeejoin.amos.patrol.core.common.response.AppPointCheckRespone;
import com.yeejoin.amos.patrol.dao.entity.Plan;
import org.springframework.data.domain.Page;

import java.util.HashMap;
import java.util.List;

public interface IPlanService {
	/**
	 * 巡检计划查询
	 * @param commonPageable 
	 * @param param
	 * @return
	 */
	Page<HashMap<String, Object>> getPlanInfo(PlanInfoPageParam param);
	
	/**
	 * 巡检计划新增及维护
	 * @param map
	 */
	Plan addPlan(HashMap<String, Object> map);

	/**
	 * 根据任务id点id 获取点详情
	 * @param planTaskId
	 * @param pointId
	 * @return
	 */
	AppPointCheckRespone queryPointPlanTaskDetail(String toke, String product, String appKey, Long planTaskId, Long pointId);
	
	/**
	 * 巡检计划删除
	 */
	void delPlanById(Long[] param);

	/**
	 * 巡检计划另存
	 */
	void planSaveAs(Long[] param);
	/**
	 * 巡检路线查询
	 */

	/**
	 * 根据路线id获取关联的所有计划
	 * 
	 * @param routeId
	 * @return
	 */
	List<Plan> getPlanByRouteId(Long routeId);
	
	/**
	 * 停用计划
	 * 
	 * @param routeIds
	 */
	void disablePlan(Long[] routeIds);
	/**
	 * 巡检计划查询
	 * @param id
	 * @return
	 */
	Plan queryPlanById(Long id);
	/**
	 * 巡检计划查询,不分页
	 * @param commonPageable 
	 * @param param
	 * @return
	 */
	List<HashMap<String, Object>> getPlanInfoNoPage(PlanInfoPageParam param);

	/**
	 * 	手机根据登录orgcode查询计划列表
	 * @param loginOrgCode
	 * @return
	 */
	List<HashMap<String, Object>> queryPlanListByOrgCode(String loginOrgCode);

	
}
