package com.ho.business.service;

import com.ho.business.entity.*;
import com.ho.business.vo.Holiday;
import com.ho.business.vo.PolicyConfigPlanVo;
import com.ho.business.vo.req.PolicyConfigData;
import com.ho.common.tools.entity.UserDetailRespVO;

import java.util.List;
import java.util.Map;

public interface PeakShavingService {

    public Map<String, Object> addPlanningCurveTemplate(PlanningCurveTemplate template);

    public Map<String, Object> modifyPlanningCurveTemplate(PlanningCurveTemplate template);

    public Map<String, Object> deletePlanningCurveTemplates(PlanningCurveTemplate template);

    public Map<String,Object> policyConfig(List<PolicyConfig> policyConfigs);

    public List<PolicyConfigData> queryPolicyConifg(PolicyConfig policyConfig);

    /**
     * 模板列表查询
     *
     * @param template
     * @return
     */
    public List<PlanningCurveTemplate> getPlanningCurveTemplates(PlanningCurveTemplate template);

    public List<PlanningCurveTableTemplate> getTableTemplates(PlanningCurveTemplate template);

    /**
     * 模板详情查询
     *
     * @param template
     * @return
     */
    public PlanningCurveTemplate getPlanningCurveTemplate(PlanningCurveTemplate template);


    public List<List<PlanningCurve>> queryTemplateCurves(PlanningCurveTemplate template);

//    public void sendData(Integer type);

    public int checkUse(PlanningCurveTemplate template);

    public Integer queryIssueDevice(Integer stationId);

    public String getSnByStationId(Integer stationId);

    public String getJson(PlanningCurveTemplate template, UserDetailRespVO userDetail);

    public List<PolicyConfig> queryPolicyConifgMonth(PolicyConfig policyConfig);

    public List<PolicyConfigPlan> queryPlanList(PolicyConfigPlan policyConfigPlan);

    public List<PeakShavingBean> queryPeakPolicyList(PolicyConfigPlan policyConfigPlan);

    public void deletePlan(PolicyConfigPlan policyConfigPlan);

    public void generateNewPlan(PolicyConfigPlanVo vo,Integer type);

    public List<PolicyConfigData> queryPolicyConifgDetail(PolicyConfig policyConfig);

    public Map<String, Object> queryHolidayList(Holiday holiday);

    public int checkPlanName(PolicyConfigPlan policyConfigPlan);

}
