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

import com.tofly.ghrq_route.module.plan.domain.ChildPlanCountBean;
import com.tofly.ghrq_route.module.plan.domain.OfflinePathBean;
import com.tofly.ghrq_route.module.plan.domain.PlanBean;

import java.util.List;

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

public interface IPlanCallBack {
    /**
     *
     * 方法名： onGetPlanList <br>
     * 功能：返回getPlanList的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; planList:巡检计划列表 total;总个数
     * 返回值： void<br>
     * 异常：
     */
    public void onGetPlanList(boolean isSuccess, int errorCode, String errMsg, List<PlanBean> planList, int total);

    /**
     *
     * 方法名： onGetPlanInfo <br>
     * 功能：返回getPlanInfo的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; plan:巡检计划
     * 返回值： void<br>
     * 异常：
     */
    public void onGetPlanInfo(boolean isSuccess, int errorCode, String errMsg, PlanBean plan);

    /**
     *
     * 方法名： onGetTodayPlanCount <br>
     * 功能：返回getTodayPlanCount的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语 total;个数
     * 返回值： void<br>
     * 异常：
     */
    public void onGetTodayPlanCount(boolean isSuccess, int errorCode, String errMsg, int total, List<ChildPlanCountBean> planCounts);

    /**
     *
     * 方法名： onTransferPlanApply <br>
     * 功能：返回transferPlanApply的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onTransferPlanApply(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onGetPlanPointList <br>
     * 功能：返回getPlanPointList的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; planPointList:巡检计划列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetPlanPointList(boolean isSuccess, int errorCode, String errMsg, List<OfflinePathBean> planPointList);

    /**
     *
     * 方法名： onGetChildPlanList <br>
     * 功能：返回getChildPlanList的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; planList:巡检计划列表 total;总个数
     * 返回值： void<br>
     * 异常：
     */
    public void onGetChildPlanList(boolean isSuccess, int errorCode, String errMsg, List<PlanBean> childPlanList, int total);

    /**
     *
     * 方法名： onGetChildPlanPointList <br>
     * 功能：返回getChildPlanPointList的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; planPointList:巡检计划列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetChildPlanPointList(boolean isSuccess, int errorCode, String errMsg, List<OfflinePathBean> planPointList);


    /**
     *
     * 方法名： 获取子计划的详细信息 <br>
     * 功能：返回getChildPlanInfo的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; childPlan:子计划信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetChildPlanInfo(boolean isSuccess, int errorCode, String errMsg, PlanBean childPlan);

    /**
     *
     * 方法名： onGetOfflinePathList <br>
     * 功能：返回getOfflinePathList的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; offlinePathList:当天所有巡检点
     * 返回值： void<br>
     * 异常：
     */
    public void onGetOfflinePathList(boolean isSuccess, int errorCode, String errMsg, List<OfflinePathBean> offlinePathList);

    /**
     *  更新当天巡检线所属点的到位情况
     * 功能：返回updatePathOver的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdatePathOver(boolean isSuccess, int errorCode, String errMsg, List<String> transferedIds);

    /**
     *  更新当天巡检点到位情况
     * 功能：返回updatePointOver的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdatePointOver(boolean isSuccess, int errorCode, String errMsg, List<String> transferedIds);

    /**
     *  更新当天巡检线的到位点第一次离开范围的时间
     * 功能：返回updatePathOffTime的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdatePathOffTime(boolean isSuccess, int errorCode, String errMsg);


    /**
     *  上传本地巡检计划下载情况日志到服务器
     * 功能：返回uploadPlanPointLog的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUploadPlanPointLog(boolean isSuccess, int errorCode, String errMsg);


    /**
     *  向服务器申请重新计算巡检计划某天的完成率
     * 功能：返回applyRecalculatePlanPercent的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onApplyRecalculatePlanPercent(boolean isSuccess, int errorCode, String errMsg);

    /**
     *  获取重算完成后该计划需要更新的到位点
     * 功能：返回getRecalculatePlanPoints的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onGetRecalculatePlanPoints(boolean isSuccess, int errorCode, String errMsg, List<String> pointIds);

    /**
     *  通知服务器当前重算的计划的到位点已同步到本地 服务器设置state=3
     * 功能：返回updateRecalculatePlanState的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdateRecalculatePlanState(boolean isSuccess, int errorCode, String errMsg);

}
