package com.ho.xxljob.feignclient;

import com.ho.business.vo.req.MonitorQuery;
import com.ho.common.tools.constant.ContextConstant;
import com.ho.common.tools.exception.DataResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;


@FeignClient(value = ContextConstant.BUSINESS_SERVICE, fallback = BusinessFeignClientFallback.class)
public interface BusinessFeignClient {

    // 加工一体柜充电量，放电量(小时)
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/jobIntegratedCabinetHour")
    DataResult jobIntegratedCabinetHour(@RequestBody MonitorQuery monitorQuery);


    // 加工一体柜充电量，放电量
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/jobIntegratedCabinet")
    DataResult jobIntegratedCabinet(@RequestBody MonitorQuery monitorQuery);

    //每天站级天气定时任务
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.MEDIA_CONTEXT + "weather/jobStationWeathers")
    DataResult jobStationWeathers();

    /* 15分钟收益数据 */
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "income/jobDataManage")
    DataResult intervalGene4RealTimeDataBySrc();

    //删除图片及文件数据
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/deletedPicture")
    void deletedPicture();

    //删除图片及文件数据
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "cockpit/revenueStatisticsJob")
    void revenueStatisticsJob();

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "openStation/jobDataManage")
    void jobIncomeDataManage();

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/jobStationState")
    void jobStationState();

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "stationMaintenance/maintenanceInsert")
    void jobMaintenanceInsert();


    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/all")
    void jobEarningsCalculate(@RequestBody String dateTime);

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/allMpptIncome")
    void jobEarningsCalculateMppt(@RequestBody String dateTime);

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/allTodayMpptIncome")
    void jobEarningsCalculateMpptToDay(@RequestBody String dateTime);

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "earningsCalculate/freezeMonthTotalEle")
    void jobFreezeMonthTotalEle();

    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/jobGetDayDate")
    void jobGetDayDate();

    /**
     * 定时计算效率
     */
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "outerApi/jobGetSystemEfficiency")
    void jobGetSystemEfficiency();

    /**
     * 定时刷新消息广播
     */
    @PostMapping(value = ContextConstant.ROOT_CONTEXT + ContextConstant.BUSINESS + "messageInfo/jobUpdateMessageInfo")
    void jobUpdateMessageInfo();

}
