package com.tofly.ghrq_route.module.plan.service;

import android.content.Context;

import com.tofly.ghrq_route.module.plan.controller.PlanCallBack;
import com.tofly.ghrq_route.module.plan.domain.OfflinePathBean;

import java.util.List;

/**
 * Created by Amu on 2017/3/18.
 */

public interface IPlanService {
    /**
     *  获取巡检列表
     */
    public void getPlanList(String token, String userid, int state, int period, int plan_mode, int pageindex, int pagesize, final PlanCallBack planCallBack);

    /**
     *  获取巡检列表(移动端）
     */
    public void getPlanListMobile(Context context, String userid, int state, int period, int plan_mode, int pageindex, int pagesize, final PlanCallBack planCallBack);

    /**
     *  根据巡检id获取巡检信息
     */
    public void getPlanInfo(String token, String childplanid, final PlanCallBack planCallBack);

    /**
     *  获取当日的巡检计划个数
     */
    public void getTodayPlanCount(Context context, String userid, int plan_mode, List<String> localPlanIds, final PlanCallBack planCallBack);

    /**
     *  巡检计划批量转移申请
     */
    public void transferPlanApply(Context context, List<String> planids, String note, final PlanCallBack planCallBack);

    /**
     *  获取巡检任务的点
     */
    public void getPlanPointList(String token, String planid, int pageindex, int pagesize, final PlanCallBack planCallBack);

    /**
     *  获取巡检子计划列表
     */
    public void getChildPlanList(String token, String planid, int pageindex, int pagesize, final PlanCallBack planCallBack);

    /**
     *  获取巡检子计划任务的点
     */
    public void getChildPlanPointList(String token, String childid, int pageindex, int pagesize, final PlanCallBack planCallBack);


    /**
     *  根据子计划id获取子计划信息
     */
    public void getChildPlanInfo(final String token, String childplanid, final PlanCallBack planCallBack);

    /**
     *  获取当天巡检任务的所有巡检点
     */
    public void getOfflinePathList(String token, String userid, String planIds, final PlanCallBack planCallBack);

    /**
     *  获取当天巡检任务的所有巡检点-分页查询
     */
    public void getOfflinePathListByPage(final String token, final String userid, final String planIds, int pageindex, int pagesize, final PlanCallBack planCallBack);

    /**
     *  更新当天巡检线所属点的到位情况
     */
    public void updatePathOver(String token, List<OfflinePathBean> pathBeanList, final PlanCallBack planCallBack);

    /**
     *  更新当天巡检点到位情况
     */
    public void updatePointOver(String token, List<OfflinePathBean> pathBeanList, final PlanCallBack planCallBack);

    /**
     *  更新当天巡检线的到位点第一次离开范围的时间
     */
    public void updatePathOffTime(String token, List<OfflinePathBean> pathBeanList, final PlanCallBack planCallBack);

    /**
     *  向服务器申请重新计算巡检计划某天的完成率
     */
    public void applyRecalculatePlanPercent(String token, String childPlanId, String date, final PlanCallBack planCallBack);

    /**
     *  获取重算完成后该计划需要更新的到位点
     */
    public void getRecalculatePlanPoints(String token, String childPlanId, final PlanCallBack planCallBack);

    /**
     *  通知服务器当前重算的计划的到位点已同步到本地 服务器设置state=3
     */
    public void updateRecalculatePlanState(String token, String childPlanId, final PlanCallBack planCallBack);
}
