package com.steerinfo.ems.trmcalpoint.service;

import com.steerinfo.ems.trmcalpoint.model.TRmCalpoint;
import com.steerinfo.framework.service.IBaseService;
import com.steerinfo.framework.service.pagehelper.PageList;

import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * TRmCalpoint服务接口：
 * @author 王金涛
 * @version 1.0-SNAPSHORT 2019-10-11
 * 类描述
 * 修订历史：
 * 日期：2019-10-11
 * 作者：王金涛
 * 参考：
 * 描述：TRmCalpoint服务接口
 * @see null
 * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
 */
public interface ITRmCalpointService extends IBaseService<TRmCalpoint, String>{
	/**
	 * 获得计量层级列表（计量点数据录入）
	 * 
	 * @return
	 */
	List<Map> getRmCalpoint();

	/**
	 * 获取最大流水号
	 * 
	 * @param head
	 * @return
	 */
	String getMaxId(String head);

	/**
	 * 能源调度管理-计量点数据管理-准点数据查询
	 * @param clock
	 * @param clocke
	 * @param itemid
	 * @param datatype
	 * @return
	 */
	List<Map<String, Object>> getRmCalpointVal(String clock, String clocke, String itemid, String datatype);

	/**
	 * 能源调度管理-计量点数据管理-准点数据查询(十分钟)
	 * @param clock
	 * @param clocke
	 * @param itemid
	 * @param datatype
	 * @return
	 */
	List<Map<String, Object>> getRmCalpointValTim(String clock, String clocke, String itemid, String datatype);

	/**
	 * 能源调度管理-计量点数据管理-计量点数据录入列表
	 * @param parmas
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageList<Map<String, Object>> getDate312ForPage(HashMap<String, Object> parmas, Integer pageNum, Integer pageSize);

	/**
	 * 能源调度管理-计量点数据管理-计量点数据趋势图
	 * @param list
	 * @param size
	 * @return
	 */
	List<Map<String, Object>> getDate312ForChart(List<Map<String, Object>> list, int size);

	TRmCalpoint updateNewItem(Map<String, Object> parmas);
	
	/**
	 * 批量删除计量点信息
	 * 
	 * @param ids
	 */
	void delCalpoint(String[] ids);

	/**
	 * 系统接口管理-能耗数据管理
	 * @param list
	 * @return
	 */
	List<Map<String, Object>> getInIdDate312(HashMap<String, Object> parmas);
	
	/**
	 * 动力、水小时表定时统计（自动补全24小时内的小时用量值）
	 *  
	 * @param date 统计时间
	 */
    void statHourData();
    
    /**
     * 重新计算单个计量点小时表数据(新增或者更新)
     * 
     * @param itemid 计量点编号
     * @param clock	时间，格式：YYYY-MM-DD HH
     * @return
     */
    String restatHourData(String itemid, String clock);
    
    /**
     * 重新计算单个计量点小时表数据(新增或者更新)
     * 
     * @param itemid 计量点编号
     * @param clock 时间，格式：YYYY-MM-DD HH
     * @param clockend 结束时间，格式：YYYY-MM-DD HH
     * @return
     */
    String restatHourDate(String itemid, String clock, String clockend);
}