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

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

import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.supervision.core.common.response.PlanPointRespone;
import org.springframework.data.domain.Page;

import com.yeejoin.amos.supervision.business.param.PlanInfoPageParam;
import com.yeejoin.amos.supervision.dao.entity.Plan;

public interface IPlanService {
	/**
	 * 巡检计划查询
	 * @param param
	 * @return Page<HashMap<String, Object>>
	 */
	Page<HashMap<String, Object>> getPlanInfo(PlanInfoPageParam param);
	
	/**
	 * 巡检计划新增及维护
	 * @param map
	 * @param reginParams
	 */
	void addPlan(HashMap<String, Object> map, ReginParams reginParams) throws Exception;
	
	/**
	 * 巡检计划删除
	 */
	void delPlanById(String[] param);

	/**
	 * 巡检计划另存
	 */
	void planSaveAs(String[] 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);

	/**
	 * 计划启用停用
	 */
	void setplanstatus(Long id, Integer status);

	/**
	 * 获取计划详情
	 */
	PlanPointRespone getplandetails(Long id);
}
