package cn.cecep.talroad.service.effective;


/**
 * @author zhangshiji
 * @date 2022/9/15
 */
public interface BasTargetService {


   /* *//**
     * 计算今年目标值
     *
     * @param currentYearValues 当前年各月均值
     * @param lastYearValues    去年各月均值
     * @param avgPercents       月度同比变化率均值
     * @param control           因子最大月度控制量
     * @param controlMonth      控制月份数量
     * @return
     *//*
    public BigDecimal[] calcTarget(BigDecimal[] currentYearValues, BigDecimal[] lastYearValues, BigDecimal[] avgPercents, int control, int controlMonth, BigDecimal targetValue) throws BussinessException;



    *//**
     * 查询四因子计算配置
     *
     * @param regionCode 区域编号
     * @param factor     银子名称
     * @return
     *//*
    int[] findTargetConfig(String regionCode, String factor);

    *//**
     * 四因子目标计算  PM25,PM10,SO2,NO2
     *
     * @param regionCode 区域编号
     * @param factor     因子名称
     * @param target     因子目标值
     * @return
     *//*
    Map<String, BigDecimal[]> fourFactorTargets(String regionCode, String factor, BigDecimal target) throws BussinessException;

    *//**
     * 二因子目标计算  CO O38h
     *
     * @param regionCode 区域编号
     * @param factor     因子名称
     * @param target     因子目标值
     * @param year       年份
     * @return
     *//*
    Map<String, BigDecimal[]> twoFactorTargets(int year, String regionCode, String factor, BigDecimal target);

    *//**
     * 重污染天目标计算
     *
     * @param year       年份
     * @param regionCode 区域编号
     * @param factor     因子名称
     * @return
     *//*
    Map<String, BigDecimal[]> heavyDaysTargets(int year, String regionCode, String factor);

    *//**
     * 优良天目标计算
     *
     * @param year       年份
     * @param regionCode 区域编号
     * @param factor     因子名称
     * @param target     优良天目标值
     * @return
     *//*
    Map<String, BigDecimal[]> goodDaysTargets(int year, String regionCode, String factor, BigDecimal target);

    *//**
     * co超标天数目标计算
     *
     * @param year       年份
     * @param regionCode 区域编号
     * @param target     目标值
     * @param factor     因子名称
     * @return
     *//*
    Map<String, BigDecimal[]> coOverDayTarget(int year, String regionCode, String factor, BigDecimal target);

    *//**
     * o38h超标天数目标计算
     *
     * @param year       年份
     * @param regionCode 区域编号
     * @param target     目标值
     * @param factor     因子名称
     * @return
     *//*
    Map<String, BigDecimal[]> o3OverDayTarget(int year, String regionCode, String factor, BigDecimal target);

    *//**
     * 保存年度目标
     *
     * @param year       年份
     * @param target     目标值
     * @param regionCode 区域编号
     * @param factor     因子名称
     *//*
    void saveYearTarget(int year, BigDecimal target, String regionCode, String factor);

    *//**
     * 保存月度目标
     *
     * @param year       年份
     * @param target     目标值数组
     * @param actual     累计值数组
     * @param regionCode 区域编号
     * @param factor     因子名称
     *//*
    void saveMonthTarget(int year, BigDecimal[] target, BigDecimal[] actual, String regionCode, String factor);

    *//**
     * 保存秋/冬/总计/目标值
     *
     * @param year       年份
     * @param target     目标值
     * @param type       类型 4:秋防 5:冬防
     * @param regionCode 区域编号
     * @param factor     因子名称
     *//*
    void saveAutumnWinterTarget(int year, BigDecimal target, int type, String regionCode, String factor);

    *//**
     * 确认
     *
     * @param basTargetDto   初始目标值dto
     * @param userRegionCode 用户区域编号
     *//*
    boolean saveAllTarget(BasTargetDto basTargetDto, String userRegionCode);


    *//**
     * 根据区域查询年度目标值
     *
     * @param regionCode 区域编号
     * @return
     *//*
    BasYearTargetVo findYearTarget(String regionCode);


    List<QEnvgasAreaTargetVo> findReachabilityAnalysis(ReachabilityDto reachabilityDto);


    List<QEnvgasAreaTargetVo> findStandardMonitoring(String userRegionCode, String type);

    *//**
     * 根据区域查询月度目标值
     *
     * @param regionCode 区域编号
     * @return
     *//*
    Map findMonthTarget(String regionCode);

    *//**
     * 根据区域查询秋冬防值
     *
     * @return
     *//*
    List<Map<String,Object>> findAutumnWinterTarget(String regionCode);


    *//**
     * 查询区域  年 月  秋冬防目标值
     *
     * @param regionCode 区域编号
     * @return
     *//*
    Map<String,Object> regionTarget(String regionCode);

    *//**
     * 计算冬防 目标值
     *
     * @param regionCode   区域code
     * @param basTargetDto 参数
     *//*
    void calcWinterTarget(String regionCode, BasTargetDto basTargetDto);
*/

}
