package com.ho.business.service;

import com.ho.business.vo.req.oneClickSequentialControl.OneClickSequentialControlQueryReq;
import com.ho.business.vo.req.point.*;
import com.ho.business.vo.req.configure.CommonQuery;
import com.ho.business.vo.resp.point.PointCurveResp;
import com.ho.business.vo.resp.point.PointListRespVo;
import com.ho.business.vo.resp.point.PointRespVO;
import com.ho.business.vo.resp.point.QueryPointRespVo;
import com.ho.common.tools.util.PageResult;
import com.ho.datacollect.api.vo.req.add.TdBase;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author gyan
 * @desc: TODO
 * @DateTime: 2023/3/26 14:13
 */
public interface PointDemoService {


    List<PointCurveResp> pointCurve(PointCurveReq pointCurveReq);

    List<QueryPointRespVo> queryPoint(PointVo vo);

    List<QueryPointRespVo> queryVirtualPoint(PointVo vo);

    /**
     * 顺控
     * @param vo
     * @return
     */
    List<PointRespVO> queryControlPoint(OneClickSequentialControlQueryReq vo);

    List<PointRespVO> getPointList(PointReq pointReq);

    List<PointListRespVo> pointList(PointReq pointReq);

    /**
     * 更新电表单条数据
     *
     * @param pointReq
     * @return
     */
    PointRespVO getPointRespVO(PointOneReq pointReq);

    int getTimeDifference(String beginTime, String endTime);


    PageResult<List<Object>> pointDataShow(PointCurveReq pointCurveReq);

    List<PageResult> pointDataShowList(PointCurveReq pointCurveReq);

    List<PointCurveResp> getPointCurve(PointCurveReq pointCurveReq);

    void getHisExportExcel(PointCurveReq pointCurveReq, HttpServletResponse response);

     boolean timeCalendar(Date nowTime, Date beginTime, Date endTime);

    PointCurveReq getPointCurveReq(HomePageReqVo vo);

    PageResult<Map<Object, Object>> getPointAllData(TdBase tdBase);

    /**
     * 计划曲线组装返回值
     * @param stationId
     * @return
     */
    PointCurveResp getPlanCurve(Integer stationId);

    /**
     * 正常获取曲线
     * @param vo
     * @return
     */
    Map<String,Object> getColCurve(CommonQuery vo);

    /**
     * 更改测点的历史值
     * @param pointCurveReq
     * @return
     */
    int modifyHistoryData(PointCurveReq pointCurveReq);
}
