package com.steerinfo.ems.trmactvalue.service;

import com.steerinfo.framework.service.IBaseService;
import com.steerinfo.framework.service.pagehelper.PageList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.steerinfo.auth.utils.JwtUtil;
import com.steerinfo.ems.trmactvalue.model.TRmActValue;

/**
 * TRmActValue服务接口：
 * @author generator
 * @version 1.0-SNAPSHORT 2019-10-19 09:10
 * 类描述
 * 修订历史：
 * 日期：2019-10-19
 * 作者：generator
 * 参考：
 * 描述：TRmActValue服务接口
 * @see null
 * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
 */
public interface ITRmActValueService extends IBaseService<TRmActValue, HashMap<String, Object>>{
	/**
	 * 获得工序与原材料数据维护数据（能源平衡管理-工序与原材料数据维护页面，分页查询）
	 * 
	 * @return
	 */
	PageList<Map<String, Object>> getDate611ForPage(Map<String, Object> parameters, Integer pageNum, Integer pageSize);

	/**
	 * 能源综合分析-供需实绩分析-供需实绩跟踪及趋势分析页面(表1)
	 * @param parmas
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<Map<String, Object>> getDate6121ForPage(HashMap<String, Object> parmas, Integer pageNum, Integer pageSize);
	
	/**
	 * 能源综合分析-供需实绩分析-供需实绩跟踪及趋势分析页面(表2)
	 * @param parmas
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<Map<String, Object>> getDate6122ForPage(HashMap<String, Object> parmas, Integer pageNum, Integer pageSize);

    /**
     * 计算累计值
     * @param params
     * @return
     */
    Double getSumvalue(HashMap<String,Object> params);

    /**
     * 重写新增方法
     * @param tRmActValue
     * @return
     */
     int insert(TRmActValue tRmActValue);

    /**
     * 月粒度 获取计算值
     * @param params
     * @return
     */
    Double getTRmActValue(HashMap<String,Object> params);
    
    /**
     * 每日数据统计（实绩定时任务、计划定时任务，根据项目生成日、月、年粒度数据）
     */
    void statDataforDay();

    /**
     * 定时任务 天
     */
    void StateTimegranidforDay();
    /**
     * 定时任务 月
     */
    void StateTimegranidforMonth();

    /**
     * 获取月实绩产量和累计产量
     * @param params
     * @return
     */
    Map<String,Object>getMonthOutPut(HashMap<String,Object> params);

	/**
	 * 获取数据到能耗实绩确认表
	 * @param params
	 * @return
	 */
	List<Map<String,Object>> getUploadData();

	/**
	 * 修改Fid为能耗实绩确认表的id
	 * @param model
	 */
	void updateFid(TRmActValue model);

	/**
	 * 通过Fid获取实绩项目数据
	 * @param model
	 */
	List<Map<String,Object>> getByFid(Long fid);
    
    /**
     * 重新计算单个项目数据(新增或者更新)
     * 
     * @param itemid 项目ID
     * @param clock	时间
     * @param timegranid 时间粒度
     * @param opuser 操作人
     * @return
     */
    String restatData(String itemid, String clock, String timegranid, String opuser);
    
    /**
     * 获取数量
     * 
     * @param params
     * @return
     */
    int getCount(Map<String,Object> params);
}